CN109558084B - 一种数据处理方法以及相关设备 - Google Patents
一种数据处理方法以及相关设备 Download PDFInfo
- Publication number
- CN109558084B CN109558084B CN201811444981.3A CN201811444981A CN109558084B CN 109558084 B CN109558084 B CN 109558084B CN 201811444981 A CN201811444981 A CN 201811444981A CN 109558084 B CN109558084 B CN 109558084B
- Authority
- CN
- China
- Prior art keywords
- key value
- value pair
- pair table
- ordered key
- ordered
- 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.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 28
- 230000008859 change Effects 0.000 claims description 6
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 238000003491 array Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 26
- 238000004590 computer program Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 239000007787 solid Substances 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000011084 recovery Methods 0.000 description 5
- 238000004064 recycling Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
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
本申请实施例提供了一种数据处理方法及相关设备,可以综合利用固态设备、瓦记录磁盘以及日志结构合并树的优点,对存储的数据进行优化处理。该方法包括:获取目标数据;确定所述目标数据对应的目标有序键值对表;根据所述目标有序键值对表确定第二有序键值对表;根据所述目标有序键值对表确定第一有序键值对表;将所述第二有序键值对表合并至所述第一有序键值对表中;当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区。
Description
技术领域
本申请涉及存储领域,尤其涉及一种数据处理方法以及相关设备。
背景技术
随着信息时代的高速发展,各个领域的数据都呈现爆发式的增长。根据IDC的研究报告指出,从2010年到2020年,全球的数据量将增加50倍,而未来全球数据总量年增长率将维持50%左右。其中,我国数据量将达到8.6ZB,占21%左右。除此,时延敏感的交互型互联网应用(如微博、推特、脸书)逐步增多,这类应用在要求高响应速度的同时,还鼓励用户发布和共享文件及图片。因此存储***在容量和性能上都受到了前所未有的挑战。
硬件方面,目前积极探索的多种提升容量技术中,瓦记录磁盘(SMR)通过部分磁道重叠的方式提升磁盘面密度,是成本最低、对现有磁盘工艺改变最小的磁记录技术,因而瓦记录磁盘最先得到量产与应用;目前积极探索的各种提升性能技术中,基于闪存的固态硬盘(SSD)是最成熟、应用最广泛的高性能新型存储器件,固态盘有先擦后写和擦写次数有限等读写特征,但却在并行性、可靠性、能耗、性能、尺寸方面有明显优势。软件方面,大数据背景下,传统的文件***或块存储已无法满足大多数应用对存储性能的需求,而基于日志结构合并树的键值存储因其优良的服务质量而成为当前数据中心大规模应用的主要存储方式。
虽然固态硬盘、瓦记录磁盘和日志结构合并树结构都有着如此明显地优点,但同时它们也都有自己地缺陷,例如:固态盘地擦写次数有限,先擦后写;瓦记录磁盘地写放大问题;以及日志结构合并树极大的合并开销。
发明内容
本申请实施例提供了一种数据处理方法以及相关设备,可以综合利用固态硬盘、瓦记录磁盘和日志结构合并树的优点,优化磁盘数据的存储。
本申请实施例的第一方面提供了一种数据处理方法,应用至混合式键值存储***,所述混合式键值存储***包括固态设备、瓦记录磁盘以及日志结构合并树,包括:
获取目标数据,所述目标数据为待存储至所述混合式键值存储***的数据;
确定所述目标数据对应的目标有序键值对表,所述目标有序键值对表为所述日志结构合并树的1层至n层中的有序键值对表,所述日志结构合并树的1至n层部署在所述固态设备,n为大于1的正整数;
根据所述目标有序键值对表确定第二有序键值对表,所述第二有序键值对表为所述日志结构合并树的1层至n层中与所述第一有序键值对表合并的键值对表;
根据所述目标有序键值对表确定第一有序键值对表,所述第一有序键值对表的键值范围与所述目标键值对表中的键值范围至少重叠一个;
将所述第二有序键值对表合并至所述第一有序键值对表中,其中合并后的所述第一有序键值对表的元数据在所述第二有序键值对表内;
当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区,所述第三有序键值对表为所述日志结构合并树的n+1层至m层中与所述第二有序键值对表对应的键值对表,所述目标动态区与所述数组集合相对应,所述目标动态区为所述瓦记录磁盘中两个空白磁道段中间的区域,所述日志结构合并树的n+1层至m层部署在所述瓦记录磁盘,m为大于n的正整数。
可选地,所述根据所述目标有序键值对表确定第二有序键值对表包括:
计算所述日志结构合并树的1层至n层的每个层中所述目标有序键值对表的均衡度,所述每个层中至少包括一个有序键值对表;
将所述日志结构合并树的1层至n层中均衡度最低的层确定为合并层;
将所述合并层中的所述目标有序键值对表确定为所述第二有序键值对表。
可选地,将所述第二有序键值对表合并至所述第一有序键值对表包括:
将所述第二有序键值对表读入内存;
将所述第二有序键值对表的元数据合并至所述第一有序键值对表的元数据中;
根据合并后的所述第一有序键值对表的元数据的键值范围将所述第二有序键值对表中的键值对数据划分为目标数据块;
将合并后的所述第一有序键值对表的元数据和所述目标数据块以追加的方式写入所述第一有序键值对表。
可选地,所述将所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区包括:
判断所述目标动态区中是否存在与所述数组集合的数据量相匹配的第一动态区;
若是,则将所述数组集合以***写的方式写入所述第一动态区;
若否,则将所述数组集合以追加写的方式写入所述瓦记录磁盘中。
可选地,所述方法还包括:
回收所述瓦记录磁盘中的磁盘碎片;
本发明实施例第二方面提供了一种数据处理装置,应用至混合式键值存储***,所述混合式键值存储***包括固态设备、瓦记录磁盘以及日志结构合并树,包括:
获取单元,用于获取目标数据,所述目标数据为待存储至所述混合式键值存储***的数据;
第一确定单元,用于确定所述目标数据对应的目标有序键值对表,所述目标有序键值对表为所述日志结构合并树的1层至n层中的有序键值对表,所述日志结构合并树的1至n层部署在所述固态设备,n为大于1的正整数;
第二确定单元,用于根据所述目标有序键值对表确定第二有序键值对表,所述第二有序键值对表为所述日志结构合并树的1层至n层中与所述第一有序键值对表合并的键值对表;
第三确定单元,用于根据所述目标有序键值对表确定第一有序键值对表,所述第一有序键值对表的键值范围与所述目标键值对表中的键值范围至少重叠一个;
合并单元,用于将所述第二有序键值对表合并至所述第一有序键值对表中,其中合并后的所述第一有序键值对表的元数据在所述第二有序键值对表内;
写入单元,用于当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区,所述第三有序键值对表为所述日志结构合并树的n+1层至m层中与所述第二有序键值对表对应的键值对表,所述目标动态区与所述数组集合相对应,所述目标动态区为所述瓦记录磁盘中两个空白磁道段中间的区域,所述日志结构合并树的n+1层至m层部署在所述瓦记录磁盘,m为大于n的正整数。
可选地,所述第三确定单元具体用于:
计算所述日志结构合并树的1层至n层的每个层中所述目标有序键值对表的均衡度,所述每个层中至少包括一个有序键值对表;
将所述日志结构合并树的1层至n层中均衡度最低的层确定为合并层;
将所述合并层中的所述目标有序键值对表确定为所述第二有序键值对表。
可选地,所述合并单元具体用于:
将所述第二有序键值对表读入内存;
将所述第二有序键值对表的元数据合并至所述第一有序键值对表的元数据中;
根据合并后的所述第一有序键值对表的元数据的键值范围将所述第二有序键值对表中的键值对数据划分为目标数据块;
将合并后的所述第一有序键值对表的元数据和所述目标数据块以追加的方式写入所述第一有序键值对表。
可选地,所述写入单元具体用于:
判断所述目标动态区中是否存在与所述数组集合的数据量相匹配的第一动态区;
若是,则将所述数组集合以***写的方式写入所述第一动态区;
若否,则将所述数组集合以追加写的方式写入所述瓦记录磁盘中。
可选地,所述装置还包括碎片整理单元,所述碎片整理单元,用于回收所述瓦记录磁盘中的磁盘碎片;
本申请第三方面提供了一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如上述任意一项所述的数据处理方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如上述任意一项所述的数据处理方法的步骤。
综上所述,本发明提供的实施例中,通过将基于日志结构合并树的键值存储***的上层部署在固态硬盘上,而将日志结构合并树的下层部署在瓦记录磁盘上,对上层基于固态设备的日志结构合并树采用轻量级合并策略,来减少日志合并树进行合并操作时的硬盘I/O,以此来延长硬盘的使用寿命,并提高性能,对部署在瓦记录磁盘上的下层日志结构合并树使用了基于动态磁盘分区的键值集合数据组织策略,大大减少了瓦记录磁盘的IO开销,增加了顺序读写操作,提升了设备感知的混合式键值存储***的下层容量及瓦记录存储能力。
附图说明
图1为本申请实施例提供的一种数据处理方法的实施例示意图;
图2为发明实施例提供的日志结构合并树中的DSSTable数据逻辑布局示意图;
图3为本发明实施例提供的日志结构合并树的1层至n层中的有序键值对表合并示意图;
图4为本发明实施例提供的固态设备的稀疏地址空间映射示意图;
图5为本发明实施例提供的数据集合与动态区合并的示意图;
图6为本发明实施例提供中的瓦记录磁盘中空闲动态区链的示意图;
图7为本发明实施例提供的瓦记录磁盘的磁盘碎片回收示意图;
图8为本申请实施例提供的一种数据处理装置的实施例示意图;
图9为本申请实施例提供的一种数据处理装置的硬件结构示意图;
图10为本申请实施例提供的一种电子设备的实施例示意图;
图11为本申请实施例提供的一种计算机可读存储介质的实施例示意图。
具体实施方式
本申请实施例提供了一种数据处理方法以及相关设备,可以综合利用固态硬盘、瓦记录磁盘和日志结构合并树的优点,优化磁盘数据的存储。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
下面从数据处理装置的角度对本发明实施例提供的数据处理方法进行说明,该数据处理装置可以为服务器,也可以为服务器中的服务器单元,具体不限定。
请参阅图1,图1为本申请实施例提供的数据处理方法的一个实施例示意图,该方法应用至混合式键值存储***,该混合式键值存储***包括固态设备、瓦记录磁盘以及日志结构合并树,该方法包括:
101、获取目标数据。
本实施例中,数据处理装置可以获取目标数据,该目标数据为待存储指混合式键值存储***的数据,此处具体不限定如何获取目标数据。
102、确定目标数据对应的目标有序键值对表。
本实施例中,数据处理装置在获取目标数据之后,可以确定目标数据对应的目标有序键值对表DSStable,也即将目标数据与日志结构合并树中的有序键值对表相对应,该目标有序键值对表为日志结构合并树的1层至n层中的有序键值对表,该日志结构合并树的1层至n层部署在固态设备,n为大于1的正整数,此处以大小动态变化并上限阈值为4MB的有序键值对表(当然也可以是其他大小例如5MB,具体不做限定),记为目标有序键值对表DSStable,下面结合图2对日志结构合并树中的DSSTable数据逻辑布局进行说明:
请参阅图2,图2为本发明实施例提供的日志结构合并树中的DSSTable数据逻辑布局示意图,该DSStable中的数据可以划分为三类:
下一层overlap DSStables的元数据;
DSStable的键值对数据块;
DSStable的元数据。
其中,DSStable对应的overlap DSStables可能有一个或多个,所以OverlapDSStables的元数据相当于一个或多个DSStables的元数据的集合;
DSStable的键值对数据块包括初始化时的数据块以及后续合并操作中追加的数据块;
DSStable的元数据包括初始化的数据块索引以及后续合并操作中追加的数据块索引。
103、根据目标有序键值对表确定第二有序键值对表。
本实施例中,数据处理装置可以根据目标有序键值对表确定第二有序键值对表victim DSStable,该第二有序键值对表victim DSStable为日志结构合并树的1层至n层中与第一有序键值对表合并的键值对表,具体的:数据处理装置可以首先计算日志结构合并树的1层至n层中每个层的目标有序键值对表的均衡度,每个层中至少包括一个目标有序键值对表;将日志结构合并树的1层至n层中均衡度最低的层确定为合并层;将合并层中的目标有序键值对表确定为第二有序键值对表。
104、根据目标有序键值对表确定第一有序键值对表。
本实施例中,数据处理装置在确定目标有序键值对表之后,可以根据目标有序键值对表确定第一有序键值对表,该第一有序键值对表的键值范围与目标有序键值对表的键值范围至少重叠一个。具体的:该DSStable包含两种数据:元数据和键值对数据,其中元数据又可以划分为两部分,假设该DSStable处于日志合并树的第Li层,同时将日志结构合并树的第Li+1层中键值范围与该DSStable的键值范围重叠的一个或多个DSStable记为第一有序键值对表overlap DSStables,则该DSStable的元数据将包含DSStable本身的元数据以及第一有序键值对表overlap DSStables的元数据;第Li层的DSStable的键值范围会和第Li+1层的一个或多个DSStable的键值范围发生重叠,第Li+1层的DSStable的键值范围只会和第Li层的一个DSStable的键值范围发生重叠;DSStable中的元数据和键值对数据在表中的存储顺序依次为:第一有序键值对表overlap DSStables的元数据、键值对数据、DSStable的元数据。
需要说明的是,该第二有序键值对表所处的层为该第一有序键值对表所处的层的上一层,例如第二有序键值对表处于日志结构合并树的第n-1层,则第一有序键值对表则处于日志结构合并树的第n层。
105、将第二有序键值对表合并至第一有序键值对表。
本实施例中,数据处理装置可以将第二有序键值对表合并至第一有序键值对表。
需要说明的是,在第二有序键值对表victim DSStable和对应的第一有序键值对表overlap DSStables的合并过程中,首先合并存储在第二有序键值对表victim DSStable中第二有序键值对表victim DSStable的元数据和对应的第一有序键值对表overlapDSStables的元数据,然后将合并后的元数据以及相应的键值对数据以追加的方式写入相应的第一有序键值对表overlap DSStables,下面结合图3进行说明,请参阅图3,图3为本发明实施例提供的日志结构合并树的1层至n层中的有序键值对表合并示意图:
图3中,L1层中键值范围为a-c的DSStable(即目标有序键值对表中的某一个有序键值对表)被选择作为第二有序键值对表victim DSStable进行合并操作;L2层中键值范围和victim DSSStable相互重叠DSStable的有三个,键值范围分别为a、b和c,组成第二有序键值对表victim DSStable对应的第一有序键值对表overlap DSStables集合。具体的:数据处理装置可以首先将第二有序键值对表读入内存;
将第二有序键值对表的元数据合并至第一有序键值对表的元数据中;
根据合并后的所述第一有序键值对表的元数据的键值范围将第二有序键值对表中的键值对数据划分为目标数据块;
将合并后的第一有序键值对表的元数据和目标数据块以追加的方式写入第一有序键值对表。参阅图3,首先将L1层中的键值范围为a-c的有序键值对表(第二有序键值对表)读入内容(图3中的步骤1),之后将键值范围为a-c的有序键值对表的元数据合并至L2层中的键值范围为a、b、c的有序键值对表(也即第一有序键值对表)的元数据,根据合并后的各个第一有序键值对表overlap Dtables的元数据的键值范围,把第二有序键值对表victimDtable中的键值对数据划分为相应的数据块(图3中的步骤2,划分为a’、b’、c’),之后将并后的各个第一有序键值对表overlap Dtables的元数据划分的数据块(图3中的步骤3将a’、b’、c’以追加写的形式合并)以追加写的形式分别写入各个第一有序键值对表overlap DSStables中(图3中的a、b、c),最后将合并后的各个第一有序键值对表overlapDSStables的元数据重新写回第二有序键值对表victim DSStable,至此就完成合并操作。
需要说明的时,在将合并后的各个第一有序键值对表overlap DSStables的元数据重新写回第二有序键值对表victim DSStable之后,可以将各个第一有序键值对表overlap DSStables的元数据与第二有序键值对表victimDSStable的元数据进行合并,同时删除合并后的元数据中键值范围重叠部分的数据索引,合并后的第二有序键值对表victim DSStable的元数据根据各个第一有序键值对表overlapDSStables键值范围划分成相应的元数据段(如图3中a对应的元数据段、b对应的元数据段、c对应的元数据段),然后分别追加到相应的第一有序键值对表overlap DSStables的元数据的末尾,结束元数据合并操作。
还需要说明的时,在各个第一有序键值对表overlapDSStables的键值对数据与第二有序键值对表victim DSStable的键值对数据合并时,可以删除第二有序键值对表victim DSStable中无效的键值对数据(即之前的键值范围a-c对应的键值对数据),合并后的第二有序键值对表victim DSStable的键值对数据根据各个第一有序键值对表overlapDSStables的元数据的键值范围,划分成相应的数据块。
需要说明的是,在合并过程中,由于采用的是追加写的合并方式,追加数据而不修改旧数据,因此Dtable中几次追加的数据之间有key range覆盖,Dtables内部的键值对数据不再有序,为提高Dtable中数据查找的速度,利用单次追加数据的有序性,提出分段二分查找方法:按照元数据段的追加顺序,由后往前使用二分查找法对各个元数据段进行查找,直到获得最终结果。同时为了进一步提升查找速度,下面结合图4进行说明,图4为本发明实施例提供的固态设备的稀疏地址空间映射示意图:
图4中,***为每个DSSTable分配一个数倍(例如3倍或4倍,具体不做限定)于其实际大小的稀疏地址空间,将这块虚拟地址空间命名为虚拟槽。其中虚拟槽远大于SSTable实际大小。每个虚拟槽地址范围只包含一个SSTable;没有SSTable在稀疏地址中彼此相邻;故意浪费的虚拟空间不会转化为物理空间的浪费。固态设备的物理空间远小于稀疏地址空间,并划分为数据区和元数据区。具体查找过程如下:待合并的数据块提供victimDSSTable的key值标识,哈希函数将key值映射到虚拟地址空间,合并DSSTable后,将新产生的元数据写回元数据区,虚拟空间的元数据修改软件层(FlashTranslation Layer,FTL)映射;新产生的数据块本身在逻辑地址空间对应的虚拟槽内追加,在固态设备的数据区内追加,并将逻辑地址与与虚拟地址的映射添加在FTL映射中。
可以理解的是,上述仅以一个第二有序键值对表为例进行说明,在实际执行过程中,可以遍历日志结构合并树中与目标有序键值对表相关联的所有第二有序键值对表以上述的方式进行合并。
106、当合并后的第一有序键值对表满足预设条件时,将合并后的第一有序键值对表与第三有序键值对表作为数组集合写入瓦记录磁盘中的大小动态变化的目标动态区。
本实施例中,当合并后的第一有序键值对表满足预设条件时(可以理解的是,该预设条件例如可以使第一有序键值对表存在的时长大于第一预设阈值如3天,或者当前存储的数据量达到第二预设阈值,例如1024MB,当然也可以根据实际情况进行设置,具体不限定),将合并后的第一有序键值对表与第三有序键值对表作为数组集合写入瓦记录磁盘中的大小动态变化的目标动态区,其中,第三有序键值对表为日志结构合并树的n+1层至m层中与第二有序键值对表对应的键值对表(由于各个第一有序键值对表的元数据存储在第二有序键值对表内,因此只需要在瓦记录磁盘中确定出与第二有序键值对表对应的第三有序键值对表即可),目标动态区与数组集合相对应,目标动态区为瓦记录磁盘中两个空白磁道段中间的区域,日志结构合并树的n+1层至m层部署在瓦记录磁盘,m为大于n的正整数。具体的,数据处理装置判断目标动态区中是否存在与数组集合的数据量相匹配的第一动态区;若是,则将数组集合以***写的方式写入第一动态区;若否,则将数组集合以追加写的方式写入瓦记录磁盘中。
可以理解的是,为了描述简便,下面将日志结构合并树中的1层至n层作为日志结构合并树的上层,n+1层至m层作为日志结构合并树的下层,也日志结构合并树的上层部署在固态设备中,日志结构合并树的下层部署在瓦记录磁盘中。
下面结合图5对合并后的第一有序键值对表与第三有序键值对表作为数组集合写入瓦记录磁盘中的大小动态变化的目标动态区进行详细说明:
请参阅图5,图5为本发明实施例提供的数据集合与动态区合并的示意图,混合式键值存储***将瓦记录磁盘中多个合并时相关的SSTable定义为一个数据集合,简称为集合,如图5中,i-2层的第一个SSTable的键值范围是a-d,i-1层的前四个SSTable的键值范围也属于a-d之间,所以可以将i-1层的前四个SSTable看作一个集合,当选中i-2层第一个SSTable作为victimSSTable时,i-1层的这个集合会一起被读入内存。对瓦记录磁盘而言,分区操作可以避免随机写放大问题,混合式键值存储***将每个磁盘进行动态分区来与前面的集合相结合,不仅避免随机写放大问题,还最大化了空间利用率。将集合写入瓦记录磁盘时,首先在内存空间(即目标动态区)中找寻合适大小的空闲空间(即第一动态区),若是找不到合适的空闲空间则使用追加方式写入到瓦记录磁盘中,若找到合适的空闲空间,则使用***写的方式写入第一动态区,
需要说明的时,混合式键值存储***中进行合并操作时,原有存有数据的集合被删除(合并至下层空间中)时,就会出现零散的存储空间,这些零散的存储空间会被管理在空闲动态链表中。下面结合图6进行说明:
请参阅图6,图6为本发明实施例提供中的瓦记录磁盘中空闲动态区链的示意图,图6中,首先建立一个链表,该链表中每个节点都有一个大小属性,即4M、8M等(可以根据实际情况进行设定,具体不限定)。同时每个节点拥有一个块大小大于节点内属性大小的空闲块集合,即该节点下的空闲块大小都大于节点中标示的大小,每个节点下的空闲块按照块大小升序组织为单链表。在合并后的第一有序键值对表与第三有序键值对表作为数组集合写入瓦记录磁盘中大小动态变化的目标动态区时,首先需要确定第三有序键值对表VictimSSTable后,与第三有序键值对表VictimSSTable相关的下层集合被读入内存,被读入内存的集合原本的磁盘空间被标记为无效空间,查询该无效空间的前后是否是无效空间,如果有,将连续的无效空间合并为新的无效空间,并将新的无效空间按序加入空闲空间链表;当新的数据集写入时,从空闲空间链表中查找合适的空闲空间。
可以理解的是,在实际使用空闲控件链表时,首先在顺序表中找到大于或等于请求块大小的最小大小的节点,之后,找上述节点下的链表中的第一个空闲块,返回该空闲块地址,若没有空闲块,在顺序表中顺序往下找,找更大的空闲块,并其返回地址。
需要说明的是,为了使得瓦记录磁盘中的空间得到最大现有的有效利用,还可以对瓦记录磁盘中的磁盘碎片进行整理,下面结合图7进行说明:
请参阅图7,图7为本发明实施例提供的瓦记录磁盘的磁盘碎片回收示意图,具体包括三种情况:
1、合并时回收。
合并时回收,是指在日志合并树结构中每次选择对应下层集合中第三有序键值对表时,选择无效次数最多的SSTable作为第三有序键值对表,相应的,该无效次数最多的SSTable的元数据存储在上一层中的SSTable即确定为victimSSTable,也就是说,在n-1层选择victimSSTable时,因为键值范围为a-b的SSTable对应的下一层集合中包含一个键值范围为a的无效SSTable,而键值范围为c-d的SSTable对应的下一层集合中不包含无效SSTable,所以优先选择键值范围为a-b的SSTable作为victimSSTable。
2、被动回收。
被动回收是指空闲空间链表中没有满足请求的空闲空间时开始使用滑动窗口来进行空间回收,也就是说,寻找无效数据最多的磁盘区域(一个主动回收区),在已找到的磁盘区域内,从第一个无效数据开始,往后找两个无效数据作为第一个窗口,即图7中窗口1;接着从第二个无效数据开始依然往后找两个无效数据作为窗口2;以此类推,得到整个区域内的所有窗口。最后计算每个窗口中有效数据的数量,最终选择有效数据最少的窗口进行回收,如图7中回收窗口4;
3、主动回收。
主动回收是在CPU空闲或磁盘剩余空间小于阈值时触发的。具体的当CPU负载低或者磁盘剩余剩余空间少时,进行主动回收,将磁盘上一块固定大小(例如固定大小为512MB的区域,当然也可以根据实际情况进行调整,具体不限定)的区域作为一个主动回收区(如图7中的Zone1、Zone2或Zone3),瓦记录磁盘维护有多个主动回收区,在进行主动回收时,每个主动回收区维持一个标记数组来记录其中包含有效(图7中的Valid SSTable标记)和无效(图7中的Invalid/Free SSTable标记)的情况,有效标记为1,无效或空闲空间标记为0,有效与无效数据值键的跳变标记为-1,每次计算出空闲最多或数据最不整齐的区域进行主动回收,如图7中会优先Zone1中选择区域2进行回收,接着是区域1,最后是区域3,回收完成后得到Zone3。
综上所述,本发明提供的实施例中,通过将基于日志结构合并树的键值存储***的上层部署在固态硬盘上,而将日志结构合并树的下层部署在瓦记录磁盘上,对上层基于固态设备的日志结构合并树采用轻量级合并策略,来减少日志合并树进行合并操作时的硬盘I/O,以此来延长硬盘的使用寿命,并提高性能,对部署在瓦记录磁盘上的下层日志结构合并树使用了基于动态磁盘分区的键值集合数据组织策略,大大减少了瓦记录磁盘的I/O开销,增加了顺序读写操作,提升了设备感知的混合式键值存储***的下层容量及瓦记录存储能力。
上面对本申请实施例中数据处理方法进行了描述,下面对本申请实施例中的数据处理装置进行描述。
请参阅图8,本申请实施例中数据处理装置的一个实施例,该数据处理装置应用至混合式键值存储***,所述混合式键值存储***包括固态设备、瓦记录磁盘以及日志结构合并树,包括:
获取单元801,用于获取目标数据,所述目标数据为待存储至所述混合式键值存储***的数据;
第一确定单元802,用于确定所述目标数据对应的目标有序键值对表,所述目标有序键值对表为所述日志结构合并树的1层至n层中的有序键值对表,所述日志结构合并树的1至n层部署在所述固态设备,n为大于1的正整数;
第二确定单元803,用于根据所述目标有序键值对表确定第二有序键值对表,所述第二有序键值对表为所述日志结构合并树的1层至n层中与所述第一有序键值对表合并的键值对表;
第三确定单元804,用于根据所述目标有序键值对表确定第一有序键值对表,所述第一有序键值对表的键值范围与所述目标键值对表中的键值范围至少重叠一个;
合并单元805,用于将所述第二有序键值对表合并至所述第一有序键值对表中,其中合并后的所述第一有序键值对表的元数据在所述第二有序键值对表内;
写入单元806,用于当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区,所述第三有序键值对表为所述日志结构合并树的n+1层至m层中与所述第二有序键值对表对应的键值对表,所述目标动态区与所述数组集合相对应,所述目标动态区为所述瓦记录磁盘中两个空白磁道段中间的区域,所述日志结构合并树的n+1层至m层部署在所述瓦记录磁盘,m为大于n的正整数。
可选地,所述第三确定单元804具体用于:
计算所述日志结构合并树的1层至n层的每个层中所述目标有序键值对表的均衡度,所述每个层中至少包括一个有序键值对表;
将所述日志结构合并树的1层至n层中均衡度最低的层确定为合并层;
将所述合并层中的所述目标有序键值对表确定为所述第二有序键值对表。
可选地,所述合并单元805具体用于:
将所述第二有序键值对表读入内存;
将所述第二有序键值对表的元数据合并至所述第一有序键值对表的元数据中;
根据合并后的所述第一有序键值对表的元数据的键值范围将所述第二有序键值对表中的键值对数据划分为目标数据块;
将合并后的所述第一有序键值对表的元数据和所述目标数据块以追加的方式写入所述第一有序键值对表。
可选地,所述写入单元806具体用于:
判断所述目标动态区中是否存在与所述数组集合的数据量相匹配的第一动态区;
若是,则将所述数组集合以***写的方式写入所述第一动态区;
若否,则将所述数组集合以追加写的方式写入所述瓦记录磁盘中。
可选地,所述装置还包括碎片整理单元807,所述碎片整理单元807,用于回收所述瓦记录磁盘中的磁盘碎片;
综上所述,本发明提供的实施例中,通过将日志结构合并树上层部署在固态硬盘上,而将日志结构合并树的下层部署在瓦记录磁盘上,对上层基于固态设备的日志结构合并树采用轻量级合并策略,来减少日志合并树进行合并操作时的硬盘I/O,以此来延长硬盘的使用寿命,并提高性能,对部署在瓦记录磁盘上的下层日志结构合并树使用了基于动态磁盘分区的键值集合数据组织策略,大大减少了瓦记录磁盘的I/O开销,增加了顺序读写操作,提升了设备感知的混合式键值存储***的下层容量及瓦记录存储能力。
上面图8从模块化功能实体的角度对本申请实施例中的数据处理装置进行了描述,下面从硬件处理的角度对本申请实施例中的数据处理装置进行详细描述,请参阅图9,本申请实施例中的数据处理装置900一个实施例,包括:
输入装置901、输出装置902、处理器903和存储器904(其中处理器903的数量可以一个或多个,图9中以一个处理器903为例)。在本申请的一些实施例中,输入装置901、输出装置902、处理器903和存储器904可通过总线或其它方式连接,其中,图9中以通过总线连接为例。
其中,通过调用存储器904存储的操作指令,处理器903,用于执行如下步骤:
获取目标数据,所述目标数据为待存储至所述混合式键值存储***的数据;
确定所述目标数据对应的目标有序键值对表,所述目标有序键值对表为所述日志结构合并树的1层至n层中的有序键值对表,所述日志结构合并树的1至n层部署在所述固态设备,n为大于1的正整数;
根据所述目标有序键值对表确定第二有序键值对表,所述第二有序键值对表为所述日志结构合并树的1层至n层中与所述第一有序键值对表合并的键值对表;
根据所述目标有序键值对表确定第一有序键值对表,所述第一有序键值对表的键值范围与所述目标键值对表中的键值范围至少重叠一个;
将所述第二有序键值对表合并至所述第一有序键值对表中,其中合并后的所述第一有序键值对表的元数据在所述第二有序键值对表内;
当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区,所述第三有序键值对表为所述日志结构合并树的n+1层至m层中与所述第二有序键值对表对应的键值对表,所述目标动态区与所述数组集合相对应,所述目标动态区为所述瓦记录磁盘中两个空白磁道段中间的区域,所述日志结构合并树的n+1层至m层部署在所述瓦记录磁盘,m为大于n的正整数。
在具体实施过程中,通过调用存储器904存储的操作指令,处理器903,可以实现图1对应的实施例中任一实施方式。
请参阅图10,图10为本申请实施例提供的电子设备的实施例示意图。
如图10所示,本申请实施例提供了一种电子设备,包括存储器1010、处理器1020及存储在存储器1010上并可在处理器1020上运行的计算机程序1011,处理器1020执行计算机程序1011时实现以下步骤:
获取目标数据,所述目标数据为待存储至所述混合式键值存储***的数据;
确定所述目标数据对应的目标有序键值对表,所述目标有序键值对表为所述日志结构合并树的1层至n层中的有序键值对表,所述日志结构合并树的1至n层部署在所述固态设备,n为大于1的正整数;
根据所述目标有序键值对表确定第二有序键值对表,所述第二有序键值对表为所述日志结构合并树的1层至n层中与所述第一有序键值对表合并的键值对表;
根据所述目标有序键值对表确定第一有序键值对表,所述第一有序键值对表的键值范围与所述目标键值对表中的键值范围至少重叠一个;
将所述第二有序键值对表合并至所述第一有序键值对表中,其中合并后的所述第一有序键值对表的元数据在所述第二有序键值对表内;
当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区,所述第三有序键值对表为所述日志结构合并树的n+1层至m层中与所述第二有序键值对表对应的键值对表,所述目标动态区与所述数组集合相对应,所述目标动态区为所述瓦记录磁盘中两个空白磁道段中间的区域,所述日志结构合并树的n+1层至m层部署在所述瓦记录磁盘,m为大于n的正整数。
在具体实施过程中,处理器1020执行计算机程序1011时,可以实现图1对应的实施例中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例中一种数据处理装置所采用的设备,故而基于本申请实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍,只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
请参阅图11,图11为本申请实施例提供的一种计算机可读存储介质的实施例示意图。
如图11所示,本实施例提供了一种计算机可读存储介质1100,其上存储有计算机程序1111,该计算机程序1111被处理器执行时实现如下步骤:
获取目标数据,所述目标数据为待存储至所述混合式键值存储***的数据;
确定所述目标数据对应的目标有序键值对表,所述目标有序键值对表为所述日志结构合并树的1层至n层中的有序键值对表,所述日志结构合并树的1至n层部署在所述固态设备,n为大于1的正整数;
根据所述目标有序键值对表确定第二有序键值对表,所述第二有序键值对表为所述日志结构合并树的1层至n层中与所述第一有序键值对表合并的键值对表;
根据所述目标有序键值对表确定第一有序键值对表,所述第一有序键值对表的键值范围与所述目标键值对表中的键值范围至少重叠一个;
将所述第二有序键值对表合并至所述第一有序键值对表中,其中合并后的所述第一有序键值对表的元数据在所述第二有序键值对表内;
当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区,所述第三有序键值对表为所述日志结构合并树的n+1层至m层中与所述第二有序键值对表对应的键值对表,所述目标动态区与所述数组集合相对应,所述目标动态区为所述瓦记录磁盘中两个空白磁道段中间的区域,所述日志结构合并树的n+1层至m层部署在所述瓦记录磁盘,m为大于n的正整数。
在具体实施过程中,该计算机程序1111被处理器执行时可以实现图1对应的实施例中任一实施方式。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,当计算机软件指令在处理设备上运行时,使得处理设备执行如图1对应实施例中的风电场数字化平台设计的方法中的流程。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修该,或者对其中部分技术特征进行等同替换;而这些修该或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据处理方法,应用至混合式键值存储***,所述混合式键值存储***包括固态设备、瓦记录磁盘以及日志结构合并树,其特征在于,包括:
获取目标数据,所述目标数据为待存储至所述混合式键值存储***的数据;
确定所述目标数据对应的目标有序键值对表,所述目标有序键值对表为所述日志结构合并树的1层至n层中的有序键值对表,所述日志结构合并树的1至n层部署在所述固态设备,n为大于1的正整数;
根据所述目标有序键值对表确定第二有序键值对表,所述第二有序键值对表为所述日志结构合并树的1层至n层中与第一有序键值对表合并的键值对表;
根据所述目标有序键值对表确定第一有序键值对表,所述第一有序键值对表的键值范围与所述目标键值对表中的键值范围至少重叠一个;
将所述第二有序键值对表合并至所述第一有序键值对表中,其中合并后的所述第一有序键值对表的元数据在所述第二有序键值对表内;
当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区,所述第三有序键值对表为所述日志结构合并树的n+1层至m层中与所述第二有序键值对表对应的键值对表,所述目标动态区与所述数组集合相对应,所述目标动态区为所述瓦记录磁盘中两个空白磁道段中间的区域,所述日志结构合并树的n+1层至m层部署在所述瓦记录磁盘,m为大于n的正整数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标有序键值对表确定第二有序键值对表包括:
计算所述日志结构合并树的1层至n层的每个层中所述目标有序键值对表的均衡度,所述每个层中至少包括一个有序键值对表;
将所述日志结构合并树的1层至n层中均衡度最低的层确定为合并层;
将所述合并层中的所述目标有序键值对表确定为所述第二有序键值对表。
3.根据权利要求1所述的方法,其特征在于,将所述第二有序键值对表合并至所述第一有序键值对表包括:
将所述第二有序键值对表读入内存;
将所述第二有序键值对表的元数据合并至所述第一有序键值对表的元数据中;
根据合并后的所述第一有序键值对表的元数据的键值范围将所述第二有序键值对表中的键值对数据划分为目标数据块;
将合并后的所述第一有序键值对表的元数据和所述目标数据块以追加的方式写入所述第一有序键值对表。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区包括:
判断所述目标动态区中是否存在与所述数组集合的数据量相匹配的第一动态区;
若是,则将所述数组集合以***写的方式写入所述第一动态区;
若否,则将所述数组集合以追加写的方式写入所述瓦记录磁盘中。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
回收所述瓦记录磁盘中的磁盘碎片。
6.一种数据处理装置,应用至混合式键值存储***,所述混合式键值存储***包括固态设备、瓦记录磁盘以及日志结构合并树,其特征在于,包括:
获取单元,用于获取目标数据,所述目标数据为待存储至所述混合式键值存储***的数据;
第一确定单元,用于确定所述目标数据对应的目标有序键值对表,所述目标有序键值对表为所述日志结构合并树的1层至n层中的有序键值对表,所述日志结构合并树的1至n层部署在所述固态设备,n为大于1的正整数;
第二确定单元,用于根据所述目标有序键值对表确定第二有序键值对表,所述第二有序键值对表为所述日志结构合并树的1层至n层中与第一有序键值对表合并的键值对表;
第三确定单元,用于根据所述目标有序键值对表确定第一有序键值对表,所述第一有序键值对表的键值范围与所述目标键值对表中的键值范围至少重叠一个;
合并单元,用于将所述第二有序键值对表合并至所述第一有序键值对表中,其中合并后的所述第一有序键值对表的元数据在所述第二有序键值对表内;
写入单元,用于当合并后的所述第一有序键值对表满足预设条件时,将合并后的所述第一有序键值对表与第三有序键值对表作为数组集合写入所述瓦记录磁盘中的大小动态变化的目标动态区,所述第三有序键值对表为所述日志结构合并树的n+1层至m层中与所述第二有序键值对表对应的键值对表,所述目标动态区与所述数组集合相对应,所述目标动态区为所述瓦记录磁盘中两个空白磁道段中间的区域,所述日志结构合并树的n+1层至m层部署在所述瓦记录磁盘,m为大于n的正整数。
7.根据权利要求6所述的装置,其特征在于,所述第三确定单元具体用于:
计算所述日志结构合并树的1层至n层的每个层中所述目标有序键值对表的均衡度,所述每个层中至少包括一个有序键值对表;
将所述日志结构合并树的1层至n层中均衡度最低的层确定为合并层;
将所述合并层中的所述目标有序键值对表确定为所述第二有序键值对表。
8.根据权利要求6所述的装置,其特征在于,所述合并单元具体用于:
将所述第二有序键值对表读入内存;
将所述第二有序键值对表的元数据合并至所述第一有序键值对表的元数据中;
根据合并后的所述第一有序键值对表的元数据的键值范围将所述第二有序键值对表中的键值对数据划分为目标数据块;
将合并后的所述第一有序键值对表的元数据和所述目标数据块以追加的方式写入所述第一有序键值对表。
9.一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如权利要求1至5中任意一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如权利要求1至5中任意一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811444981.3A CN109558084B (zh) | 2018-11-29 | 2018-11-29 | 一种数据处理方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811444981.3A CN109558084B (zh) | 2018-11-29 | 2018-11-29 | 一种数据处理方法以及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558084A CN109558084A (zh) | 2019-04-02 |
CN109558084B true CN109558084B (zh) | 2021-08-17 |
Family
ID=65868045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811444981.3A Expired - Fee Related CN109558084B (zh) | 2018-11-29 | 2018-11-29 | 一种数据处理方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558084B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831423A (zh) * | 2019-04-15 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种在非易失性内存上实现Redis内存数据库的方法和*** |
CN110147204B (zh) * | 2019-05-22 | 2020-03-10 | 苏州浪潮智能科技有限公司 | 一种元数据落盘方法、装置、***及计算机可读存储介质 |
CN110568994B (zh) * | 2019-08-16 | 2023-11-14 | 北京火山引擎科技有限公司 | 逻辑块设备访问方法、装置及电子设备 |
CN110764705B (zh) * | 2019-10-22 | 2023-08-04 | 北京锐安科技有限公司 | 一种数据的读写方法、装置、设备和存储介质 |
CN111026329B (zh) * | 2019-11-18 | 2021-04-20 | 华中科技大学 | 基于主机管理瓦记录磁盘的键值存储***及数据处理方法 |
US11762913B2 (en) * | 2019-12-31 | 2023-09-19 | Micron Technology, Inc. | Cursor seek operations using deleted record spans |
CN111722797B (zh) * | 2020-05-18 | 2021-06-29 | 西安交通大学 | 面向ssd与ha-smr混合存储***数据管理方法、存储介质及设备 |
CN111857582B (zh) * | 2020-07-08 | 2024-04-05 | 平凯星辰(北京)科技有限公司 | 一种键值存储*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138286A (zh) * | 2015-08-11 | 2015-12-09 | 智云创新(北京)科技有限公司 | 一种在磁盘文件***中混合利用ssd和smr硬盘的方法 |
CN106682184A (zh) * | 2016-12-29 | 2017-05-17 | 华中科技大学 | 一种基于日志合并树结构的轻量级合并方法 |
CN107526550A (zh) * | 2017-09-06 | 2017-12-29 | 中国人民大学 | 一种基于日志结构合并树的两阶段合并方法 |
CN108804019A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种数据存储方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10170151B2 (en) * | 2016-02-29 | 2019-01-01 | Microsemi Solutions (U.S.), Inc. | Method and system for handling random access write requests for a shingled magnetic recording hard disk drive |
-
2018
- 2018-11-29 CN CN201811444981.3A patent/CN109558084B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138286A (zh) * | 2015-08-11 | 2015-12-09 | 智云创新(北京)科技有限公司 | 一种在磁盘文件***中混合利用ssd和smr硬盘的方法 |
CN106682184A (zh) * | 2016-12-29 | 2017-05-17 | 华中科技大学 | 一种基于日志合并树结构的轻量级合并方法 |
CN108804019A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN107526550A (zh) * | 2017-09-06 | 2017-12-29 | 中国人民大学 | 一种基于日志结构合并树的两阶段合并方法 |
Non-Patent Citations (1)
Title |
---|
基于SSD-SMR混合存储的LSM树键值存储***的性能优化;王洋洋等;《计算机科学》;20180715(第07期);第61至65页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109558084A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558084B (zh) | 一种数据处理方法以及相关设备 | |
US10761758B2 (en) | Data aware deduplication object storage (DADOS) | |
US9311252B2 (en) | Hierarchical storage for LSM-based NoSQL stores | |
JP6362316B2 (ja) | バッファ・プールをメモリ常駐型データのための常在インメモリ・ストレージとして用いた、ハイブリッド・テーブル実装のための方法、システム、およびコンピュータ・プログラム製品 | |
CN103064639B (zh) | 数据存储方法及装置 | |
US10795871B2 (en) | Key-value stores implemented using fragmented log-structured merge trees | |
CN103186350B (zh) | 混合存储***及热点数据块的迁移方法 | |
CN104246764B (zh) | 利用非均匀散列函数在非均匀访问存储器中放置记录的方法和装置 | |
Zhang et al. | FlashKV: Accelerating KV performance with open-channel SSDs | |
CN103019887B (zh) | 数据备份方法及装置 | |
CN104809237A (zh) | LSM-tree索引的优化方法和装置 | |
CN104054071A (zh) | 访问存储设备的方法和存储设备 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
Lee et al. | ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework | |
Na et al. | Dynamic In-Page Logging for B⁺-tree Index | |
US11287996B2 (en) | Method, device and computer program product for storing data | |
CN111158602A (zh) | 数据分层存储方法、读取方法、存储主机及存储*** | |
Yao et al. | SEALDB: An efficient LSM-tree based KV store on SMR drives with sets and dynamic bands | |
KR20100083976A (ko) | 해시 인덱스 구성 방법과 그 장치, 및 상기 장치를 구비하는 데이터 저장 장치, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체 | |
KR20090007926A (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN115904255B (zh) | 一种数据请求方法、装置、设备及存储介质 | |
JP6006740B2 (ja) | インデックス管理装置 | |
CN104391652A (zh) | 一种硬盘的损耗均衡方法及装置 | |
CN111796757B (zh) | 一种固态硬盘缓存区管理方法和装置 | |
Yao et al. | A set-aware key-value store on shingled magnetic recording drives with dynamic band |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210817 |