Multi-Stream初体验

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

Multi-Stream Write是Samsung推出的一个技术。

Multi-Stream Write的设计思路有两点:

1. 给从Host写入的数据增加一个Stream 的概念,同一个Stream里的数据会被同时invalidate。比如一个5M的MP3,1G的电影,一旦删除,就整个文件所有的数据全部被删除,不存在一部电影被删除10%的情况。

2. 将数据按照更新频率(用不同的Stream ID标记)存到NAND上

下图能够看到Multi-Stream和传统方式在把数据写到NAND上时选择Block的区别:

 

Host下写入数据时,根据该数据的更新频率分配Stream ID,FTL把Stream ID相同的数据Mapping到NAND Flash上相同的Block。

 

说白了,Multi-Stream Write是通过更加有效的数据摆放,降低后续GC过程中数据迁移的开销,从而实现Performance和寿命的提升。

下图中右侧的Block 0是最理想的情况,GC时可以直接擦除,完全没有Valid Data的copy。

 

 

Samsung也给出了Enable Multi-Stream以后的实验数据:

Case 1: Four Streams – Read/Write (70%/30%)

  1. 用打了补丁(要不然没有update frequency)的FIO
  2. 先做了2小时的Pre condition (128K Seq Write),让盘进入Steady Status,保证GC开始工作 (挺专业)
  3. 定义了 1x, 10x, 33x,55x四种更新频率不同的数据

 

从结果来看:

  1. Read IOPS (4K)提高到1.8倍
  2. Write Throughput (128K)提高到2倍
  3. WA降低到原来一半 (相当于寿命延长一倍)

 

 

PS: 不知道是不是我眼神不好,最后一张图,打开Multi-Stream以后WA居然掉到了1以下,Samsung你故意的吗?(刚发了一封邮件给Samsung,看看人家回不回吧。)

 

Case 2: Cassandra

  1. 一个开源分布式数据库应用,自带Stress Tool
  2. 50%/50% Read/Write
  3. 100万条记录
  4. 4小时Pre Condition

结果:

  1. IOPS提高45%
  2. WA降低到原来一半
  3. Read Latency降低50%

 

 

 

之前写的《跟着兵哥捡垃圾系列》,曾经讨论过数据摆放策略对GC效果的影响,那是在理论层面,现在看到在产品中的具体实现,只想感叹一句:铜锣湾只有一个扛把子 — Samsung。

 

本文参考:

Multi-Stream Write SSD Increasing SSD Performance and Lifetime with Multi-Stream Write Technology by Changho Cho, Principal Engineer Samsung Semiconductor

 

 

 

分类目录 闪存.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。