Soon, computer main memories will likely use new technology, non-volatile memory (NVM). While current memories lose their contents when power is removed, NVM will retain its contents. However, computers keep some recent information inside the processor. That data will still be lost. So, NVM will not by itself enable users to get back to exactly where they were. To make full recovery possible, programs will need to use NVM carefully. Doing this well for modern programming languages (such as Java and Python) is hard. This project will provide a common base of support for NVM for such languages.

Clean language semantics for non-volatility is called persistence. Managed languages (ones with garbage collection and threads) require both appropriate persistence semantics and a robust performant implementation. Adding clean persistence in the presence of threads and garbage collection is hard, and modern multi-core machines present additional challenge because of their weak memory consistency models. The project will extend a language-independent virtual machine with flexible persistence semantics. This will help avoid having every language project build its own support from scratch. The project direction is to support transactions over a persistent heap of containers and versioned objects.

The project will build on Mu (http://microvm.org), an existing virtual machine that has commercial interest. A persistent virtual machine will save development effort and encourage creative use of persistence in applications. This will contribute to innovation, reliability, and trustworthiness of software. The project team will continue to engage in recruiting students from under-represented groups, including mentoring of future applicants and visits to historically minority institutions.

The project's products will reside in a repository at https://github.com/umass-moss-lab/persistent-mu, which will continue to be available for at least three years after the project concludes. The repository will contain released code, data, etc. Non-code materials will be available under the Creative Commons license, and code under the Apache open source license, subject to the University of Massachusetts policy on intellectual property.

This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Network Systems (CNS)
Type
Standard Grant (Standard)
Application #
1909731
Program Officer
Erik Brunvand
Project Start
Project End
Budget Start
2019-07-01
Budget End
2023-06-30
Support Year
Fiscal Year
2019
Total Cost
$530,000
Indirect Cost
Name
University of Massachusetts Amherst
Department
Type
DUNS #
City
Hadley
State
MA
Country
United States
Zip Code
01035