基于闪存的SSD的高性能轻量级事务协议

基于闪存的SSD的高性能轻量级事务协议

Abstract

  • 发现问题:现有的基于闪存的SSD的嵌入式事务协议要么限制了事务的并发性能,要么追踪事务状态的开销过大,导致SSD性能下降或不稳定。
  • 解决方案:本文提出LightTx,在支持事务高并发处理的同时满足低开销。主要从三个方面实现这个目标。
    • 采用页独立提交方式(page-independent commit protocal)改进事务并发性能。
    • 利用SSD的近日志结构更新(near-log-structured)的特性追踪最后的数据更新,并且周期性的回收死亡事务减少事务跟踪开销。
  • 结果评估:相比已有的嵌入式事务协议,LightTx在垃圾回收、内存消耗、映射持久化方面的开销降到最低,同时并发性能提升显著。

ps:本节简要介绍了问题的起源,提出的解决方案,以及本文亮点。主题是嵌入式事务协议;下文关键在阐述并发性能改进方案、降低事务状态追踪开销方案两个方面;亮点是实验数据支撑的大幅提升,实验主要在内存消耗、垃圾回收、影射持久化和并发性能四个方面。


Introduction

  1. 通过应用层(DBMSs、File System、Apps)介绍事务在上层的问题:实现复杂度高、性能低。强调了事务恢复的重要性,同时介绍两种主要的事务恢复方法:WAL(write ahead logging)、影子页(shadow paging)。前者额外的log操作引起巨大开销,后者降低性能。从而引出可能的解决方案,利用闪存的不可重复写和随机读写两个特性能解决前两者的问题,在SSD内部尝试提供事务支持。
  2. 围绕上文提出的可行的解决方案,本节介绍了目前的研究情况。各种研究主要滞涩在两个技术瓶颈上。a)对于不同的事务隔离等级环境的不兼容,仅使用于strict isolation,不能满足并发事务需求,这使得SSD性能不能被充分利用。b)开销过高,大量并发事务的状态追踪的开销、事务中止的垃圾回收开销、映射持久化开销。
  3. 根据上文提到的两大技术瓶颈,本文提出了TxSSD事务协议,通过称之为LightTx的技术同时解决这两个问题。
    • 根据SSD不可重复写特性,利用页独立更新以及页独立的事务提交协议,支持事务并发。
    • 根据SSD近日志结构更新特性提出的基于区域的事务状态追踪方案解决事务管理开销问题。
  4. 成果:这是首个在SSD内部实现的低开销且兼容多事务隔离等级的嵌入式事务协议。

Background & Related Work

  1. 基于闪存的SSD:存储体的组织结构(片、面、块、页、OOB,极其大小)、存储单元的物理结构与特性(不可重复写的原理)。
  2. 事务:ACID特性、事务生命周期(BEGIN COMMIT\ABORT CHECKPOINT ERASE)。
  3. 相关研究:AW(Atomic-Write)& AW FTL、TxFlash、Flag Commit、MARS’。它们的主要思路与缺点。

ps:本节分三部分展开。第一部分介绍了SSD的物理组成,存储体的工作原理、特性,证明其能很好的在底层支持事务。第二部分介绍了事务的特性及其生命周期,提出了兼容不同事务隔离等级和减少事务追踪开销的需求。第三部分介绍了已有的关于嵌入式事务机制,AW、TxFlash、FlagCommit以及MARS几种方法的原理和缺点,对比引出了本文的解决方案LightTx。


LightTx Design

目标:

  • 页独立提交协议,用以提高事务兼容性,支持事务并发
  • 基于区域的事务状态跟踪机制,降低LightTX的开销。

设计组成:

