PMThreads: persistent memory threads harnessing versioned shadow copies
Autor: | Andy Nisbet, Mikel Luján, Wenzhe Zhang, Zhenwei Wu, Kai Lu |
---|---|
Přispěvatelé: | Donaldson, Alastair F., Torlak, Emina |
Rok vydání: | 2020 |
Předmět: |
010302 applied physics
POSIX Threads Memory persistence Record locking Computer science Parallel programs 020206 networking & telecommunications 02 engineering and technology Thread (computing) computer.software_genre 01 natural sciences Non-volatile memory 0103 physical sciences Scalability 0202 electrical engineering electronic engineering information engineering Programming paradigm Operating system State (computer science) Persistent data structure computer |
Zdroj: | PLDI Wu, Z, Lu, K, Nisbet, A, Zhang, W & Luján, M 2020, PMThreads: Persistent Memory Threads Harnessing Versioned Shadow Copies . in A F Donaldson & E Torlak (eds), Proceedings of the 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI ’20) . Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Association for Computing Machinery, pp. 623-637 . https://doi.org/10.1145/3385412.3386000 |
Popis: | Byte-addressable non-volatile memory (NVM) makes it possible to perform fast in-memory accesses to persistent data using standard load/store processor instructions. Some approaches for NVM are based on durable memory transactions and provide a persistent programming paradigm. However, they cannot be applied to existing multi-threaded applications without extensive source code modifications. Durable transactions typically rely on logging to enforce failure-atomic commits that include additional writes to NVM and considerable ordering overheads.This paper presents PMThreads, a novel user-space runtime that provides transparent failure-atomicity for lock-based parallel programs. A shadow DRAM page is used to buffer application writes for efficient propagation to a dual-copy NVM persistent storage framework during a global quiescent state. In this state, the working NVM copy and the crash-consistent copy of each page are atomically updated, and their roles are switched. A global quiescent state is entered at timed intervals by intercepting pthread lock acquire and release operations to ensure that no thread holds a lock to persistent data.Running on a dual-socket system with 20 cores, we show that PMThreads substantially outperforms the state-of-the-art Atlas, Mnemosyne and NVthreads systems for lock-based benchmarks (Phoenix, PARSEC benchmarks, and microbenchmark stress tests). Using Memcached, we also investigate the scalability of PMThreads and the effect of different time intervals for the quiescent state. |
Databáze: | OpenAIRE |
Externí odkaz: |