Reference number : GC-2017-Q4-00674, amendment number : , agreement type : G, recipient legal name : Goel, Ashvin (University of Toronto), recipient country : CA, recipient province : nan, recipient city : Ontario, recipient postal code : nan, program name english : DND/NSERC Discovery Grant Supplement, program name french : Supplément aux subventions à la découverte MDN-CRSNG, program purpose english : This research is driven by two technology trends, persistent memory and in-memory computing. Persistent memory technology is unique in that it is accessed similar to traditional DRAM, but it provides durable storage like Flash. Several manufactures, including Intel and Micron, have announced that they plan to make low cost, high-performance, persistent memory products available in 2017. In-memory computing, in which large data sets are kept almost entirely in DRAM for fast processing, is being driven by the availability of relatively inexpensive DRAM. It enables building fast applications such as key-value stores and in-memory databases. Today, these in-memory applications form the core of the modern web infrastructure, enabling web sites to serve requests with low latency and high throughput. Persistent memory is a natural fit for in-memory applications. Persistent memory can be used to supplement DRAM, and it helps ensure durability of data. Its relatively good performance, low cost and high capacity will enable scaling these applications to much larger data sets, and running them on larger clusters of machines. In this proposal, my research objective is to address the question: how can we ensure the reliability of persistent memory applications? I am interested in exploring all the reliability challenges raised by these applications, including ensuring correctness, availability and disaster recovery. While much recent work has focused on the performance of these applications, these reliability issues are less well understood today. I plan to explore several methods for improving the reliability of persistent memory applications, including detecting bugs in these applications, providing language support for writing and testing these applications, and building reliable and scalable distributed applications. I expect that applying these methods to persistent memory applications will lead to novel research results, with significant impact. Today, computer systems are expected to work reliably and be available at all times. Yet hardware failures and software bugs are common, accounting for a significant portion of system downtime. The economic impact of these failures is estimated to be in the hundreds of billions of dollars. I expect that the results of this research will help reduce the impact of bugs and failures, thereby enabling reliable and fast in-memory applications., program purpose french : This research is driven by two technology trends, persistent memory and in-memory computing. Persistent memory technology is unique in that it is accessed similar to traditional DRAM, but it provides durable storage like Flash. Several manufactures, including Intel and Micron, have announced that they plan to make low cost, high-performance, persistent memory products available in 2017. In-memory computing, in which large data sets are kept almost entirely in DRAM for fast processing, is being driven by the availability of relatively inexpensive DRAM. It enables building fast applications such as key-value stores and in-memory databases. Today, these in-memory applications form the core of the modern web infrastructure, enabling web sites to serve requests with low latency and high throughput. Persistent memory is a natural fit for in-memory applications. Persistent memory can be used to supplement DRAM, and it helps ensure durability of data. Its relatively good performance, low cost and high capacity will enable scaling these applications to much larger data sets, and running them on larger clusters of machines. In this proposal, my research objective is to address the question: how can we ensure the reliability of persistent memory applications? I am interested in exploring all the reliability challenges raised by these applications, including ensuring correctness, availability and disaster recovery. While much recent work has focused on the performance of these applications, these reliability issues are less well understood today. I plan to explore several methods for improving the reliability of persistent memory applications, including detecting bugs in these applications, providing language support for writing and testing these applications, and building reliable and scalable distributed applications. I expect that applying these methods to persistent memory applications will lead to novel research results, with significant impact. Today, computer systems are expected to work reliably and be available at all times. Yet hardware failures and software bugs are common, accounting for a significant portion of system downtime. The economic impact of these failures is estimated to be in the hundreds of billions of dollars. I expect that the results of this research will help reduce the impact of bugs and failures, thereby enabling reliable and fast in-memory applications., agreement title english : Reliability for Fast, Persistent Memory Applications, agreement title french : Reliability for Fast, Persistent Memory Applications, agreement number : DGDND, agreement value : 120000.0, agreement start date : 2018-01-10, agreement end date : nan, description english : nan, description french : nan, expected results english : nan, expected results french : nan, additional information english : Grant or Award spanning more than one fiscal year (2017-2018 to 2020-2021)., additional information french : Subvention ou bourse octroyée s'appliquant à plus d'un exercice financier (2017-2018 à 2020-2021)., owner organization : nserc-crsng, owner organization title : Natural Sciences and Engineering Research Council of Canada | Conseil de recherches en sciences naturelles et en génie du Canada