Date post: | 12-Feb-2017 |
Category: |
Documents |
Upload: | israel-gold |
View: | 90 times |
Download: | 0 times |
SSD Caching: Improving Read Performance
05/01/2023 SSD caching
P1
RAMBlock Cache(nx10TB)
~1%
DiskStorage(nxPB)
RAMBlock Cache
(nxTB)
DiskStorage(nxPB)
SSDBlock Cache(nx10TB)
SSD Drive installed in the Node
SSD Caching: Read Only Cache
05/01/2023 SSD Caching
Write
GetReadDisca rd
HDD
Block Cache
ssd_addr = { ssd_id, LBA}
SDD
hdd_addr = { hdd_id, LBA }
SSD Map• SSD block status• block_addr->ssd_addr
SDD Daemon
block_addr = { volume_id, LBA }
SSD is NOT a write-thru cache(Never write to HDD)
SSD caches only “clean” blocks(HDD and SSD block are identical)
Provides the same integrity guarantees as HDD
SSD failure does not affect correctness (I/O redirected to HDD)
System Requirements
05/01/2023 SSD Caching
Performance and Integrity Add/remove SSD drives on the fly Minimize SSD Cache Map in RAM Save SSD Map at Shutdown Restore SSD Map on node bring up
after boot/hot-upgrade/node-failure Control SSD write to balance I/O
activity • Accelerate fill-up• Control SSD lifetime• Prevent long read queuing delay
SSD must provide the same integrity guarantees as reading from HDD,
SSD read latency is linearly related to the amount of data read
The problem: arrange SSD data layout to minimize amount of data read and at the same time satisfy integrity requirements