本文介绍了GearDB。SMR driver在顺序写/随机读领域有很大的应用优势。本文的目标在于消除基于SMR drive搭建的LSM-KVS垃圾回收所要的read-merge-write操作造成的开销较大以及造成的存储资源碎片化的问题。GearDB使用三种方式进行优化。下文进行分析。
introduction
1.SMR drives
叠瓦式硬盘:是垂直式硬盘(PMR)的一种延伸。
- 因受物理极限的限制,磁道宽度(以及写入磁头的尺寸)只能缩小到一定的程度。不同于 PMR 不允许磁道相互重叠的做法,SMR HDD 采用的技术是让数据位循序写入,如其名称所示,磁道会如瓦片般堆叠在另一磁道的部分面积上,借此达到增加磁录密度的目的。同时读取的磁头大小也不相同,这样,读取磁头仍可从磁道上未被覆盖的部分来读取数据。
- 一旦已写入的数据要编辑或覆盖时,写入磁头并不会直接在既有的磁道上进行磁录,以避免损坏相邻磁道。编辑后的数据会先在磁盘上的空白处写入,原先旧数据的磁道会暂时维持不动。等到 HDD 闲置时才会执行重组机制,将原先磁道上的旧数据位自动擦除,并重新成为可用空间以供新数据写入。
- 例如在上图之中,zone1中write pointer指向了Sector C+1,当要更新Sector中的内容时候。系统会加载Sectors A,B,C到缓存中,然后更新Sector1的内容最终写回。这样的机制导致严重的写放大,也影响了硬盘本身的性能。
- 只要将指针指向zone的第一个block就可以将不含有有效数据的zone重新用作empty zone。
2.HM-SMR(host-managed)
三种SMR类型有:drive-managed, hostmanaged, host-aware
优势在于:
- 容量大
- 可预知的性能
- total cost of ownership(购买成本、操作成本、维护成本)
这样HM-SMR满足了数据中心应用环境下需要可预知性能以及顺序写,随机读应用的需求。
3.在HM-SMR上搭建LSM-tree based KVS遇到的难点:
- HM-SMR以及KVS上垃圾回收(冗余的读写)会损害性能。同时也会影响硬盘的空间使用率。
- 当前的垃圾回收基本采用的是(greedy garbage collection),即简单的read-merge-write。
4.our work
从上述的论述我们知道想要在HM-SMR上搭建高性能,高空间利用率的LSM-tree based KVS面临的问题,因此本文提出了GearDB:
- 提出了新的on-disk data layout:一