一种基于流量控制的树状存储结构写放大优化方法

文档序号:9546873阅读:192来源:国知局
一种基于流量控制的树状存储结构写放大优化方法
【技术领域】
[0001] 本发明属于计算机软件技术领域,涉及到基于流量控制的树状存储结构LSM-Tree 写放大优化方法。
【背景技术】
[0002] LSM Tree是一种多组件的树状存储结构。总体来说,LSM Tree由内存空间和磁盘 空间两部分构成。数据首先会被缓存在内存空间中,当内存空间达到一定阈值时,内存的数 据会被批量地刷写到磁盘空间上。磁盘空间由多层组件构成,各层组件都有一个存储数据 大小的阈值,阈值自上而下呈指数增长。刚从内存刷写到磁盘的数据会先存储在上层组件 中,当组件达到阈值时,会通过合并操作将本层数据合并到下层组件中。
[0003] 写放大是目前影响LSM-Tree性能的主要原因。写放大表示一次合并操作的有效 率,其计算公式为:写放大=写操作总IO量/有效移动数据总量,可以看出,写放大越大,表 明此次操作的无效IO比例越大,效率就越低,性能也就越差。LSM-Tree写放大较大的原因 主要是:在合并操作时,需要从待合并的上下两个组件中各读取一部分数据到内存中进行 合并,合并后将结果写回下层组件,而只有上层组件的数据是有效移动数据,下层组件的数 据并没有移动,所以下层组件的数据量越大,写放大就越大。在现有的LSM-Tree结构中,会 经常出现某一组件数据量过大的情况,而一旦出现这种情况,其作为下层组件参与合并时, 就会导致写放大较大。

【发明内容】

