CN104571959A - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN104571959A CN104571959A CN201410847842.0A CN201410847842A CN104571959A CN 104571959 A CN104571959 A CN 104571959A CN 201410847842 A CN201410847842 A CN 201410847842A CN 104571959 A CN104571959 A CN 104571959A
- Authority
- CN
- China
- Prior art keywords
- band
- write
- raid
- predetermined condition
- entrained
- 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.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种数据处理方法和装置,该数据处理方法包括:检测当前chunk范围内的第i条条带是否符合预定条件;其中,所述预定条件是指所述第i条条带为整条带且所述第i条条带符合回刷条件,所述整条带是指携带的所有页均需要回写的条带,i为正整数;当所述第i条条带符合所述预定条件时,将所述第i条条带所携带的所有页构造成bio下发给磁盘阵列RAID。本发明通过上述方法先处理符合预定条件的条带可以有效的提升系统的回写性能,并且大大减少资源的开销。
Description
技术领域
本发明涉及数据处理领域,具体来说,涉及一种数据处理方法和装置。
背景技术
随着信息科学技术的高速发展,人们对海量信息存储的需求日益增长。CPU的处理速度和存储设备I/O处理速度之间的差距越来越大,为了弥补这种处理速度的差异,在磁盘阵列存储系统中加入Cache已经成为必须,用cache来缓存并管理数据,尽可能减少读写磁盘的开销,缩短I/O请求的响应时间,从而提高存储系统的I/O性能。
为了提高cache中页查找的效率和命中率,需要有合理的Cache组织和调度策略来支持。基数(radix)树是一种多叉搜索树,在Linux内核中有多处应用。它将指针与long整数键值相关联,存储效率高并且可以快速查询,用于指针与整数值的映射、内存管理等。
基数树在linux中应用很多。比如,Linux内核利用radix树在文件内偏移快速定位文件缓存页,图1就是一个radix树样例,该radix树的分叉为4(22),树高为4,树的每个叶子结点用来快速定位8位文件内偏移,可以定位4×4×4×4=256页,如:图中虚线对应的两个叶子结点的路径组成值0x00000010和0x11111010,指向文件内相应偏移所对应的缓存页。
在传统的磁盘阵列系统的cache设计中,为了减少磁盘的I/O次数,通常是在进行cache回写时把尽可能多连续的页组织起来发给底层RAID。但这种方法在RAID的chunk设置相对较大时,即使下发连续的写请求,也只是对RAID的某个成员盘或几个成员盘上的写操作,不能很好的发挥RAID并发写的优势;同时,还会有RAID重构写和读改而导致的额外开销产生。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种数据处理方法和装置,能够有效的提升系统的回写性能,并且大大减少资源的开销。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种数据处理方法。
该数据处理方法包括:检测当前chunk范围内的第i条条带是否符合预定条件;其中,预定条件是指所述第i条条带为整条带且所述第i条条带符合回刷条件,整条带是指携带的所有页均需要回写的条带,i为正整数;
当第i条条带符合所述预定条件时,将第i条条带所携带的所有页构造成bio下发给磁盘阵列RAID。
其中,该数据处理方法进一步包括:当第i条条带不符合预定条件时,则在所有chunk范围内符合预定条件的条带所携带的所有页均已下发给RAID之后,将所述第i条条带所携带的需要回写的页构造成bio下发给所述RAID。
其中,回刷条件为当前条带达到回刷周期和/或cache空闲空间达到预定阈值。
其中,cache采用基数树进行管理。
优选的本发明采用并行的方式对条带所携带的需要回写的页构造成bio下发给所述RAID。
根据本发明的另一方面,提供了一种数据处理装置。
该数据处理装置包括:检测模块,用于检测当前chunk范围内的第i条条带是否符合预定条件;其中,预定条件是指第i条条带为整条带且第i条条带符合回刷条件,整条带是指携带的所有页均需要回写的条带,i为正整数;
发送模块,用于当第i条条带符合预定条件时,将第i条条带所携带的所有页构造成bio下发给磁盘阵列RAID。
其中,发送模块进一步用于,当第i条条带不符合预定条件时,则在所有chunk范围内符合预定条件的条带所携带的所有页均已下发给RAID之后,将第i条条带所携带的需要回写的页构造成bio下发给RAID。
其中,回刷条件为当前条带达到回刷周期和/或cache空闲空间达到预定阈值。
其中,cache采用基数树进行管理。
其中,发送模块采用并行的方式对条带所携带的需要回写的页构造成bio下发给RAID。
本发明通过上述方法,能够充分发挥RAID条带内并发写优势,有效的提升系统的回写性能,并且大大减少资源的开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中基数(radix)树的样例图;
图2是根据本发明实施例的数据处理方法中RAID-5的示意性结构图;
图3是根据本发明实施例的数据处理方法的流程图;
图4是根据本发明实施例的数据处理方法的cache存储系统的示意性流程图;
图5是根据本发明实施例的数据处理方法的cache回写的示意性流程图;
图6是根据本发明实施例的数据处理装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
为了更好的优化cache的回写性能,首先需要了解RAID条带和RAID条带写的工作原理。现在以RAID-5为例进行说明,如图2所示,其中线框示出的就是条带(stripe),D1,D2,D3,P1被称为chunk。磁盘上的数据按照chunk组织到各个disk上。RAID-5中的一个stripe的宽度总是4K(1page),图2中的d1,d2,d3,p1组成的一个stripe。可以发现D1,D2,D3数据是连续的,但是d1,d2,d3数据是跳跃的。d1,d2,d3或p1在RAID-5中称之为strip。P(parity)表示校验数据,校验数据的计算非常简单,也就是P=D1⊕D2⊕D3。
RAID-5对写请求的处理有以下几种情况:
整条写(Full-Stripee Write):整条写需要修改奇偶校验群组中所有的条带单元,因此新的奇偶校验值可以根据所有新的条带数据计算得到,不需要额外的读、写操作。因此,整条写是最有效的写类型。
重构写(Reconstruct Write):如果要写入的磁盘数目超过阵列磁盘数目的一半,可采取重构写方式。在重构写中,从这个条带中不需要修改的strip中读取原来的数据,再和本条带中所有需要修改的strip上的新数据计算奇偶校验值,并将新的strip数据和没有更改过的strip数据以及新的奇偶校验值一并写入。显然,重构写要牵涉更多的I/O操作,因此效率比整条写低。
读改写(Read-Modify Write):如果要写入的磁盘数目不足阵列磁盘数目的一半,可采取读改写方式。读改写过程是:先从需要修改的上读取旧的数据,再从条带上读取旧的奇偶校验值;根据旧数据、旧校验值和需要修改的strip上的新数据计算出这个条带上的新的校验值;最后写入新的数据和新的奇偶校验值。
由上可知,RAID写效率的排列顺序为整条写>重构写>读改写。同时,由于RAID的数据组织是以chunk为单位分布到各个磁盘,但RAID模块对读写I/O的处理是以条带为单位,可以知道,只有整条带写才能最大限度发挥RAID写的并发优势。
根据本发明的实施例,提供了一种数据处理方法,可以有效的提升系统的回写性能,并且大大减少资源的开销。
如图3所示,根据本发明实施例的数据处理方法包括:
步骤S101,检测当前chunk范围内的第i条条带是否符合预定条件;其中,预定条件是指第i条条带为整条带且第i条条带符合回刷条件,整条带是指携带的所有页均需要回写的条带,i为正整数;
步骤S103,当第i条条带符合预定条件时,将第i条条带所携带的所有页构造成bio下发给磁盘阵列RAID。
其中,该数据处理方法进一步包括:当第i条条带不符合预定条件时,则在所有chunk范围内符合预定条件的条带所携带的所有页均已下发给RAID之后,将第i条条带所携带的需要回写的页构造成bio下发给RAID。
其中,回刷条件为当前条带达到回刷周期和/或cache空闲空间达到预定阈值。
其中,cache采用基数树进行管理。
其中,本发明采用并行的方式对条带所携带的需要回写的页构造成bio下发给RAID。本发明通过采用并行回写的方式对所有符合预定条件的条带同时进行回写,以此充分发挥RAID的并发写的优势。
继续参照图3,具体而言,根据本发明的实施例,cache回写的算法思想是首先以chunk为单位查询脏页,查询的结果按条带用链表组织起来。因为基数树上设置有脏页标签,所以查询脏页很高效。然后,对当前chunk范围内的所有条带逐个进行处理,判读第i条条带是否符合预定条件,也即判读其是否为整条带,是否满足回刷条件等,本发明实施例中的回刷条件是指当前条带达到回刷周期和/或cache空闲空间达到预定阈值,比如当当前的cache空间不足二分之一时。若当前条带符合所有预定条件,即第i条条带是整条带并且符合回刷条件,则将整条带内所有页构造成bio下发给底层RAID处理;若不符合预定条件,即第i条条带不是满条带或者不满足回刷条件,则等待下次回写时处理。也就是说,在所有chunk范围内符合预定条件的条带所携带的所有页均已下发给RAID之后,将第i条条带所携带的需要回写的页构造成bio下发给RAID。一个chunk内的条带处理完后顺次处理下一个chunk,直至所有chunk处理完。在所有chunk处理完后,再查询不满足整条带回写的脏页进行回写。由于优先选择了回写整条带的脏页,使得cache的回写性能有了显著提高。
根据本发明的实施例,为了提高系统整体性能,cache在中高端磁盘阵列中的运用已经越来越广泛,甚至在低端磁盘阵列中也已经开始使用。cache主要是用来缓存用户数据,延迟处理,以此来提高系统的读写带宽和响应速度。在cache设计和性能优化时,最重要的一个问题就是脏页的回写策略和算法。也就是在cache中空闲缓存页不足的情况下,cache采用何种技术将脏页回写到底层磁盘上,从而腾出空闲缓存页供更多的读写请求使用。通过本发明的上述方案,能够先处理符合预定条件的条带可以有效的提升系统的回写性能,并且大大减少资源的开销。
如图4示出了cache存储系统的业务流程图。本发明就是在采用基数树而设计的cache基础之上,结合了RAID条带写的特点,对cache回写进行优化的一种技术。cache层之上LVM层,其下面是RAID模块,RAID模块下面是SCSI驱动,LVM层的上面依次是target和initiator。其中cache层用于缓存对RAID的读写请求。cache模块中缓存页通过基数树进行管理,并设计有回写线程用于回写脏页。在cache回写脏页时,本发明首先会从基数树上优先选择整条带的脏页进行回写,然后再去回写不是整条带的脏页,从而可以充分发挥RAID条带内并发写优势,提高cache回写的带宽。
如图5示出了cache回写流程图。本发明是基于RAID条带特点而设计和实现的一种cache回写优化技术,cache中脏页采用基数树来管理,可以通过基数树标签快速查询脏页,缓存页的大小为4k,通过页号索引值映射到底层RAID上。cache回写就是把cache中由基数树来管理的脏页回刷到底层RAID上,从而可以腾出更多空间来供新的读写请求使用。具体而言,cache回写开始之后,以chunk为单位查询基数树上脏页,查询结果按条带用链表组织,接下来分析chunk内第一个/下一个条带,并判读条带上页是否是整条带,如果判读结果为是(Y),则继续判读条带上页是否满足回刷条件,如果判读结果为是(Y),则将条带内所有页构造bio下发给RAID,然后判读是否处理完chunk内所有条带,当上述所有判读为否(N)时,分别返回至“分析chunk内第一个/下一个条带”进行重新判读。如果是否处理完chunk内所有条带的判读结果为是(Y),则继续判读是否处理完所有chunk,如果该判读结果为是(Y),则cache回写流程结束,如果该判读结果为否(N),则修正chunk偏移量,查询下一个chunk内的缓存页,并返回至开始进行下一轮cache回写流程。
根据本发明的实施例,还提供了一种数据处理装置,可以有效的提升系统的回写性能,并且大大减少资源的开销。
如图6所示,根据本发明实施例的数据处理装置包括:
检测模块61和发送模块62,其中检测模块61用于检测当前chunk范围内的第i条条带是否符合预定条件;其中,预定条件是指第i条条带为整条带且第i条条带符合回刷条件,整条带是指携带的所有页均需要回写的条带,i为正整数;其中发送模块62用于当第i条条带符合预定条件时,将第i条条带所携带的所有页构造成bio下发给磁盘阵列RAID。
其中,发送模块62进一步用于,当第i条条带不符合预定条件时,则在所有chunk范围内符合预定条件的条带所携带的所有页均已下发给RAID之后,将第i条条带所携带的需要回写的页构造成bio下发给RAID。
其中,回刷条件为当前条带达到回刷周期和/或cache空闲空间达到预定阈值。
其中,cache采用基数树进行管理。
其中,发送模块62采用并行的方式对条带所携带的需要回写的页构造成bio下发给RAID。
综上所述,借助于本发明的上述技术方案,本发明能够充分发挥RAID条带内并发写优势,有效的提升系统的回写性能,并且大大减少资源的开销。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
检测当前chunk范围内的第i条条带是否符合预定条件;其中,所述预定条件是指所述第i条条带为整条带且所述第i条条带符合回刷条件,所述整条带是指携带的所有页均需要回写的条带,i为正整数;
当所述第i条条带符合所述预定条件时,将所述第i条条带所携带的所有页构造成bio下发给磁盘阵列RAID。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当所述第i条条带不符合所述预定条件时,则在所有chunk范围内符合所述预定条件的条带所携带的所有页均已下发给所述RAID之后,将所述第i条条带所携带的需要回写的页构造成bio下发给所述RAID。
3.根据权利要求1所述的方法,其特征在于,所述回刷条件为当前条带达到回刷周期和/或cache空闲空间达到预定阈值。
4.根据权利要求1所述的方法,其特征在于,cache采用基数树进行管理。
5.根据权利要求1或2所述的方法,其特征在于,采用并行的方式对条带所携带的需要回写的页构造成bio下发给所述RAID。
6.一种数据处理装置,其特征在于,包括:
检测模块,用于检测当前chunk范围内的第i条条带是否符合预定条件;其中,所述预定条件是指所述第i条条带为整条带且所述第i条条带符合回刷条件,所述整条带是指携带的所有页均需要回写的条带,i为正整数;
发送模块,用于当所述第i条条带符合所述预定条件时,将所述第i条条带所携带的所有页构造成bio下发给磁盘阵列RAID。
7.根据权利要求6所述的装置,其特征在于,所述发送模块进一步用于,当所述第i条条带不符合所述预定条件时,则在所有chunk范围内符合所述预定条件的条带所携带的所有页均已下发给所述RAID之后,将所述第i条条带所携带的需要回写的页构造成bio下发给所述RAID。
8.根据权利要求6所述的装置,其特征在于,所述回刷条件为当前条带达到回刷周期和/或cache空闲空间达到预定阈值。
9.根据权利要求6所述的装置,其特征在于,cache采用基数树进行管理。
10.根据权利要求6或7所述的装置,其特征在于,所述发送模块采用并行的方式对条带所携带的需要回写的页构造成bio下发给所述RAID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410847842.0A CN104571959A (zh) | 2014-12-31 | 2014-12-31 | 数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410847842.0A CN104571959A (zh) | 2014-12-31 | 2014-12-31 | 数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104571959A true CN104571959A (zh) | 2015-04-29 |
Family
ID=53088144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410847842.0A Pending CN104571959A (zh) | 2014-12-31 | 2014-12-31 | 数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104571959A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814807A (zh) * | 2018-12-28 | 2019-05-28 | 曙光信息产业(北京)有限公司 | 一种数据存储方法及装置 |
CN110348245A (zh) * | 2018-04-02 | 2019-10-18 | 深信服科技股份有限公司 | 基于nvm的数据完整性保护方法、系统、装置及存储介质 |
CN116719621A (zh) * | 2023-06-01 | 2023-09-08 | 上海聚水潭网络科技有限公司 | 一种针对海量任务的数据回写方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067667A1 (en) * | 2005-09-22 | 2007-03-22 | Fujitsu Limited | Write back method for RAID apparatus |
CN101620517B (zh) * | 2009-08-04 | 2012-05-30 | 成都市华为赛门铁克科技有限公司 | 数据写入方法和装置 |
-
2014
- 2014-12-31 CN CN201410847842.0A patent/CN104571959A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067667A1 (en) * | 2005-09-22 | 2007-03-22 | Fujitsu Limited | Write back method for RAID apparatus |
CN101620517B (zh) * | 2009-08-04 | 2012-05-30 | 成都市华为赛门铁克科技有限公司 | 数据写入方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110348245A (zh) * | 2018-04-02 | 2019-10-18 | 深信服科技股份有限公司 | 基于nvm的数据完整性保护方法、系统、装置及存储介质 |
CN109814807A (zh) * | 2018-12-28 | 2019-05-28 | 曙光信息产业(北京)有限公司 | 一种数据存储方法及装置 |
CN109814807B (zh) * | 2018-12-28 | 2022-05-06 | 曙光信息产业(北京)有限公司 | 一种数据存储方法及装置 |
CN116719621A (zh) * | 2023-06-01 | 2023-09-08 | 上海聚水潭网络科技有限公司 | 一种针对海量任务的数据回写方法、装置、设备及介质 |
CN116719621B (zh) * | 2023-06-01 | 2024-05-03 | 上海聚水潭网络科技有限公司 | 一种针对海量任务的数据回写方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10108545B2 (en) | Operating shingled magnetic recording device | |
US9785575B2 (en) | Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes | |
CN104246764B (zh) | 利用非均匀散列函数在非均匀访问存储器中放置记录的方法和装置 | |
CN102349055B (zh) | 对存储在存储器上的文件的访问时间最优化 | |
Zhang et al. | FlashKV: Accelerating KV performance with open-channel SSDs | |
US9959054B1 (en) | Log cleaning and tiering in a log-based data storage system | |
US9612758B1 (en) | Performing a pre-warm-up procedure via intelligently forecasting as to when a host computer will access certain host data | |
CN111026329B (zh) | 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法 | |
Jin et al. | Optimizing B+-tree for hybrid storage systems | |
US20140215127A1 (en) | Apparatus, system, and method for adaptive intent logging | |
CN103631536A (zh) | 一种利用ssd的无效数据优化raid5/6写性能的方法 | |
CN103916459A (zh) | 一种大数据归档存储系统 | |
US20240143219A1 (en) | Software-hardware combination method for internal mapping address query of zoned namespace | |
CN104050057B (zh) | 一种历史感知的数据去重碎片消除方法与系统 | |
CN103076993A (zh) | 一种密集型系统中的存储系统及方法 | |
CN103268292B (zh) | 一种延长非易失外存寿命的方法及高速长寿外存系统 | |
CN104571959A (zh) | 数据处理方法和装置 | |
Chiueh et al. | Software orchestrated flash array | |
Liu et al. | Synergistic coupling of SSD and hard disk for QoS-aware virtual memory | |
Cao et al. | Smrts: A performance and cost-effectiveness optimized ssd-smr tiered file system with data deduplication | |
Salkhordeh et al. | Constant time garbage collection in ssds | |
Long et al. | WA-Zone: Wear-Aware Zone Management Optimization for LSM-Tree on ZNS SSDs | |
Do et al. | Improving CPU I/O performance via SSD controller FTL support for batched writes | |
Wu et al. | A data management method for databases using hybrid storage systems | |
Wu et al. | CAGC: A content-aware garbage collection scheme for ultra-low latency flash-based SSDs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |
|
RJ01 | Rejection of invention patent application after publication |