Non-volatile memory (NVM) is a transformative technology that is dramatically changing how data storage systems of thefuture are built. This technology allows an unprecedented combination of performance and persistence into a singledevice. This project will develop a suite of storage caching techniques for this transformative technology along fourcomplementary dimensions.The first two usage dimensions address the selective use of NVM as host-side read caches for persistently stored dataas well as using their persistence properties explicitly by developing fault-tolerant write caching solutions. Thelatter two develop advanced techniques for delivering storage quality of service (QoS) using NVM caches and building cachingalgorithms that are aware of data reduction techniques, such as deduplication and compression, for the NVM layer. Together, these contributions have the potential to transform enterprise data center storage stacks by readily adopting the best properties of current and future NVM technology. The expected performance benefits apply to a broad spectrum of computer systems and applications.Educational activities will include the involvement of undergraduate students and incorporation of the project's research findings into coursework. Planned outreach activities will focus on recruitment of under-represented students from minority groups in computer science for participation in the project. Transition of the new technologies to practice through open source distribution of the Linux operating system and KVM hypervisor code implementing the innovations are successful expectations.