CN105487820A - 一种基于时间片轮转机制的树状存储结构写放大优化方法 - Google Patents
一种基于时间片轮转机制的树状存储结构写放大优化方法 Download PDFInfo
- Publication number
- CN105487820A CN105487820A CN201510859463.8A CN201510859463A CN105487820A CN 105487820 A CN105487820 A CN 105487820A CN 201510859463 A CN201510859463 A CN 201510859463A CN 105487820 A CN105487820 A CN 105487820A
- Authority
- CN
- China
- Prior art keywords
- assembly
- data
- timeslice
- authority
- threshold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于时间片轮转机制的树状存储结构写放大优化方法。本方法为:1)选取磁盘空间中一待合并的组件,赋予其占用时间片的权限;其中,磁盘空间为多组件的树状存储结构;2)根据所选组件当前数据量的大小,动态调整时间片的阈值大小;3)所选组件在占用时间片的过程中连续进行若干次合并操作。本发明对拥有时间片的组件具有最高的合并选择优先级,不能进行合并操作的组件将自动放弃时间片,避免不必要的长期占用,导致系统资源空闲,可以将LSM-Tree的整体写吞吐量提升40%以上。
Description
技术领域
本发明属于计算机软件技术领域,涉及到一种基于时间片轮转机制的树状存储结构写放大优化方法。
背景技术
LSMTree是一种多组件的树状存储结构。总体来说,LSMTree由内存空间和磁盘空间两部分构成。数据首先会被缓存在内存空间中,当内存空间达到一定阈值时,内存的数据会被批量地刷写到磁盘空间上。磁盘空间由多层组件构成,各层组件都有一个存储数据大小的阈值,阈值自上而下呈指数增长。刚从内存刷写到磁盘的数据会先存储在上层组件中,当组件中的数据达到阈值时,会通过合并操作将本层数据合并到下层组件中。当LSM-Tree中有多个组件的数据量达到阈值时,会根据合并选择优先级机制,选择优先级最高的组件进行合并操作。
写放大是目前影响LSM-Tree性能的主要原因。写放大表示一次合并操作的有效率,其计算公式为:写放大=写操作总IO量/有效移动数据总量,可以看出,写放大越大,表明此次操作的无效IO比例越大,效率就越低,性能也就越差。LSM-Tree写放大较大的原因主要是:在合并操作时,需要从待合并的上下两个组件中各读取一部分数据到内存中进行合并,合并后将结果写回下层组件,而只有上层组件的数据是有效移动数据,下层组件的数据并没有移动,所以下层组件的数据量越大,写放大就越大。现有的LSM-Tree合并选择优先级机制存在缺陷,不能保证各个组件的数据顺利向下层组件移动,一旦数据量增加,数据就会滞留在某一组件中,导致组件在合并时写放大较大,影响整体性能。
发明内容
本发明的主要目的在于提出一种基于时间片轮转的合并机制,通过设定的合并选择机制,选择待合并的组件,赋予其占用时间片(一种合并所需的系统资源)的权限,并根据组件当前数据量的大小,动态调整时间片的阈值大小,从而有效控制其占用时间片的时间长短,保证其在占用时间片的过程中连续进行若干次合并操作,从而有效控制组件的文件个数,降低写放大,提升系统整体吞吐量。
本发明的技术方案为:
一种基于时间片轮转机制的树状存储结构写放大优化方法,其步骤为:
1)选取磁盘空间中一待合并的组件,赋予其占用时间片的权限;其中,磁盘空间为多组件的树状存储结构;
2)根据所选组件当前数据量的大小,动态调整时间片的阈值大小;
3)所选组件在占用时间片的过程中连续进行若干次合并操作。
进一步的,选择待合并的组件需满足的条件为:组件的数据量大于该组件的数据量阈值。
进一步的,优先选择上次分配时间片的组件的相邻下个组件作为待合并的组件。
进一步的,如果相邻组件不满足组件的数据量大于该组件的数据量阈值条件时,则计算其他组件的当前数据量与对应组件的数据量阈值的比值,选取满足组件的数据量大于该组件的数据量阈值条件且比值最大的组件。
进一步的,动态调整时间片的阈值大小的方法为:T为当前分配时间片占用权限的组件Ci的时间片阈值,T=(超出组件Ci的数据量阈值的数据总量/每次合并平均移动数据量)*每次合并的平均时间;其中每次合并平均移动数据量表示为:当组件Ci参与合并且合并后的数据写回下层组件时,从该组件Ci读取的数据总量。
进一步的,将所选组件每次合并所消耗的时间进行累加,当消耗的总合并时间超过了对应时间片的阈值,则将取消所选组件的占用时间片的权限。
进一步的,当所选组件当前数据量已小于该组件的数据量阈值,则将取消所选组件的占用时间片的权限。
本发明主要包括以下三个阶段:
1)分配时间片占用权限
为LSM-Tree的某个组件分配时间片占用权限。被分配的组件需要满足以下条件:
①被分配的组件必须满足本组件的数据量大于本组件的数据量阈值。
②优先选择上次分配时间片的组件的相邻下个组件进行分配。如组件C2刚刚占用完时间片,则优先选择C3进行分配。
③如果根据条件②选择的组件不满足条件①,或当前时间片的占用权限为空,则计算其他所有组件的当前数据量与对应组件阈值的比值,将满足条件①且比值最大的组件将被分配时间片的占用权限。
④如果所有组件均不满足条件①,则时间片占用权限暂时置空,即没有组件拥有时间片占用权限,等待当有组件满足条件①时再进行分配。
2)使用时间片
当时间片被新的组件占用时,将根据该组件的相关信息,通过如下公式,重新计算时间片的阈值:T=(超出组件Ci的数据量阈值的数据总量/每次合并平均移动数据量)*每次合并的平均时间;T为当前分配时间片占用权限的组件Ci的时间片阈值,其中每次合并移动数据量表示为:当本组件参与合并,且合并后的数据写回下层组件时,从本组件读取的数据总量。经过统计可以计算出每次合并的平均移动数据量。
随后,在每次合并时,会将每次合并所消耗的时间进行累加,一旦总的合并时间超过了时间片的阈值,则将取消其占用时间片的权限。
需要指出的是,当第一次为某一组件分配时间片权限时,由于该组件从未进行过合并操作,因此设置的时间片阈值为固定值。
3)取消时间片占用权限
取消组件的时间片占用权限主要有以下两种情况:
①组件在使用时间片过程中,进行合并操作的总时间大于时间片阈值。
②组件当前数据量已小于该组件的数据量阈值。
取消组件的时间片权限后,会重新进入分配时间片占用权限的阶段,进行下一次时间片的权限分配。
与现有技术相比,本发明的积极效果为:
本发明对拥有时间片的组件具有最高的合并选择优先级,不能进行合并操作的组件将自动放弃时间片,避免不必要的长期占用,导致系统资源空闲。
通过使用本发明提供的方式优化LSM-Tree,可以将LSM-Tree的整体写吞吐量提升40%以上。
附图说明
图1为本发明的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明做进一步说明。
实例1基于时间片轮转机制的树状存储结构写放大优化方法
本发明基于RocksDB进行实现和实验。具体的实现方法如下:
①在系统初始化时,将时间片的占用权限置空。
②当有组件(不一定是占用时间片的组件)满足本组件数据量大于本组件阈值时,判断当前时间片是否被组件占用。如果没有被占用,则执行④;如果已经被占用,则判断当前占用时间片的组件是否满足本组件数据量大于本组件阈值,如果不满足,则执行③;如果满足则判断该组件的合并时间是否已超过当前时间片的阈值,如果没有超过,则该组件继续进行合并操作,并在合并完成后执行⑤,否则执行③。
③判断当前占用时间片的组件的相邻下一组件是否满足本组件数据量大于本组件阈值,如当前占用时间片的组件为C2,则判断C3是否满足。如果满足,则根据下一组件的相关信息计算时间片阈值大小,为其分配时间片占用权限,并由该组件进行合并操作,合并操作完成后,执行⑤;如果不满足,则执行④。
④根据如下公式计算所有组件的分数:组件分数=组件数据量÷组件阈值。如果分数最大的组件的分数大于1,则根据该组件信息重新计算时间片阈值大小,为其分配时间片占用权限,并由该组件进行合并操作,合并操作完成后,执行⑤;否则,将时间片占用权限置空。
⑤记录本次合并消耗的时间,并计算自该组件最近一次占用时间片以后所进行的所有合并操作的总时间。
Claims (7)
1.一种基于时间片轮转机制的树状存储结构写放大优化方法,其步骤为:
1)选取磁盘空间中一待合并的组件,赋予其占用时间片的权限;其中,磁盘空间为多组件的树状存储结构;
2)根据所选组件当前数据量的大小,动态调整时间片的阈值大小;
3)所选组件在占用时间片的过程中连续进行若干次合并操作。
2.如权利要求1所述的方法,其特征在于,选择待合并的组件需满足的条件为:组件的数据量大于该组件的数据量阈值。
3.如权利要求2所述的方法,其特征在于,优先选择上次分配时间片的组件的相邻下个组件作为待合并的组件。
4.如权利要求3所述的方法,其特征在于,如果相邻组件不满足组件的数据量大于该组件的数据量阈值条件时,则计算其他组件的当前数据量与对应组件的数据量阈值的比值,选取满足组件的数据量大于该组件的数据量阈值条件且比值最大的组件。
5.如权利要求1或2所述的方法,其特征在于,动态调整时间片的阈值大小的方法为:T为当前分配时间片占用权限的组件Ci的时间片阈值,T=(超出组件Ci的数据量阈值的数据总量/每次合并平均移动数据量)*每次合并的平均时间;其中每次合并平均移动数据量表示为:当组件Ci参与合并且合并后的数据写回下层组件时,从该组件Ci读取的数据总量。
6.如权利要求1所述的方法,其特征在于,将所选组件每次合并所消耗的时间进行累加,当消耗的总合并时间超过了对应时间片的阈值,则将取消所选组件的占用时间片的权限。
7.如权利要求1所述的方法,其特征在于,当所选组件当前数据量已小于该组件的数据量阈值,则将取消所选组件的占用时间片的权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510859463.8A CN105487820B (zh) | 2015-11-30 | 2015-11-30 | 一种基于时间片轮转机制的树状存储结构写放大优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510859463.8A CN105487820B (zh) | 2015-11-30 | 2015-11-30 | 一种基于时间片轮转机制的树状存储结构写放大优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105487820A true CN105487820A (zh) | 2016-04-13 |
CN105487820B CN105487820B (zh) | 2018-11-16 |
Family
ID=55674825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510859463.8A Active CN105487820B (zh) | 2015-11-30 | 2015-11-30 | 一种基于时间片轮转机制的树状存储结构写放大优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105487820B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147204A (zh) * | 2019-05-22 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种元数据落盘方法、装置、系统及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140195492A1 (en) * | 2012-12-19 | 2014-07-10 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using lsm trees |
CN104142958A (zh) * | 2013-05-10 | 2014-11-12 | 华为技术有限公司 | 一种键值对系统中数据的存储方法和相关装置 |
CN104268709A (zh) * | 2014-10-10 | 2015-01-07 | 浪潮集团有限公司 | 一种采用分布式lsm树的rfid系统设计方法 |
US20150058568A1 (en) * | 2013-08-26 | 2015-02-26 | International Business Machines Corporation | HIERARCHICAL STORAGE FOR LSM-BASED NoSQL STORES |
CN104809237A (zh) * | 2015-05-12 | 2015-07-29 | 百度在线网络技术(北京)有限公司 | LSM-tree索引的优化方法和装置 |
CN104915145A (zh) * | 2014-03-11 | 2015-09-16 | 华为技术有限公司 | 一种降低LSM Tree写放大的方法和装置 |
-
2015
- 2015-11-30 CN CN201510859463.8A patent/CN105487820B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140195492A1 (en) * | 2012-12-19 | 2014-07-10 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using lsm trees |
CN104142958A (zh) * | 2013-05-10 | 2014-11-12 | 华为技术有限公司 | 一种键值对系统中数据的存储方法和相关装置 |
US20150058568A1 (en) * | 2013-08-26 | 2015-02-26 | International Business Machines Corporation | HIERARCHICAL STORAGE FOR LSM-BASED NoSQL STORES |
CN104915145A (zh) * | 2014-03-11 | 2015-09-16 | 华为技术有限公司 | 一种降低LSM Tree写放大的方法和装置 |
CN104268709A (zh) * | 2014-10-10 | 2015-01-07 | 浪潮集团有限公司 | 一种采用分布式lsm树的rfid系统设计方法 |
CN104809237A (zh) * | 2015-05-12 | 2015-07-29 | 百度在线网络技术(北京)有限公司 | LSM-tree索引的优化方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147204A (zh) * | 2019-05-22 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种元数据落盘方法、装置、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105487820B (zh) | 2018-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3104353C (en) | Storage volume creation method and apparatus, server, and storage medium | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
US8190795B2 (en) | Memory buffer allocation device and computer readable medium having stored thereon memory buffer allocation program | |
CN103336669B (zh) | 一种基于固态盘内部并行性的i/o调度方法及调度器 | |
CN102385554B (zh) | 重复数据删除系统的优化方法 | |
CN102821164B (zh) | 一种高效并行分布式数据处理系统 | |
CN103608782A (zh) | Lsb页面和msb页面中的选择性数据存储 | |
CN103412884A (zh) | 一种异构存储介质下嵌入式数据库的管理方法 | |
CN107209716B (zh) | 内存管理装置和方法 | |
CN103701920A (zh) | 云环境下配置虚拟应用服务器的方法 | |
WO2020088525A1 (en) | Systems and methods for storage medium management | |
CN105117285A (zh) | 一种基于移动虚拟化系统的非易失性存储器调度优化方法 | |
CN101799772B (zh) | 内核调度方法、内核备份方法和多核处理器 | |
CN104375944B (zh) | 一种数据存储方法和装置 | |
CN106383742A (zh) | 一种基于linux的IO调度方法 | |
CN104424240A (zh) | 多表关联方法、主服务节点、计算节点及系统 | |
CN101819459A (zh) | 一种基于异构对象存储系统的功耗控制方法 | |
CN105487820A (zh) | 一种基于时间片轮转机制的树状存储结构写放大优化方法 | |
CN108932112B (zh) | 一种固态颗粒的数据读写方法、装置、设备及介质 | |
CN105243026A (zh) | 终端设备的内存访问控制方法与装置 | |
CN103927203A (zh) | 一种计算机系统及控制方法 | |
US20140040900A1 (en) | Storage managing device and method and electronic apparatus | |
CN102143206A (zh) | 集群存储系统中存储池的调整方法、装置及系统 | |
CN102780620B (zh) | 一种网络处理器和报文处理方法 | |
CN104182280B (zh) | 面向混合主存嵌入式系统的低能耗rm实时任务调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |