3 ms·
Unwritten 5 rules are: Request Scale: SSD clients should issue large data requests or multiple concurrent requests. A small request scale leads to low resource
by nabla9 5y ago
Unwritten 5 rules are:
Request Scale: SSD clients should issue large data requests or multiple concurrent requests. A small request scale leads to low resource utilization and reduces immediate and sustainable performance
Locality rule: SSD clients should access with locality. Workloads without locality can incur a poor immediate performance because frequent cache misses lead to many translation-related reads and writes.Poor locality also impacts sustainable performance because data movement during garbage collection and wear-leveling requires translations and mapping updates
Aligned Sequentiality rule: clients of SSDs with hybrid FTLs should start writing at the aligned beginning of a block boundary and write sequentially. This rule does not affect immediate performance since the conversion happens later, but violating this rule degrades sustainable performance because of costly data movement during the delayed conversion.
Grouping By Death Time rule: The death time of a page is the time the page is discarded or overwritten by the host. If a block has data with different death times, then there is a time window between the first and last page invalidations within which both live and dead data reside in the block. There are two practical ways to achieve this:
1) data with similar death times are gathered in the write sequence
2) placing death groups to different logical segments isolates them physically
Uniform Lifetime rule: clients of SSDs should create data with similar lifetimes.
Lack of lifetime uniformity does not directly impact immediate performance,but impacts sustainable performance as it necessitates wear-leveling and leads to loss of capacity.
- povik 5y agoRegarding the FTL acronym: "To hide the complexity of SSD internals, the controller usually contains a piece of software called an FTL (Flash Translation Layer); the FTL provides the host with a simple block interface and manages all the operations on the flash chips." ... "A hybrid FTL uses page-level mappings for new data and converts them to block-level mappings when it runs out of mapping cache."
- wtallis 5y agoThe concerns in the paper motivating the locality rule really only apply to low-end consumer SSDs. Enterprise/datacenter SSDs and high-end consumer SSDs all carry plenty of DRAM for the FTL, so they don't suffer as much penalty for poor locality and it's really only worth drawing a distinction between sequential and non-sequential access. I also don't think it's common for SSDs to use the kind of hybrid page/block mapping FTL that the Aligned Sequentiality rule is about. These days, if you want a SSD that cuts down on DRAM costs, you want the NVMe Zoned Namespaces feature. The problems that the Uniform Lifetime rule and Grouping By Death Time rule are concerned with can be handled explicitly with features like NVMe's Streams directives, or Zoned Namespaces. Overall, this article doesn't seem to have aged particularly well, and I'm not sure it was that useful and relevant even in 2017.
- mjevans 5y agoAt the application level (E.G. a database storage layout) even for zoned namespaces the GENERALIZED principles seem logical. Even in the old days for tiny 512 byte sectors the seek and re-write time for a partial update likely influenced designs. Today I consider myself lucky to get storage with 4K sectors and I recall seeing rumors that game console SSDs would ship with far larger erase blocks. I would prefer all storage came with interfaces and common access protocols for utilizing the raw features of the device directly. An enumerate of raw permanent storage addresses (possibly read only, write only in one packet, or write via write-zone promotion), (readable?) write buffer locations which can be promoted to long term storage, etc. That might be NMVe 'streams', which I haven't read about yet. A quick search result makes me think they might be close and could have evolved there, but weren't there 2 years ago. https://www.anandtech.com/show/14543/nvme-14-specification-published https://www.anandtech.com/show/14543/nvme-14-specification-p...
- wtallis 5y ago> Today I consider myself lucky to get storage with 4K sectors and I recall seeing rumors that game console SSDs would ship with far larger erase blocks. The erase blocks on current NAND flash are already up to 16+MB, while the page sizes are typically 16kB. So even presenting the illusion of 4kB sectors requires a lot of extra background work from the SSD controller, and that's been true for generations. Also, the NVMe Streams feature is from the 1.3 spec in 2017: https://www.anandtech.com/show/11436/nvme-13-specification-published-new-features https://www.anandtech.com/show/11436/nvme-13-specification-p... Like most of the more advanced NVMe features, it's targeted at enterprise or datacenter use cases and most of the initial adoption is among the hyperscale cloud providers that have the resources and incentive to optimize their IO stack from top to bottom.
- dan-robertson 5y agoThe paper has other locality concerns which apply to all SSDs: “Locality is not only valuable for reducing required RAM for translations, but also for other purposes. For example, all types of SSDs are sensitive to locality due to their data cache. In addition, for SSDs that arrange flash chips in a RAID-like fashion, writes with good locality are more likely to update the same stripe and the parity calculation can thus be batched and written concurrently [92], improving performance.”