Circle 2014/12/18 S. R. Dulloor1,3, S. Kumar1, A. Keshavamurthy2, P. Lantz1, D. Reddy1, R. Sankaran1, J. Jackson1 1Intel Labs, 2Intel Corp, 3Georgia Institute of Technology EuroSys 2014
PM 5 fig of HDD/SSD) http://storage-system.fujitsu.com/jp/lib-f/tech/beginner/ssd/ load/store to DRAM read/write to SSD/HDD load/store to PM Non-volatile Area Cache Volatile Area
from memory controller Caching problem in PM 6 fig of HDD/SSD) http://storage-system.fujitsu.com/jp/lib-f/tech/beginner/ssd/ load/store to DRAM read/write to SSD/HDD load/store to PM Non-volatile Area Cache Volatile Area MC
usage 1. clflush A ▪ flush the cacheline contains A 2. sfence ▪ ensure the completion of store 3. pm_wbarrier ▪ ensure the durability of every store to PM
updates One more PM specific technique: Atomic in-place writes Used for updates on Data Area Used for updates on Meta Data (inode) Used for updates of small portion of data
Use Copy on Write method Distributed small modification Centralized large modification Copy on Write ☓ (Write Amplification) ◯ (Freely after copy) Journaling ◯ (Just append logs) ☓ (Double writes)
Update inode’s access time 16 bytes Using cmpxchg16b instruction Update inode’s size and modification time 64 bytes Using RTM (introduced in Haswell and having erratum) Update a number of inode fields like delete
into user area Write windows (introduced in this paper) ▪ Mount as read-only ▪ When writing, CR0.WP is set to zero Right) http://en.wikipedia.org/wiki/Protection_ring
Wikipedia dataset Workload Delete: deleting 2000 nodes and associated edges Insert: adding back the 2000 nodes and the edges Query: selecting two nodes and calculate the shortest path Improvements by no copy overhead Improvements by synchronous write latency
FS[41] Hybrid of NVM and Disk or Flash Rio File Cache[24], Conquest FS[41] PM-only Storage BPFS[27], SCMFS[43] High Level API on PM Failure-atomic msync[33] NV-Heaps[26], Mnemosyne[40] Library solutions[39]