FlatFlash: Exploiting the Byte-Accessibility of SSDs Within A Unified Memory-Storage Hierarchy
Ahmed Abulila1, Vikram Sharma Mailthody1, Zaid Qureshi2, Jian Huang1, Nam Sung Kim1, Jinjun Xiong3, Wen-mei Hwu 11 ECE, 2 CS, University of Illinois at Urbana-Champaign, Urbana, IL 61801
3 Cognitive Computing & University Partnership, IBM Thomas J. Watson Research Center, Yorktown Heights, NY 10598
Storage Session: 11:30 AM on Wednesday 17th April 2019
mmap()munmap()msync()
File
Virtual MemoryApplication File System SSD
OS
File System
Application
SSD
Virtual MemoryStalls the process
DRAM thrashing/pollution
High I/O Tra c
Page-level persistency
BlockInterface
DRAM in SSD PCIe MMIO Cache Coherence
Page Promotion to Host DRAM
Off-Critical Path Page Promotion
In-Flight Promotion with Cache-Line Granularity
Set Bits in Promotion Look-aside Buffer
Handle Data Access Conflict
CacheHost Bridge
Promotion Lookaside Buffer
SSD
SSD-CacheCPU
flush cache lines:clflush/clwb
verify addr & disable promotion
PCIe
write-verify read❶
❷
❸
FlatFlash disables page promotion for persistent memory regions
create_pmem_region (void* vaddr, size_t size)
Scalable Logging for Database
SSD
Centralized Log Buffer
TXA
TXB
TXC
LockContention
SSD
Log Log Log
TXA TXB TXC
(a) Logging with block I/O (b) Logging with FlatFlash
Metadata Durability in File Systems
root
pointer block
pointer block
inodes
data block
met
adat
a stru
ctur
e
packed in blocks
Put It All Together
Byte-accessibility with PCIe MMIO + OpenCAPI
Unified Memory Space
Adaptive Page Promotion
Byte-Granular Data Persistency
Paper Download
Results
Ensuring Data-Consistency During Page Promotion
Enabling Byte-Granular Data Persistence
System Implications of FlatFlash
Using Flash as Non-Volatile Memory
Limitations of Block I/O Interface
Enabling the Byte-Accessibility of SSDs
Unifying the Memory and Storage
Performance Challenges