Non-volatile main memory, such as memristors or phase change memory, can revolutionize the way programs persist data. In-memory objects can themselves be persistent without the need for a separate persistent data storage format. However, the challenge is to ensure that such data remains consistent if a failure occurs during execution.
In this paper, we present our system, called Atlas, which adds durability semantics to lock-based code, typically allowing us to automatically maintain a globally consistent state even in the presence of failures. We identify failure-atomic sections of code based on existing critical sections and describe a log-based implementation that can be used to recover a consistent state after a failure. We discuss several subtle semantic issues and implementation tradeoffs. We confirm the ability to rapidly flush caches as a core implementation bottleneck and suggest partial solutions. Experimental results confirm the practicality of our approach and provide insight into the overheads of such a system.
Thu 23 OctDisplayed time zone: Tijuana, Baja California change
13:30 - 15:00 | |||
13:30 22mTalk | Atlas: Leveraging Locks for Non-volatile Memory Consistency OOPSLA Link to publication | ||
13:52 22mTalk | Fast Splittable Pseudorandom Number Generators OOPSLA Guy L. Steele Jr. Oracle Labs, Doug Lea State University of New York (SUNY) Oswego, Christine H. Flood Red Hat Link to publication | ||
14:15 22mTalk | Multithreaded Test Synthesis for Deadlock Detection OOPSLA Malavika Samak Indian Institute of Science, Bangalore, Murali Krishna Ramanathan Indian Institute of Science, Bangalore Link to publication | ||
14:37 22mTalk | Symbolic Execution of Multithreaded Programs from Arbitrary Program Contexts OOPSLA Tom Bergan University of Washington, Dan Grossman University of Washington, Luis Ceze University of Washington Link to publication |