[0004] 本发明的主要目的在于提出一种通过动态调整LSM-Tree上层数据流量的方法, 控制LSM-Tree中各个组件数据量的范围,从而有效降低写放大,提升LSM-Tree的整体性 能。
[0005] 本发明的技术方案为:
[0006] -种基于流量控制的树状存储结构写放大优化方法,其步骤为:
[0007] 1)在存储系统中设置一流量监听器;其中,该存储系统的磁盘空间和内存空间采 用树状存储结构进行数据存储;
[0008] 2)该流量监听器根据磁盘空间的每一待监控组件的当前数据量,判断所述磁盘空 间是否需要进行流量控制;如果需要控制,则选取若干待监控组件的当前数据量计算一流 量控制力度;
[0009] 3)该流量监听器根据该流量监控力度计算一延长时间,然后根据该延长时间延长 写请求的到达时间间隔。
[0010] 进一步的,该流量监听器判断是否需要进行流量监控的方法为:如果所有待监控 组件的当前数据量均没有超过相应阈值,则不进行流量控制;否则,需要进行流量控制。
[0011] 进一步的,根据所有超过对应阈值的待监控组件的当前流量计算所述流量控制力 度。
[0012] 进一步的,所述流量监控力度N = 0· 5η2+0· 5η,其中
叫为超过阈值的待 监控组件i的当前数据量/该待监控组件i的阈值;m为超过阈值的待监控组件总数。
[0013] 进一步的,所述延长时间T延长=100 X流控力度N。
[0014] 进一步的,所述流量监听器在下一个写请求到达之前,将存储系统进行睡眠 T延长 时间,从而延缓下一个写请求到达的时间。
[0015] 进一步的,每一所述待监控组件定期向该流量监听器发送自己的当前数据量。
[0016] 进一步的,所述待监控组件为该磁盘空间的所有组件。
[0017] 进一步的,所述待监控组件为该磁盘空间的第二组件C2。
[0018] 本发明主要包括以下三个阶段:
[0019] 1)反馈阶段。
[0020] LSM-Tree的各个组件实时向监听器汇报自己数据量。
[0021] 2)计算阶段。
[0022] 监听器根据各个组件汇报的数据量,判断是否需要进行流量控制,以及计算流量 控制的力度。判断的标准主要根据各个组件的数据量是否超过了组件自身的阈值。如果没 有组件的数据量超过阈值,则不需要进行流量控制;否则就需要进行流量控制。如果需要进 行流量控制,则会根据一定公式计算流量控制的力度,流量控制的力度应随着数据量超过 阈值的幅度增大而增大。
[0023] 3)流控阶段。
[0024] 如果计算阶段判断需要进行流量控制,则会进入流控阶段。流控阶段会根据计算 得到的流量控制力度,对上层的数据写入速度进行限制。流量控制力度越大,则对上层写入 速度的限制越大,上层的数据写入速度也就越慢。
[0025] 与现有技术相比,本发明的积极效果为:
[0026] 1、定期检测LSM-Tree中每个组件的数据量,一旦发现超过阈值,将实时进行流量 控制。
[0027] 2、流量控制力度可以根据当前系统状态动态改变。
[0028] 3、流量控制从数据来源入手,可以从根本上限制LSM-Tree的数据增长速度。
[0029] 本发明通过控制LSM-Tree中各个组件数据量的范围,从而有效降低写放大,提升 LSM-Tree的整体性能;使用本发明提供的方式优化LSM-Tree,可以将LSM-Tree的整体写吞 吐量提升30%以上。
【附图说明】
[0030] 图1为传统LSM-Tree基本架构示意图;
[0031] 图2为本发明只监控(:2组件的流量控制机制示意图。
【具体实施方式】
[0032] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本 发明做进一步说明。
[0033] 实例1基于流量控制的LSM-Tree写放大优化方法
[0034] 本发明基于RocksDB进行实现和实验。具体的实现方法如下:
[0035] 1)反馈阶段
[0036] 反馈就是在每次RocksDB进行合并操作前,各个组件统计自己当前的数据量,并 向监听器进行汇报。每个组件都有元数据,主要记录自己的文件个数,数据量,键值范围等 基本信息,因此当前的数据量可以直接从元数据中获取。
[0037] 2)计算阶段
[0038] 计算是指判断是否需要进行流量控制,以及计算流量控制力度大小。通过反馈阶 段得到各个组件的数据量后,判断各个组件的数据量是否超过了阈值。如果所有组件的数 据量均没有超过相应阈值,则不进行流量控制;否则,则需要进行流量控制。流量控制的力 度N = 〇. 5η2+0. 5η,其中η = Σ (超过阈值的组件的当前数据量/该组件阈值)。
[0039] 3)流控阶段
[0040] 流控阶段采用的是延长写请求到达时间间隔的方式实现的。根据计算阶段得到的 流控力度,通过公式得到需要延长的时间:(单位:us) = 100 X流控力度Ν。然后在下 一个写请求到达之前,将系统睡眠的时间,从而延缓下一个写请求到达的时间,达到流 量控制的效果。
[0041 ] 实例2基于流量控制的LSM-Tree写放大优化方法
[0042] 在应用本发明时,可以根据实际情况,只对某一个或几个组件的数据量进行监控。 如针对第二组件,以下简称C 2,进行监控:
[0043] 1)反馈阶段
[0044] 在每次RocksDB进行合并操作前,统计C2组件的数据量。统计方法主要通过遍历 C2组件的元数据,读取C 2上每个文件的大小,将它们进行累加,得到C 2组件当前的数据总 量。
[0045] 2)计算阶段
[0046] 通过反馈得到C2的数据量后,判断C 2的数据量是否超过了 C 2的阈值,如果没有超 过阈值,则不进行流量控制;否则,需要进行流量控制,并通过如下公式计算流量控制力度: 流量控制力度N = 0. 5n2+0. 5n,其中η = (:2组件当前数据量/C 2组件阈值。
[0047] 3)流控阶段
[0048] 这里仍然采用延长写请求到达时间间隔的方式实现。根据计算阶段得到的流控力 度,通过公式得到需要延长的时间:(单位:us) = 100 X流控力度Ν。然后在下一个写 请求到达之前,将系统睡眠的时间,从而延缓下一个写请求到达的时间,达到流量控制 的效果。
【主权项】
1. 一种基于流量控制的树状存储结构写放大优化方法,其步骤为: 1) 在存储系统中设置一流量监听器;其中,该存储系统的磁盘空间和内存空间采用树 状存储结构进行数据存储; 2) 该流量监听器根据磁盘空间的每一待监控组件的当前数据量,判断所述磁盘空间是 否需要进行流量控制;如果需要控制,则选取若干待监控组件的当前数据量计算一流量控 制力度; 3) 该流量监听器根据该流量监控力度计算一延长时间,然后根据该延长时间延长写请 求的到达时间间隔。2. 如权利要求1所述的方法,其特征在于,该流量监听器判断是否需要进行流量监控 的方法为:如果所有待监控组件的当前数据量均没有超过相应阈值,则不进行流量控制; 否则,需要进行流量控制。3. 如权利要求2所述的方法,其特征在于,根据所有超过对应阈值的待监控组件的当 前流量计算所述流量控制力度。4. 如权利要求3所述的方法,其特征在于,所述流量监控力度N= 0. 5η2+0. 5η,其中叫为超过阈值的待监控组件i的当前数据量/该待监控组件i的阈值;m为超过 阈值的待监控组件总数。5. 如权利要求1或2或3或4所述的方法,其特征在于,所述延长时间T5^ = 100X 流控力度N。6. 如权利要求1或2或3或4所述的方法,其特征在于,所述流量监听器在下一个写请 求到达之前,将存储系统进行睡眠Tgi时间,从而延缓下一个写请求到达的时间。7. 如权利要求1所述的方法,其特征在于,每一所述待监控组件定期向该流量监听器 发送自己的当前数据量。8. 如权利要求1所述的方法,其特征在于,所述待监控组件为该磁盘空间的所有组件。9. 如权利要求1所述的方法,其特征在于,所述待监控组件为该磁盘空间的第二组件 C2〇
【专利摘要】本发明公开了一种基于流量控制的树状存储结构写放大优化方法。本方法:1)在存储系统中设置一流量监听器;其中,该存储系统的磁盘空间和内存空间采用树状存储结构进行数据存储;2)该流量监听器根据磁盘空间的每一待监控组件的当前数据量,判断所述磁盘空间是否需要进行流量控制;如果需要控制,则选取若干待监控组件的当前数据量计算一流量控制力度;3)该流量监听器根据该流量监控力度计算一延长时间,然后根据该延长时间延长写请求的到达时间间隔。本发明能够有效降低写放大,提升LSM-Tree的整体性能;使用本发明提供的方式优化LSM-Tree,可以将LSM-Tree的整体写吞吐量提升30%以上。
【IPC分类】G06F3/06, G06F11/30
【公开号】CN105302487
【申请号】CN201510684785
【发明人】岳银亮, 李宇哲, 王伟平
【申请人】中国科学院信息工程研究所
【公开日】2016年2月3日
【申请日】2015年10月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1