management for multi stream ssds
play

Management for Multi-stream SSDs Jingpei Yang, PhD, Rajinikanth - PowerPoint PPT Presentation

AutoStream: Automatic Stream Management for Multi-stream SSDs Jingpei Yang, PhD, Rajinikanth Pandurangan, Changho Choi, PhD , Vijay Balakrishnan Memory Solutions Lab Samsung Semiconductor Agenda SSD NAND flash characteristics


  1. AutoStream: Automatic Stream Management for Multi-stream SSDs Jingpei Yang, PhD, Rajinikanth Pandurangan, Changho Choi, PhD , Vijay Balakrishnan Memory Solutions Lab Samsung Semiconductor

  2. Agenda • SSD NAND flash characteristics • Multi-stream • Autostream: Automatic stream management – Multi-Q – SFR • Performance enhancement • Summary 2

  3. SSD NAND Flash Characteristics • Different IO units – Read/Program: Page, Erase: Block (=multiple of pages) • Erase before program – Out-of-place update • Unavoidable GC overhead – The higher GC overhead, the larger Write Amplification*(= the lower endurance) ∗ 𝑋𝐵𝐺(𝑋𝑠𝑗𝑢𝑓 𝐵𝑛𝑞𝑚𝑗𝑔𝑗𝑑𝑏𝑢𝑗𝑝𝑜 𝐺𝑏𝑑𝑢𝑝𝑠) = 𝑏𝑛𝑝𝑣𝑜𝑢 𝑝𝑔 𝑒𝑏𝑢𝑏 𝑥𝑠𝑗𝑢𝑢𝑓𝑜 𝑢𝑝 𝑂𝐵𝑂𝐸 𝐺𝑚𝑏𝑡ℎ • Limited number of Program/Erase cycles 𝑏𝑛𝑝𝑣𝑜𝑢 𝑝𝑔 𝑒𝑏𝑢𝑏 𝑥𝑠𝑗𝑢𝑢𝑓𝑜 𝑐𝑧 ℎ𝑝𝑡𝑢 To maximize SSD lifetime, need to minimize Write Amplification! 3

  4. Multi-stream: Minimize Write Amplification • Store similar lifetime data into the same erase block and reduce WA (GC overhead) • Provide better endurance and improved performance • Host associates each write operation with a stream • All data associated with a stream is expected to be invalidated at the same time (e.g., updated, trimmed, unmapped, deallocated) • Align NAND block allocation based on application data characteristics(e.g., update frequency) 4

  5. AutoStream: Automatic Stream Management • Multi-stream shows good benefit but requires application and system modification – More challenges in multi-application, multi-tenant environments (e.g., VM or Docker) • AutoStream – Make stream detection independent of applications (e.g., in device driver) – Cluster data into streams according to data update frequency, recency and sequentiality – Minimize stream management overhead in application and systems Multi-stream No app. & Kernel modification required Applications manage Application Application streams Filesystem, block Filesystem, block AutoStream App. & Kernel modification req’d layer, etc. layer, etc. Stream sync overhead Automatic stream Device Driver Device Driver management based on data characteristics 5

  6. AutoStream IO Processing with Minimal Overhead WRITE I/O just one table look up READ I/O bypass AutoStream 6

  7. AutoStream Implementation AutoStream module application Submission queue Write < sLBA, sz > OS kernel < sLBA > File system 2 Multi-Q Block layer queue update < sLBA, sz > 1 AutoStream Device driver controller < sID > 3 TL SFR Write< sLBA, sz, sID > table update 4 Multi-stream SSD 7

  8. Multi-Q Algorithm Basics • Divide a whole SSD space into the same size chunks – 480GB SSD, 1MB chunk size -> 480,000 chunks • Track statistics for each chunk – access time, access count, expiry time, etc. – Expiry time • hottest chunk’s lifetime := current time – last access time • Other chunk’s expiry time:= current time + hottest chunk’s lifetime …… chunk id c c x y z u w c d …… 4 5 6 7 8 9 10 11 12 access time …… 1 2 1 1 1 1 1 3 1 access count Access time 11: Hottest chunk = c Access time 12: Chunk c’s lifetime = 11 – 5 = 6 chunk d expiry time = 18 (12+6) 8

  9. Multi-Q Update (Promotion & Demotion) Demotion Promotion Submission Q e e d b head … c b c a f c a a Multi-Q thread processes Chunk e ’s expiry tail . . . f … each entry time has passed . . . … (recency*) . . . Chunk a ’s access count is bigger … than Q1 ’s access count threshold e a (frequency) … Q2 Q1 Q7 Q8 hot cold 9 * Recency considers the last updated time

  10. SFR - S equentiality F requency R ecency Algorithm AutoStream controller Submission Q <sLBA, sz> … c b c a f SFR thread processes yes no each entry Sequential write? Increase access_cnt sID := Get sID from stream table prev_sID Calculate recency_weight := pow ( 2 , ( curr_time – last_acess_time)/decay_period ) Update prev_sID access_cnt := access_cnt/recency_weight Put sLBA to sID := log(access_cnt) submission queue Stream table update Sequentiality 10 (Frequency, Recency)

  11. Docker Environment Performance Measurement • Running 2 MySQL & 2 Cassandra instances 5 simultaneously WAF 4 Database Size Workload 3 39% MySQL TPC-C: 30 42% 800 warehouse TPC-C connection 2 Cassandra 1KB record, 100 1 r/w: 50/50 -Stress million entries 0 legacy SFR MQ Cassandra average TPS MySQL average tpmC 6% 23500 1200 144% 129% 23000 1000 2% 800 22500 600 22000 400 21500 200 21000 0 11 legacy SFR MQ legacy SFR MQ

  12. Summary • AutoStream – With no application and system modification, improve SSD lifetime and performance • AutoStream with minimal overhead – Works well under different workloads for diverse applications on various system environments – Up to 60% WAF reduction – Up to 237% performance improvement • Future work – Optimize resource utilization and performance to fit into devices 12

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend