The continual performance growth of data center servers is critical to the nation’s economic competitiveness and as a catalyst for progress in scientific endeavors. Two important data center components are the main memory, which has fast access but can only store data temporarily, and storage, which keeps data permanently but suffers from slow access. Recent technology advances have brought in a new non-volatile memory, now commercially available, that can both host permanent data and be accessed quickly. However, to reach its potential, utilizing these new memory technologies requires rethinking of how data should be persistently and efficiently stored.
This proposal describes a new abstraction for storing persistent data in non-volatile memory: hyperfiles, which are long lived, provide fast access, and can be quickly attached to and detached from a process address space. Hyperfiles provide naming and permission characteristics similar to (but faster than) files, and speed closer to memory. They are accessed directly through loads/stores to avoid system call overhead. This project also investigates new sharing semantics for hyperfiles, allowing non-cooperating processes to share them simultaneously and safely, while keeping the crash recovery property. Architecture support to accelerate hyperfile sharing will also be designed and evaluated.