​ 事务框架(TxSSD)、提交协议、基于区域的事务状态跟踪机制、恢复机制。

  1. 事务框架TxSSD

    并发控制与事务恢复解耦,前者软件实现,后者硬件实现。拓展FTL模块,新增Active TxTable、Commit Logic、Recovery Logic以及基于空闲块的管理模块。接口方面添加了BEGIN、COMMIT、ABORT命令,拓展了WRITE命令。

  2. 页独立提交协议

    设计目标是将不同页以及相同页的不同版本之间的依赖降至最低。每个页的元数据区用12byte存储事务元数据,包括TxID、TxCnt、TxVer,其中TxCnt记录总页数用于检查事务的提交状态。

    ps:该协议是用于支持并发处理的,行文中对每一个原理解释都采取图+案例说明的方式,更容易理解,然而还是没有强调出并发的处理。

  3. 基于区域的事务状态跟踪机制

    • 概述:减少开销。跟踪事务状态,区分已提交、未提交,在事务恢复的时候redo或者undo。两个方面减少开销。1)通过块而不是页跟踪事务状态。2)将活动事务与死亡事务分开以减少跟踪的事务数量。
    • 事务状态、页状态、块状态之间的关系:页状态与它所属的事务状态一致。事务状态由它所更新的所有页的状态而决定。块状->页状->事务状态。
    • 块区域及块滑动:block zone是一个块的集合,根据块中页的状态将块分成四个zone,Free、Unavailable、Available、Checkpointed。

    ps:基于区域是相对与基于页的检测而言的,基于页需要检测的量大开销大,所以类似于将页分组做索引,页聚成块,块聚成区,最终只维护区中的块流动,然后检测特定的区就能检测事务的状态。

  4. 事务恢复

    在Available和Unavailable zone中检测page的metadata区别出committed或uncommitted的事务进行redo或undo。redo的事务更新FTL映射表和页元数据即可,undo的直接从TxTable中discard就可以了。


Evaluation

本节采用对照实验的方法将LightTx与之前的提交协议AW、SCC/BPCC、MHL(Multi-Head Logging)做对比,在多种兼容环境下的性能和开销(垃圾回收、内存消耗、映射持久化)两方面做对比。

实验环境搭建:a simulator based on DiskSim,use configuration as Samsung K9F8G NAND flash ...

事务兼容性:三种事务隔离等级下的吞吐量测试。AW只支持strict isolation,不支持并发;SCC、BPCC不支持同一页的并发事务,但支持不同页的并发事务;其他协议均支持三种隔离等级的事务。横向对比,LightTx在三种隔离等级环境下的吞吐量均优于其他协议。纵向对比,LightTx在处理高并发事务时表现出更高的吞吐量,证明其能提高SSD并行事务处理能力。同时,补充实验验证内部SSD并行性能与隔离等级及吞吐量的关系。

垃圾回收开销:对比四种协议在不同中止率下性能及垃圾回收的开销。性能:中止率对LightTx性能没有影响,且在各中止率下的性能都几乎是最佳性能相比其他的协议。垃圾回收开销最小,且通过变化垃圾回收阈值测试垃圾回收敏感度,由GC时间和吞吐量衡量。

内存开销:LightTx和MHL-D具有很低的内存开销相较其他的协议。

映射持久化开销:恢复时间和持久化开销两个方面实验。恢复时间主要取决与页扫描时间,AW/MHL-M持久化了所有事务的映射,所以不用扫描页,直接读持久化的映射表就能做恢复,故时间最短;而SCC\BPCC需要扫描所有页以确定事务状态,需要最长时间;LightTx只需要扫描没有持久化的映射,即Available和Unavailable Zone里的页,大大减少了扫描时间。映射持久化开销和恢复时间成反比,需要持久化的映射数据越多,那么恢复的时候需要扫描的页越少。

评估总结:对上诉所有实验做一个汇总总结,通过表格的形式描述实验结果,突出了本文研究内容LightTx的优越性。

PS:实验要多角度变化,同时实验说明除了数据描述、结果总结,还需要对每个数据的原因进行剖析,印证前文的原理描述。


Conclusion

总结本文的成果:高兼容性、低开销的SSD事务设计。页独立提交协议实现高兼容性,基于区域的页状态追踪机制减少持久化开销、状态检测开销、垃圾回收开销和内存消耗。

你可能感兴趣的:(基于闪存的SSD的高性能轻量级事务协议)