one of NVM OpenNVM: http://opennvm.github.io ▪ Flash-aware Linux swap as a transparent extension of DRAM fig) http://www.hlnand.com/site/ID/applications Non-Volatile Storage is still slow! Volatile Durable 7
PM and Disk 11 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 Data Cache Per Sector (4k or 512 bytes) Per Byte (1 byte)
RINKO NXXXX hello.txt 1: WRITE “RINKO” 2: WRITE “NOW!!!” Log Snapshot Logging is needed per operation Unsuitable for Byte Addressability CRASH! Hello World! RINKO NOW!!!
of cache eviction Cache Modifications Introduce Epoch Barrier ▪ Software issues the barrier explicitly Hardware features (for 8 in-flight epochs) ▪ 1bit persistent bit+3 bits Epoch Pointer on each cache line ▪ Additional tables to keep the information of epochs 20
Persistent Objects Fast and Safe with Next-Generation, Non-Volatile Memories, ASPLOS’11 Short Summary Use PM as object-based storage based on the two hardware modifications Propose three issues coming from PM ▪ More significant memory leaks ▪ Restriction of NV-to-V pointer ▪ Transactions on heap area 24
an additional calculation... However... Modification of small part of data is heavy ▪ Disk must be accessed by each sector (4k or 512 bytes) ▪ Slow seek speed (Disk) / Slow wear leveling speed (SSD) 25 The Area of Byte Addressable Storage: Persistent Memory!
Scalable Logging through Emerging Non-Volatile Memory, VLDB’14 Short Summary Distributed logging enhancing PM advantages Without atomic 8-byte writes and epoch barrier Two software architecture instead: ▪ Global Sequence Number ▪ Passive Group Commit 29
greater than the GSN of the previous write operation on the same page 34 1 2 3 4 5 Tx1 Tx2 Tx3 1 2 6 Write to P1 Write to P2 P1 P2 1 2 3 4 1 2 5 6 t = 0
Heap area ▪ Database logging Important features of PM ▪ Volatility of cache ▪ High random access performance Many design space and revisable viewpoint 40
V read log on DRAM Steps to write Copy the object to write log Modify the original Confirm if the data is valid Permanent the data 42 Borrow the idea of Software Transactional Memory
Sequence Number) is a main problem 51 Each process counts up own clock As a message is received, clock is set to the max(timestamp, my t) + 1 Cannot know the order of tasks Ensure the latter task has the greater number