CN113326262A - 基于键值数据库的数据处理方法、装置、设备及介质 - Google Patents
基于键值数据库的数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113326262A CN113326262A CN202110526462.7A CN202110526462A CN113326262A CN 113326262 A CN113326262 A CN 113326262A CN 202110526462 A CN202110526462 A CN 202110526462A CN 113326262 A CN113326262 A CN 113326262A
- Authority
- CN
- China
- Prior art keywords
- data block
- sst
- file
- data
- key
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供的一种基于键值数据库的数据处理方法、装置、设备及介质,方法包括:获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件;根据各第一SST文件对应的键范围和文件大小以及各所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件;针对目标SST文件中的各第一数据块,在第二SST文件中确定与第一数据块对应的键范围存在重叠的第二数据块的数量;根据各数量对各第一数据块进行对应的数据处理。本发明实施例的基于键值数据库的数据处理方法,可以减少参与合并操作过程中的原始数据量,从而在数据处理过程中占用存储设备的输入输出带宽更少,提高了数据处理的效率。
Description
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种基于键值数据库的数据处理方法、装置、设备及介质。
背景技术
日志结构合并树(英文全称为:log structure merge tree,英文简称为:LSM-tree)是当前键值数据库的主流技术。相对于传统的多路搜索树(简称:B-tree)和B+树(简称:B+tree),LSM-tree对随机写进行了优化,并在数据的写入和删除上具有较好的性能。LSM-tree的核心是后台的compaction操作,compaction操作可以称为合并操作也可以称为压缩操作。compaction操作,即从相邻层级(英文为:level)中选择键范围有重叠的SST文件(英文全称为:Sorted String Table,中文为:排序字符串表),对文件中的所有键值对进行归并排序后,在较底层的level中重新写成新的SST文件,这样每个level内的所有SST文件以及每个SST文件内部的键值对,均为有序排列的。
虽然LSM-tree可以支持较高的写入和删除性能,但是随着数据量的增大,内部的compaction操作压力也越来越大。compaction操作本质上是数据的读-排序-写操作。目前的compaction操作方式主要是通过读取目标level层级中最大的SST文件,并将其和目标level层级的下一层级中SST文件进行归并排序后,写入目标level层级的下一层级。
目前的compaction操作方式由于处理的是最大的SST文件,在单次处理过程中占用存储设备较大的输入输出带宽,且进行数据处理的效率也较低。
发明内容
本发明提供一种基于键值数据库的数据处理方法、装置、设备及介质,用以解决目前的compaction操作方式由于处理的是最大的SST文件,在单次处理过程中占用存储设备较大的输入输出带宽,且进行数据处理的效率也较低的问题。
本发明实施例第一方面提供一种基于键值数据库的数据处理方法,键值数据库中按照层级存储有多个SST文件,各SST文件中包括多个数据块,各数据块中存储按序排列的键值对,所述方法包括:
获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件;所述关联层级位于所述目标层级的下一层级;
根据各所述第一SST文件对应的键范围和文件大小以及各所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件;
针对目标SST文件中的各第一数据块,在所述第二SST文件中确定与所述第一数据块对应的键范围存在重叠的第二数据块的数量;
根据各所述数量对各所述第一数据块进行对应的数据处理。
可选的,如上所述的方法,所述根据各所述第一SST文件对应的键范围和文件大小以及各所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件,包括:
根据各所述第一SST文件对应的键范围与各所述第二SST文件对应的键范围确定与所述第一SST文件的键范围存在重叠的第二SST文件;
将与所述第一SST文件的键范围存在重叠的第二SST文件确定为第三SST文件;
确定各所述第一SST文件的文件大小与对应的第三SST文件的文件大小之间的比值;
将各比值中最大比值对应的第一SST文件确定为所述目标SST文件。
可选的,如上所述的方法,所述根据各所述数量对各所述第一数据块进行对应的数据处理,包括:
将各所述数量的倒数确定为对应的第一数据块与第二数据块键范围发生重叠的数据块重叠比例;
根据各所述数据块重叠比例对各所述第一数据块进行对应的数据处理。
可选的,如上所述的方法,所述根据各所述数据块重叠比例对各所述第一数据块进行对应的数据处理,包括:
若确定所述数据块重叠比例等于零,则获取所述数据块重叠比例对应的第一数据块的第一数据块元信息,将所述第一数据块元信息写入到关联层级的SST文件中;
若确定所述数据块重叠比例大于零,则根据各所述数据块重叠比例确定对应的数据块重叠比例阈值,并根据各所述数据块重叠比例与所述数据块重叠比例阈值对各所述第一数据块进行对应的数据处理。
可选的,如上所述的方法,所述将所述第一数据块元信息写入到关联层级的SST文件中,包括:
在关联层级中创建第四SST文件,判断关联层级中是否存在文件大小小于预设的文件大小阈值的第四SST文件;
若存在,则将所述第一数据块元信息以数据块的形式写入到对应所述第四SST文件;
若不存在,则在关联层级中创建新的第四SST文件,并将所述第一数据块元信息以数据块的形式写入到新的第四SST文件。
可选的,如上所述的方法,所述根据各所述数据块重叠比例与所述数据块重叠比例阈值对各所述第一数据块进行对应的数据处理,包括:
将所述各所述数据块重叠比例与所述数据块重叠比例阈值进行对比;
若确定某数据块重叠比例大于或等于数据块重叠比例阈值,则对该第一数据块和与所述第一数据块的键范围存在重叠的第二数据块进行归并排序处理,并将归并排序处理后的数据块存储到关联层级SST文件中,删除该第一数据块和与所述第一数据块的键范围存在重叠的第二数据块;
若确定某数据块重叠比例小于数据块重叠比例阈值,则获取该数据块重叠比例对应的第一数据块的第一数据块元信息,在所述目标层级中创建第五SST文件,并将所述第一数据块元信息以数据块的形式写入所述第五SST文件。
可选的,如上所述的方法,若确定某数据块重叠比例小于数据块重叠比例阈值,则所述方法还包括:
将与所述数据块重叠比例对应的第一数据块的键范围存在重叠的第二数据块确定为第三数据块;
将目标SST文件中所述数据块重叠比例对应的第一数据块之外的其他第一数据块确定为第四数据块;
确定与所述第四数据块的键范围不存在重叠的第三数据块;
获取所述不存在重叠的第三数据块的第二数据块元信息;在所述关联层级中创建第六SST文件,并将所述第二数据块元信息以数据块的形式写入所述第六SST文件。
可选的,如上所述的方法,所述获取待处理的目标层级中的多个第一SST文件之前,还包括:
获取键值数据库中所有层级的数据大小,并确定每个层级的数据大小与对应层级的数据大小阈值之间的差值;
将各所述差值中数值大于零且数值最大的差值对应的层级确定为目标层级。
本发明实施例第二方面提供一种基于键值数据库的数据处理装置,键值数据库中按照层级存储有多个SST文件,各SST文件中包括多个数据块,各数据块中存储按序排列的键值对,所述装置包括:
获取模块,用于获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件;所述关联层级位于所述目标层级的下一层级;
文件确定模块,用于根据各所述第一SST文件对应的键范围和文件大小以及各所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件;
数量确定模块,用于针对目标SST文件中的各第一数据块,在所述第二SST文件中确定与所述第一数据块对应的键范围存在重叠的第二数据块的数量;
处理模块,用于根据各所述数量对各所述第一数据块进行对应的数据处理。
可选的,如上所述的装置,所述文件确定模块具体用于:
根据各所述第一SST文件对应的键范围与各所述第二SST文件对应的键范围确定与所述第一SST文件的键范围存在重叠的第二SST文件;将与所述第一SST文件的键范围存在重叠的第二SST文件确定为第三SST文件;确定各所述第一SST文件的文件大小与对应的第三SST文件的文件大小之间的比值;将各比值中最大比值对应的第一SST文件确定为所述目标SST文件。
可选的,如上所述的装置,所述处理模块具体用于:
将各所述数量的倒数确定为对应的第一数据块与第二数据块键范围发生重叠的数据块重叠比例;根据各所述数据块重叠比例对各所述第一数据块进行对应的数据处理。
可选的,如上所述的装置,所述处理模块在根据各所述数据块重叠比例对各所述第一数据块进行对应的数据处理时,具体用于:
若确定所述数据块重叠比例等于零,则获取所述数据块重叠比例对应的第一数据块的第一数据块元信息,将所述第一数据块元信息写入到关联层级的SST文件中;若确定所述数据块重叠比例大于零,则根据各所述数据块重叠比例确定对应的数据块重叠比例阈值,并根据各所述数据块重叠比例与所述数据块重叠比例阈值对各所述第一数据块进行对应的数据处理。
可选的,如上所述的装置,所述处理模块在将所述第一数据块元信息写入到关联层级的SST文件中时,具体用于:
在关联层级中创建第四SST文件,判断关联层级中是否存在文件大小小于预设的文件大小阈值的第四SST文件;若存在,则将所述第一数据块元信息以数据块的形式写入到对应所述第四SST文件;若不存在,则在关联层级中创建新的第四SST文件,并将所述第一数据块元信息以数据块的形式写入到新的第四SST文件。
可选的,如上所述的装置,所述处理模块在根据各所述数据块重叠比例与所述数据块重叠比例阈值对各所述第一数据块进行对应的数据处理时,具体用于:
将所述各所述数据块重叠比例与所述数据块重叠比例阈值进行对比;若确定某数据块重叠比例大于或等于数据块重叠比例阈值,则对该第一数据块和与所述第一数据块的键范围存在重叠的第二数据块进行归并排序处理,并将归并排序处理后的数据块存储到关联层级SST文件中,删除该第一数据块和与所述第一数据块的键范围存在重叠的第二数据块;若确定某数据块重叠比例小于数据块重叠比例阈值,则获取该数据块重叠比例对应的第一数据块的第一数据块元信息,在所述目标层级中创建第五SST文件,并将所述第一数据块元信息以数据块的形式写入所述第五SST文件。
可选的,如上所述的装置,若确定某数据块重叠比例小于数据块重叠比例阈值,则所述处理模块还用于:
将与所述数据块重叠比例对应的第一数据块的键范围存在重叠的第二数据块确定为第三数据块;将目标SST文件中所述数据块重叠比例对应的第一数据块之外的其他第一数据块确定为第四数据块;确定与所述第四数据块的键范围不存在重叠的第三数据块;获取所述不存在重叠的第三数据块的第二数据块元信息;在所述关联层级中创建第六SST文件,并将所述第二数据块元信息以数据块的形式写入所述第六SST文件。
可选的,如上所述的装置,所述装置还包括:
层级确定模块,用于获取键值数据库中所有层级的数据大小,并确定每个层级的数据大小与对应层级的数据大小阈值之间的差值;将各所述差值中数值大于零且数值最大的差值对应的层级确定为目标层级。
本发明实施例第三方面提供一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为由所述处理器执行第一方面任一项所述的基于键值数据库的数据处理方法。
本发明实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面任一项所述的基于键值数据库的数据处理方法。
本发明实施例第五方面提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的基于键值数据库的数据处理方法。
本发明实施例提供的一种基于键值数据库的数据处理方法、装置、设备及介质,键值数据库中按照层级存储有多个SST文件,各SST文件中包括多个数据块,各数据块中存储按序排列的键值对,所述方法包括:获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件;所述关联层级位于所述目标层级的下一层级;根据各所述第一SST文件对应的键范围和文件大小以及各所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件;针对目标SST文件中的各第一数据块,在所述第二SST文件中确定与所述第一数据块对应的键范围存在重叠的第二数据块的数量;根据各所述数量对各所述第一数据块进行对应的数据处理。本发明实施例的基于键值数据库的数据处理方法,首先根据待处理的目标层级中的各所述第一SST文件对应的键范围和文件大小以及关联层级中的所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件。由于目标SST文件是结合第一SST文件与第二SST文件的键范围以及文件大小综合确定出来的,相比单纯按照文件大小确定出的目标SST文件,与第二SST文件的关联性更高,从而可以减少参与合并操作过程中的原始数据量,进而在合并操作的数据处理过程中占用存储设备的输入输出带宽更少,提高了数据处理的效率。同时,针对目标SST文件中的各第一数据块,在所述第二SST文件中确定与所述第一数据块对应的键范围存在重叠的第二数据块的数量,从而根据各所述数量对各所述第一数据块进行对应的数据处理,相比于对第一数据块仅进行归并排序处理,根据重叠的第二数据块的数量分成多种方式对各所述第一数据块进行数据处理能进一步的提高数据处理的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为可以实现本发明实施例的基于键值数据库的数据处理方法的场景图;
图2为本发明第一实施例提供的基于键值数据库的数据处理方法的流程示意图;
图3为本发明第二实施例提供的基于键值数据库的数据处理方法的流程示意图;
图4为本发明第二实施例提供的基于键值数据库的数据处理方法的LSM-tree数据填充示意图;
图5为本发明第二实施例提供的基于键值数据库的数据处理方法的确定目标SST文件的示意图;
图6为本发明第二实施例提供的基于键值数据库的数据处理方法的确定数据块重叠比例的示意图;
图7为本发明第二实施例提供的基于键值数据库的数据处理方法的键范围不重叠示意图;
图8为本发明第二实施例提供的基于键值数据库的数据处理方法的数据处理结果示意图;
图9为本发明第三实施例提供的基于键值数据库的数据处理装置的结构示意图;
图10为本发明第四实施例提供的电子设备的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。目前的键值数据库如RocksDB数据库普遍应用了LSM-tree技术,以实现较高的写入和删除性能。数据库需要经常对存储的数据进行compaction合并处理以实现存储数据的有序管理,但是随着数据量的增大,对内部数据进行的合并处理的压力也越来越大。目前的合并处理,主要是先确定待处理的目标层级中文件大小最大的SST文件,然后根据最大的SST文件确定关联层级中与该SST文件的键范围重叠的SST文件。最后将该SST文件与键范围重叠的SST文件进行归并排序处理。由于目前的合并操作方式处理的是最大的SST文件,在单次处理过程中占用存储设备较大的输入输出带宽,且进行数据处理的效率也较低。
所以针对现有技术中由于目前的合并操作方式处理的是最大的SST文件,在单次处理过程中占用存储设备较大的输入输出带宽,且进行数据处理的效率也较低的问题,发明人在研究中发现,为了解决目前单次处理过程中占用存储设备较大的输入输出带宽,且进行数据处理的效率也较低的问题,可以在确定目标SST文件时,通过键范围以及文件大小来确定,从而确定出文件大小较小,同时与关联层级的SST文件关联较大的目标SST文件。具体的,首先获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件。其中,关联层级位于目标层级的下一层级。根据各第一SST文件对应的键范围和文件大小以及各第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件。针对目标SST文件中的各第一数据块,在第二SST文件中确定与第一数据块对应的键范围存在重叠的第二数据块的数量。根据各数量对各第一数据块进行对应的数据处理。本发明实施例的基于键值数据库的数据处理方法,首先根据待处理的目标层级中的各第一SST文件对应的键范围和文件大小以及关联层级中的第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件。由于目标SST文件是结合第一SST文件与第二SST文件的键范围以及文件大小综合确定出来的,相比单纯按照文件大小确定出的目标SST文件,与第二SST文件的关联性更高,从而可以减少参与合并操作过程中的原始数据量,进而在合并操作的数据处理过程中占用存储设备的输入输出带宽更少,提高了数据处理的效率。
发明人基于上述的创造性发现,提出了本申请的技术方案。
下面对本发明实施例提供的基于键值数据库的数据处理方法的应用场景进行介绍。本应用场景以执行主体-基于键值数据库的数据处理装置位于键值数据库外的电子设备进行举例说明,同时,基于键值数据库的数据处理装置也可以位于键值数据库所属的电子设备中。如图1所示,其中,1为电子设备,2为键值数据库,21、22为键值数据库中的层级中的SST文件,211和221为SST文件中的数据块。键值数据库2中的层级容量按照层级a-层级n的顺序逐步递增。每个层级都存在至少一个SST文件,每个SST文件中存在至少一个数据块。层级a中存在2个SST文件21,每个SST文件存在3个数据块211,层级b中的2个SST文件22各存在三个数据块221。本发明实施例提供的基于键值数据库的数据处理方法对应的应用场景的网络架构中包括:电子设备1、键值数据库2、SST文件21、22和数据块211、221。在电子设备1对键值数据库进行合并操作处理时,获取键值数据库2中待处理的目标层级中的多个SST文件和关联层级中的至少一个SST文件。假设目标层级为层级a,关联层级为层级b,则获取的是层级a中的2个SST文件21和层级b中的2个SST文件22。电子设备1根据2个SST文件21的键范围和文件大小以及2个SST文件22的键范围和文件大小确定层级a中待处理的目标SST文件。针对目标SST文件中的各数据块211,在层级b中的2个SST文件22中确定与目标SST文件中的数据块211存在键范围重叠的数据块221的数量。最后电子设备1根据各存在键范围重叠的数据块221的数量对键值数据库2的数据块211进行对应的数据处理。本发明实施例的基于键值数据库的数据处理方法,由于目标SST文件是结合目标层级的SST文件与关联层级的SST文件的键范围以及文件大小综合确定出来的,相比单纯按照文件大小确定出的目标SST文件,与关联层级的SST文件的关联性更高,从而可以减少参与合并操作过程中的原始数据量,进而在合并操作的数据处理过程中占用存储设备的输入输出带宽更少,提高了数据处理的效率。
下面结合说明书附图对本发明实施例进行介绍。
图2为本发明第一实施例提供的基于键值数据库的数据处理方法的流程示意图,如图2所示,本实施例中,本发明实施例的执行主体为基于键值数据库的数据处理装置,该基于键值数据库的数据处理装置可以集成在电子设备中,比如键值数据库所属的电子设备。需要说明的是,键值数据库中按照层级存储有多个SST文件,各SST文件中包括多个数据块,各数据块中存储按序排列的键值对。则本实施例提供的基于键值数据库的数据处理方法包括以下几个步骤:
步骤S101,获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件。关联层级位于目标层级的下一层级。
本实施例中,层级在LSM-tree中一般用level来表示,层级一般是从上往下按照1-n的顺序进行排列,层级容量大小从上往下逐步递增。比如层级1的容量大小可能为100MB(兆字节),层级2的容量大小为150MB,而层级n的容量大小可能为900MB。
待处理的目标层级一般可以通过层级中存储的数据量是否达到该层级设定的阈值来确定。比如层级1存储的数据量为50MB,层级2存储的数据量为120MB,层级1的阈值为70MB,而层级2的阈值为120MB,此时,可以将层级2确定为目标层级。
关联层级为目标层级的下一层级,关联层级的总体容量大小比目标层级大。
步骤S102,根据各第一SST文件对应的键范围和文件大小以及各第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件。
本实施例中,键范围为数据存储时对应的一个标识,类似文件夹中每个文件的标签。键范围一般是数字范围,比如1-100等。
可以针对每个第一SST文件确定存在键范围重叠的第二SST文件,然后根据第一SST文件的文件大小与第二SST文件的大小综合确定待处理的目标SST文件。也可以综合考虑键范围和文件大小,将第一SST文件的文件大小与存在键范围重叠的第二SST文件的文件大小的比值最大的第一SST文件确定为目标SST文件。本实施例对此不作限定。
步骤S103,针对目标SST文件中的各第一数据块,在第二SST文件中确定与第一数据块对应的键范围存在重叠的第二数据块的数量。
本实施例中,由于数据处理实质是针对SST文件中的数据块的处理。目标SST文件中的各第一数据块的数据情况可能都不相同。因而,可以在第二SST文件中确定与第一数据块对应的键范围存在重叠的第二数据块的数量,从而根据重叠的第二数据块的数量进行对应的处理。
步骤S104,根据各数量对各第一数据块进行对应的数据处理。
本实施例中,若数量较小,则可以将该第一数据块进行归并排序处理,若数量较大,则可以不处理对应的第一数据块或者将对应的第一数据块的数据块元信息写入目标层级的新的SST文件中。若数量为0,可以将对应的第一数据块压入关联层级,或者将对应的第一数据块的数据块元信息写入关联层级的SST文件中。
本发明实施例提供的一种基于键值数据库的数据处理方法,键值数据库中按照层级存储有多个SST文件,各SST文件中包括多个数据块,各数据块中存储按序排列的键值对,方法包括:获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件。关联层级位于目标层级的下一层级。根据各第一SST文件对应的键范围和文件大小以及各第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件。针对目标SST文件中的各第一数据块,在第二SST文件中确定与第一数据块对应的键范围存在重叠的第二数据块的数量。根据各数量对各第一数据块进行对应的数据处理。本发明实施例的基于键值数据库的数据处理方法,首先根据待处理的目标层级中的各第一SST文件对应的键范围和文件大小以及关联层级中的第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件。由于目标SST文件是结合第一SST文件与第二SST文件的键范围以及文件大小综合确定出来的,相比单纯按照文件大小确定出的目标SST文件,与第二SST文件的关联性更高,从而可以减少参与合并操作过程中的原始数据量,进而在合并操作的数据处理过程中占用存储设备的输入输出带宽更少,提高了数据处理的效率。同时,针对目标SST文件中的各第一数据块,在第二SST文件中确定与第一数据块对应的键范围存在重叠的第二数据块的数量,从而根据各数量对各第一数据块进行对应的数据处理,相比于对第一数据块仅进行归并排序处理,根据重叠的第二数据块的数量分成多种方式对各第一数据块进行数据处理能进一步的提高数据处理的效率。
图3为本发明第二实施例提供的基于键值数据库的数据处理方法的流程示意图,如图3所示,本实施例提供的基于键值数据库的数据处理方法,是在本发明上一实施例提供的基于键值数据库的数据处理方法的基础上,对各个步骤进行了进一步的细化。则本实施例提供的基于键值数据库的数据处理方法包括以下步骤。
步骤S201,获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件。关联层级位于目标层级的下一层级。
本实施例中,步骤201的实现方式与本发明上一实施例中的步骤101的实现方式类似,在此不再一一赘述。
可选的,本实施例中,获取待处理的目标层级中的多个第一SST文件之前,还包括:
获取键值数据库中所有层级的数据大小,并确定每个层级的数据大小与对应层级的数据大小阈值之间的差值。
将各差值中数值大于零且数值最大的差值对应的层级确定为目标层级。
本实施例中,若同时存在多个数据大小大于或等于数据大小阈值的层级,则可以将差值最大的层级确定为目标层级。
步骤S202,根据各第一SST文件对应的键范围与各第二SST文件对应的键范围确定与第一SST文件的键范围存在重叠的第二SST文件。
本实施例中,键范围存在重叠的第一SST文件和第二SST文件在进行合并处理时,可以合并为新的SST文件,从而提高层级中的SST文件的有序性,同时,也可以清理出层级的存储空间。
步骤S203,将与第一SST文件的键范围存在重叠的第二SST文件确定为第三SST文件。
本实施例中,为了方便理解,将与第一SST文件的键范围存在重叠的第二SST文件确定为第三SST文件。
步骤S204,确定各第一SST文件的文件大小与对应的第三SST文件的文件大小之间的比值。
本实施例中,确定各第一SST文件的文件大小与对应的第三SST文件的文件大小之间的比值可以为后续确定目标SST文件提供基础。比如,第一SST文件存在3个,第一SST文件a、b、c。第一SST文件a的文件大小为1MB,对应的第三SST文件的文件大小为2MB,第一SST文件b的文件大小为1.5MB,对应的第三SST文件的文件大小为2MB,第一SST文件c的文件大小为2MB,对应的第三SST文件的文件大小为2MB。则第一SST文件a、b、c的比值分别为0.5,0.75,1。
步骤S205,将各比值中最大比值对应的第一SST文件确定为目标SST文件。
本实施例中,比值最大代表存在键范围重叠的该第一SST文件与第三SST文件之间重叠的比例最大,需要进行合并操作处理。同时,重叠的比例越大,进行合并操作的数据处理的效率越高。重叠的比例最大对应的第一SST文件一般情况下文件大小在所有第一SST文件中不是最大的,从而通过将各比值中最大比值对应的第一SST文件确定为目标SST文件可以降低占用的存储设备的输入输出带宽,同时,提高数据处理的效率。
步骤S206,针对目标SST文件中的各第一数据块,在第二SST文件中确定与第一数据块对应的键范围存在重叠的第二数据块的数量。
本实施例中,步骤206的实现方式与本发明上一实施例中的步骤103的实现方式类似,在此不再一一赘述。
步骤S207,将各数量的倒数确定为对应的第一数据块与第二数据块键范围发生重叠的数据块重叠比例。
本实施例中,将各数量的倒数确定为对应的第一数据块与第二数据块键范围发生重叠的数据块重叠比例可以为后续进行对应的数据处理提供基础。
步骤S208,根据各数据块重叠比例对各第一数据块进行对应的数据处理。
本实施例中,可以根据数据块重叠比例确定出数据块重叠比例阈值,从而根据数据块重叠比例以及数据块重叠比例阈值之间的比较结果确定数据处理的方式。同时,也可以根据数据块重叠比例的大小确定数据处理的方式,比如若数据块重叠比例较大,则可以将该第一数据块进行归并排序处理,若数据块重叠比例较小,则可以不处理对应的第一数据块或者将对应的第一数据块的数据块元信息写入目标层级的新的SST文件中。若数据块重叠比例为0,可以将对应的第一数据块压入关联层级,或者将对应的第一数据块的数据块元信息写入关联层级的SST文件中。
可选的,本实施例中,根据各数据块重叠比例对各第一数据块进行对应的数据处理,包括:
若确定数据块重叠比例等于零,则获取数据块重叠比例对应的第一数据块的第一数据块元信息,将第一数据块元信息写入到关联层级的SST文件中。
若确定数据块重叠比例大于零,则根据各数据块重叠比例确定对应的数据块重叠比例阈值,并根据各数据块重叠比例与数据块重叠比例阈值对各第一数据块进行对应的数据处理。
本实施例中,数据块元信息用来描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件纪录等功能。当数据块重叠比例等于零时,则代表第一数据块没有与其存在键范围重叠的第二数据块,该第一数据块可以被重用。重用指可以将某数据块存放在一个SST文件中,而将索引该数据块的数据存放在其他的SST文件中。这样可以减少数据的存储量,同时,也能较小影响各个文件调用该数据的效率。重用是利用键值数据库中的文件系统的逻辑块地址重用机制,从而使被写入的SST文件中原本用于存放可被重用的数据块的逻辑块地址指向该第一数据块原来的逻辑块地址。
此时,可以将第一数据块元信息写入到关联层级的SST文件中,而不是将该第一数据块写入关联层级的SST文件中,从而减少数据处理过程中的写入量,提高整体的数据处理效率。当需要调用该第一数据块时,可以通过第一数据块元信息查找到第一数据块的存储位置,从而调用该第一数据块。
数据块重叠比例阈值可以选取各数据块重叠比例的中间值,比如数据块重叠比例分别为0.5,0.3,1,则可以选择0.4作为数据块重叠比例阈值,也可以按照实际需求进行设置,本实施例对此不作限定。
可选的,本实施例中,将第一数据块元信息写入到关联层级的SST文件中,包括:
在关联层级中创建第四SST文件,判断关联层级中是否存在文件大小小于预设的文件大小阈值的第四SST文件。
若存在,则将第一数据块元信息以数据块的形式写入到对应第四SST文件。
若不存在,则在关联层级中创建新的第四SST文件,并将第一数据块元信息以数据块的形式写入到新的第四SST文件。
本实施例中,第一数据块元信息将以数据块的形式写入创建的第四SST文件,变成第四SST文件中一个新的数据块。将第一数据块元信息写入第四SST文件时,可以选择文件大小小于预设的文件大小阈值的第四SST文件,从而避免该第四SST文件存储的数据量过大。若不存在文件大小小于预设的文件大小阈值的第四SST文件,则可以再创建新的第四SST文件,并将第一数据块元信息以数据块的形式写入新创建的第四SST文件中。
可选的,本实施例中,根据各数据块重叠比例与数据块重叠比例阈值对各第一数据块进行对应的数据处理,包括:
将各数据块重叠比例与数据块重叠比例阈值进行对比。
若确定某数据块重叠比例大于或等于数据块重叠比例阈值,则对该第一数据块和与第一数据块的键范围存在重叠的第二数据块进行归并排序处理,并将归并排序处理后的数据块存储到关联层级SST文件中,删除该第一数据块和与第一数据块的键范围存在重叠的第二数据块。
若确定某数据块重叠比例小于数据块重叠比例阈值,则获取该数据块重叠比例对应的第一数据块的第一数据块元信息,在目标层级中创建第五SST文件,并将第一数据块元信息以数据块的形式写入第五SST文件。
本实施例中,若某数据块重叠比例大于或等于数据块重叠比例阈值则代表与该数据块存在键范围重叠的第二数据块的数量较少。当存在键范围重叠的第二数据块的数量较少时,进行该第一数据块的归并排序处理的效率较高。
若某数据块重叠比例小于数据块重叠比例阈值则代表该数据块存在键范围重叠的第二数据块的数量较多,此时,若选择对该第一数据块进行归并排序处理,不仅效率较低,同时也会占用存储设备较多的输入输出性能。因而,在该种情况下,获取该数据块重叠比例对应的第一数据块的第一数据块元信息,在目标层级中创建第五SST文件,并将第一数据块元信息以数据块的形式写入第五SST文件。即将该第一数据块的数据并不进行移动,而是将其对应的第一数据块元信息以数据块的形式写入第五SST文件,以方便后续的重用。
可选的,本实施例中,若确定某数据块重叠比例小于数据块重叠比例阈值,则方法还包括:
将与数据块重叠比例对应的第一数据块的键范围存在重叠的第二数据块确定为第三数据块。
将目标SST文件中数据块重叠比例对应的第一数据块之外的其他第一数据块确定为第四数据块。
确定与第四数据块的键范围不存在重叠的第三数据块。
获取不存在重叠的第三数据块的第二数据块元信息。在关联层级中创建第六SST文件,并将第二数据块元信息以数据块的形式写入第六SST文件。
本实施例中,假设目标SST文件中具有3个第一数据块,分别为cde,数据块重叠比例对应的第一数据块为第一数据块c,则第四数据块为第一数据块d和e。
由于该第一数据块重叠比例小于数据块重叠比例阈值,说明第三数据块的数量较多,如果对该第一数据块进行归并排序处理,处理的效率较低。因而,该第一数据块以及存在重叠的第三数据块都可以进行重用的处理,以提高数据处理的效率。
本发明实施例提供的一种基于键值数据库的数据处理方法,通过在待处理的目标文件选择过程中针对目标层级中的各第一SST文件,在关联层级中确定与第一SST文件存在键范围重叠的第二SST文件的数量,从而按照最少文件覆盖原则,选择存在键范围重叠的第二SST文件的数量最少所对应的第一SST文件作为目标SST文件。从而可以减少参与合并操作的数据处理的原始数据量,提高合并操作的数据处理效率。同时在数据处理的过程中,利用文件系统的逻辑块地址重用机制,对目标SST文件中的数据块重叠比例小于或等于零的第一数据块进行重用,从而减小合并操作的数据处理过程的读写放大。
为了更详细的说明本实施例的方法,下面将以实际应用为例进行详细描述。
请参阅图4-图8,图5中的level指层级,本实施例中键值数据库采用XFS文件系统,该文件系统具有重用机制,本实施例的方法流程如下:
(1)键值数据库的LSM-tree中的数据通过XFS文件系统写入存储设备,并且LSM-tree中数据块的阈值大小为文件系统逻辑块大小的整数倍。LSM-tree在生成一个新的数据块时保证数据块的边界与文件系统逻辑块的边界对齐,即LSM-tree中每个数据块占用整数个数的文件系统逻辑块。数据块中对于尾部未填满的文件系统逻辑块,使用无效数据进行填充。如图4所示,文件系统逻辑块大小为4KB,LSM-tree采用数据块大小阈值为16KB,对于数据块中的最后一个4KB,当不足以填充一个完整的键值对时,填充0的数据以使数据块的边界与文件系统逻辑块的边界对齐。
(2)当LSM-tree中某个level的实际大小大于预设的数据大小阈值时,将该level标记为需要做compaction操作的目标level。当有多个level都需要做compaction操作时,选择实际大小与预设的数据大小阈值之间的比值最大的level作为当前compaction的目标level。
(3)遍历LSM-tree中目标level中的全部或部分SST文件,针对遍历的每个SST文件,在关联level(目标level的下一个level)中查找与之键范围存在重叠的SST文件,并计算出目标level中SST文件的文件大小与关联level中相应的键范围重叠的SST文件的总文件大小之间的比值。在遍历结束后,选择最大比值对应的目标level中的SST文件作为当前需要做compaction的文件。如图5所示,图中方框中的数字代表对应的键范围,level n为目标level,目标level中存在3个SST文件,即SST 0-SST 2。对应的level n+1为关联level,关联level中存在7个SST文件,即SST3-SST9。SST0-SST 2对应的键范围有重叠的SST文件数目分别为3、4、2。SST 0-SST 2对应的关联level中键范围有重叠的文件总大小分别为200MB、350MB和150MB,由于SST 0-SST 2的文件大小相同,按照比值最大的选取原则,选择SST 2作为当前需要做compaction的文件,相应地,关联level中参与compaction的文件为SST 8和SST 9,在图5中设置了灰色填充以进行区分。
(4)遍历SST 2中的数据块索引(数据块索引记录每个数据块在SST文件中的位置以及对应的键范围),并根据SST 8和SST 9中的数据块索引,确定SST 2中的每个数据块对应的SST 8和SST 9中存在键范围重叠的数据块数目。将该数据块数目的倒数确定为数据块重叠比例,在得到数据块重叠比例的分布后,选择分布中的一个中间值作为数据块重叠比例阈值,然后进行后续的数据处理。如图6所示,图6是以图5中参与compaction的SST 2为例。图6中Block代表数据块,方框中的数字代表各数据块键范围。如图所示,SST2文件中每个数据块的数据块重叠比例分别为1:2、1:1、1:0、1:3。根据SST2中的数据块与SST 8和SST9中的数据块的键范围的重叠情况,可以选择1:2.5作为数据块重叠比例阈值。
(5)若当前数据块(无论是目标level还是关联level)所对应的键范围,与其它数据块的键范围不存在任何重叠,则该数据块被标记为可以被重用,此时关联level中正在被写入的SST文件的当前数据块结束写入,并按文件系统的逻辑块边界进行数据的补齐操作,形成一个完整的数据块,然后可被重用的数据块整体移入被写入的SST文件,移入的方式仅为数据块元信息的更改,即利用文件系统的逻辑块地址可重用的特性,将被写入的SST文件中原本用于存放可被重用的数据块的逻辑块地址指向该数据块原来的逻辑块地址,而无需真正进行数据块本身的拷贝。当被写入的SST文件达到阈值大小时,创建一个新的SST文件继续写入操作。如图7所示,图中SST 2内的Block 2,SST 8中的Block 2和Block3,以及SST9中的Block 0,对应的键范围与其它任何数据块均无重叠,因此属于可重用的数据块。
(6)若目标level中的目标SST文件,如SST2的数据块所对应的键范围,与关联level中对应SST文件,如SST8和9的数据块的键范围存在重叠,则按如下方式判断相关的数据块是否可以被重用:
(6.1)若目标level中的目标SST文件中数据块对应的数据块重叠比例不低于数据块重叠比例阈值,则该数据块和对应的关联level中对应SST文件存在键范围重叠的数据块不可重用,对这些数据块直接进行归并排序,并将排序后保留的键值写入关联level中正在被写入的SST文件。图7中,当以1:2.5作为数据块重叠比例阈值时,SST 2中的Block0和Block 1所对应的数据块重叠比例分别为1:2和1:1,大于1:2.5,因此这两个Block连同SST8中的Block 0和Block 1(键范围有重叠),将参与正常的归并排序。
(6.2)若目标level中的目标SST文件中对应的数据块重叠比例低于数据块重叠比例阈值,则该数据块及关联level中与之键范围有重叠但与目标level中其它数据块无重叠的所有数据块被标记为可重用。对于目标level中可重用的数据块,将在目标level中生成新的SST文件,并通过数据块元信息更改的方式将其整体移入新SST文件中。对于关联level中可重用的数据块,通过数据块元信息更改的方式将其移入关联level中正在被写入的SST文件。图7中,SST 2中的Block 3对应的数据块重叠比例为1:3,小于1:2.5的数据块重叠比例阈值,因此,该Block将移入level n中的新SST中,相应地,SST 9中的Block 1,Block 2和Block 3将移入level n+1中的新SST中。
(7)完成对应的数据处理后,若目标level中存在新生成的SST文件,则将其加入到目标level中。对于关联level中新生成的SST文件,将其加入到关联level中。然后删除参与compaction的旧文件,结束此次compaction。图7中的各个数据块经过数据处理后的结果如图8所示,图中以灰色标注的部分为各个可重用的数据块。level n中的新SST(SST12)包含了一个可重用的数据块,来自于compaction前SST 2中的Block 3,level n+1中的新SST(SST 10,SST 11和SST 13),共包含了7个可重用的数据块,分别来自数据处理之前的SST 2中的Block 2,SST 8中的Block 2和Block 3,以及SST 9中的Block0~Block 3。
图9为本发明第三实施例提供的基于键值数据库的数据处理装置的结构示意图,如图9所示,本实施例中,基于键值数据库的数据处理装置300位于电子设备中,键值数据库中按照层级存储有多个SST文件,各SST文件中包括多个数据块,各数据块中存储按序排列的键值对,该基于键值数据库的数据处理装置300包括:
获取模块301,用于获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件。关联层级位于目标层级的下一层级。
文件确定模块302,用于根据各第一SST文件对应的键范围和文件大小以及各第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件。
数量确定模块303,用于针对目标SST文件中的各第一数据块,在第二SST文件中确定与第一数据块对应的键范围存在重叠的第二数据块的数量。
处理模块304,用于根据各数量对各第一数据块进行对应的数据处理。
本实施例提供的基于键值数据库的数据处理装置可以执行图2所示方法实施例的技术方案,其实现原理和技术效果与图2所示方法实施例类似,在此不再一一赘述。
同时,本发明提供的基于键值数据库的数据处理装置在上一实施例提供的基于键值数据库的数据处理装置的基础上,对基于键值数据库的数据处理装置300进行了进一步的细化。
可选的,本实施例中,文件确定模块具体用于:
根据各第一SST文件对应的键范围与各第二SST文件对应的键范围确定与第一SST文件的键范围存在重叠的第二SST文件。将与第一SST文件的键范围存在重叠的第二SST文件确定为第三SST文件。确定各第一SST文件的文件大小与对应的第三SST文件的文件大小之间的比值。将各比值中最大比值对应的第一SST文件确定为目标SST文件。
可选的,本实施例中,处理模块具体用于:
将各数量的倒数确定为对应的第一数据块与第二数据块键范围发生重叠的数据块重叠比例。根据各数据块重叠比例对各第一数据块进行对应的数据处理。
可选的,本实施例中,处理模块在根据各数据块重叠比例对各第一数据块进行对应的数据处理时,具体用于:
若确定数据块重叠比例等于零,则获取数据块重叠比例对应的第一数据块的第一数据块元信息,将第一数据块元信息写入到关联层级的SST文件中。若确定数据块重叠比例大于零,则根据各数据块重叠比例确定对应的数据块重叠比例阈值,并根据各数据块重叠比例与数据块重叠比例阈值对各第一数据块进行对应的数据处理。
可选的,本实施例中,处理模块在将第一数据块元信息写入到关联层级的SST文件中时,具体用于:
在关联层级中创建第四SST文件,判断关联层级中是否存在文件大小小于预设的文件大小阈值的第四SST文件。若存在,则将第一数据块元信息以数据块的形式写入到对应第四SST文件。若不存在,则在关联层级中创建新的第四SST文件,并将第一数据块元信息以数据块的形式写入到新的第四SST文件。
可选的,本实施例中,处理模块在根据各数据块重叠比例与数据块重叠比例阈值对各第一数据块进行对应的数据处理时,具体用于:
将各数据块重叠比例与数据块重叠比例阈值进行对比。若确定某数据块重叠比例大于或等于数据块重叠比例阈值,则对该第一数据块和与第一数据块的键范围存在重叠的第二数据块进行归并排序处理,并将归并排序处理后的数据块存储到关联层级SST文件中,删除该第一数据块和与第一数据块的键范围存在重叠的第二数据块。若确定某数据块重叠比例小于数据块重叠比例阈值,则获取该数据块重叠比例对应的第一数据块的第一数据块元信息,在目标层级中创建第五SST文件,并将第一数据块元信息以数据块的形式写入第五SST文件。
可选的,本实施例中,若确定某数据块重叠比例小于数据块重叠比例阈值,则处理模块还用于:
将与数据块重叠比例对应的第一数据块的键范围存在重叠的第二数据块确定为第三数据块。将目标SST文件中数据块重叠比例对应的第一数据块之外的其他第一数据块确定为第四数据块。确定与第四数据块的键范围不存在重叠的第三数据块。获取不存在重叠的第三数据块的第二数据块元信息。在关联层级中创建第六SST文件,并将第二数据块元信息以数据块的形式写入第六SST文件。
可选的,本实施例中,基于键值数据库的装置300还包括:
层级确定模块,用于获取键值数据库中所有层级的数据大小,并确定每个层级的数据大小与对应层级的数据大小阈值之间的差值。将各差值中数值大于零且数值最大的差值对应的层级确定为目标层级。
本实施例提供的基于键值数据库的数据处理装置可以执行图2-图8所示方法实施例的技术方案,其实现原理和技术效果与图2-图8所示方法实施例类似,在此不再一一赘述。
根据本发明的实施例,本发明还提供了一种电子设备、一种计算机可读存储介质和一种计算机程序产品。
如图10所示,图10是本发明第四实施例提供的电子设备的结构示意图。电子设备旨在各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、和其它适合的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图10所示,该电子设备包括:处理器401、存储器402。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理。
存储器402即为本发明所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本发明所提供的数据处理方法。本发明的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本发明所提供的数据处理方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/模块(例如,附图9所示的获取模块301、文件确定模块302、数量确定模块303和处理模块304)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据处理方法。
同时,本实施例还提供一种计算机产品,当该计算机产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例一和二的数据处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明实施例的其它实施方案。本发明旨在涵盖本发明实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明实施例的一般性原理并包括本发明实施例未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明实施例的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明实施例的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种基于键值数据库的数据处理方法,其特征在于,键值数据库中按照层级存储有多个SST文件,各SST文件中包括多个数据块,各数据块中存储按序排列的键值对,所述方法包括:
获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件;所述关联层级位于所述目标层级的下一层级;
根据各所述第一SST文件对应的键范围和文件大小以及各所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件;
针对目标SST文件中的各第一数据块,在所述第二SST文件中确定与所述第一数据块对应的键范围存在重叠的第二数据块的数量;
根据各所述数量对各所述第一数据块进行对应的数据处理。
2.根据权利要求1所述的方法,其特征在于,所述根据各所述第一SST文件对应的键范围和文件大小以及各所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件,包括:
根据各所述第一SST文件对应的键范围与各所述第二SST文件对应的键范围确定与所述第一SST文件的键范围存在重叠的第二SST文件;
将与所述第一SST文件的键范围存在重叠的第二SST文件确定为第三SST文件;
确定各所述第一SST文件的文件大小与对应的第三SST文件的文件大小之间的比值;
将各比值中最大比值对应的第一SST文件确定为所述目标SST文件。
3.根据权利要求2所述的方法,其特征在于,所述根据各所述数量对各所述第一数据块进行对应的数据处理,包括:
将各所述数量的倒数确定为对应的第一数据块与第二数据块键范围发生重叠的数据块重叠比例;
根据各所述数据块重叠比例对各所述第一数据块进行对应的数据处理。
4.根据权利要求3所述的方法,其特征在于,所述根据各所述数据块重叠比例对各所述第一数据块进行对应的数据处理,包括:
若确定所述数据块重叠比例等于零,则获取所述数据块重叠比例对应的第一数据块的第一数据块元信息,将所述第一数据块元信息写入到关联层级的SST文件中;
若确定所述数据块重叠比例大于零,则根据各所述数据块重叠比例确定对应的数据块重叠比例阈值,并根据各所述数据块重叠比例与所述数据块重叠比例阈值对各所述第一数据块进行对应的数据处理。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一数据块元信息写入到关联层级的SST文件中,包括:
在关联层级中创建第四SST文件,判断关联层级中是否存在文件大小小于预设的文件大小阈值的第四SST文件;
若存在,则将所述第一数据块元信息以数据块的形式写入到对应所述第四SST文件;
若不存在,则在关联层级中创建新的第四SST文件,并将所述第一数据块元信息以数据块的形式写入到新的第四SST文件。
6.根据权利要求4所述的方法,其特征在于,所述根据各所述数据块重叠比例与所述数据块重叠比例阈值对各所述第一数据块进行对应的数据处理,包括:
将所述各所述数据块重叠比例与所述数据块重叠比例阈值进行对比;
若确定某数据块重叠比例大于或等于数据块重叠比例阈值,则对该第一数据块和与所述第一数据块的键范围存在重叠的第二数据块进行归并排序处理,并将归并排序处理后的数据块存储到关联层级SST文件中,删除该第一数据块和与所述第一数据块的键范围存在重叠的第二数据块;
若确定某数据块重叠比例小于数据块重叠比例阈值,则获取该数据块重叠比例对应的第一数据块的第一数据块元信息,在所述目标层级中创建第五SST文件,并将所述第一数据块元信息以数据块的形式写入所述第五SST文件。
7.根据权利要求6所述的方法,其特征在于,若确定某数据块重叠比例小于数据块重叠比例阈值,则所述方法还包括:
将与所述数据块重叠比例对应的第一数据块的键范围存在重叠的第二数据块确定为第三数据块;
将目标SST文件中所述数据块重叠比例对应的第一数据块之外的其他第一数据块确定为第四数据块;
确定与所述第四数据块的键范围不存在重叠的第三数据块;
获取所述不存在重叠的第三数据块的第二数据块元信息;在所述关联层级中创建第六SST文件,并将所述第二数据块元信息以数据块的形式写入所述第六SST文件。
8.一种基于键值数据库的数据处理装置,其特征在于,键值数据库中按照层级存储有多个SST文件,各SST文件中包括多个数据块,各数据块中存储按序排列的键值对,所述装置包括:
获取模块,用于获取待处理的目标层级中的多个第一SST文件和关联层级中的至少一个第二SST文件;所述关联层级位于所述目标层级的下一层级;
文件确定模块,用于根据各所述第一SST文件对应的键范围和文件大小以及各所述第二SST文件对应的键范围和文件大小确定目标层级中待处理的目标SST文件;
数量确定模块,用于针对目标SST文件中的各第一数据块,在所述第二SST文件中确定与所述第一数据块对应的键范围存在重叠的第二数据块的数量;
处理模块,用于根据各所述数量对各所述第一数据块进行对应的数据处理。
9.一种电子设备,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为由所述处理器执行如权利要求1至7任一项所述的基于键值数据库的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的基于键值数据库的数据处理方法。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的基于键值数据库的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110526462.7A CN113326262B (zh) | 2021-05-14 | 2021-05-14 | 基于键值数据库的数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110526462.7A CN113326262B (zh) | 2021-05-14 | 2021-05-14 | 基于键值数据库的数据处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113326262A true CN113326262A (zh) | 2021-08-31 |
CN113326262B CN113326262B (zh) | 2022-06-24 |
Family
ID=77415764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110526462.7A Active CN113326262B (zh) | 2021-05-14 | 2021-05-14 | 基于键值数据库的数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326262B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450591A (zh) * | 2023-06-15 | 2023-07-18 | 北京数巅科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468298A (zh) * | 2015-11-19 | 2016-04-06 | 中国科学院信息工程研究所 | 一种基于日志结构合并树的键值存储方法 |
CN108717448A (zh) * | 2018-05-18 | 2018-10-30 | 南京大学 | 一种面向键值对存储的范围查询过滤方法和键值对存储系统 |
CN109271343A (zh) * | 2018-07-24 | 2019-01-25 | 华为技术有限公司 | 一种应用于键值存储系统中的数据合并方法和装置 |
US10740300B1 (en) * | 2017-12-07 | 2020-08-11 | Commvault Systems, Inc. | Synchronization of metadata in a distributed storage system |
US20200341678A1 (en) * | 2019-04-26 | 2020-10-29 | Shichao Jin | Data storage method and data storage engine |
CN112346666A (zh) * | 2020-11-30 | 2021-02-09 | 华中科技大学 | 基于ocssd的键值存储系统的写、块粒度压缩合并方法和系统 |
-
2021
- 2021-05-14 CN CN202110526462.7A patent/CN113326262B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468298A (zh) * | 2015-11-19 | 2016-04-06 | 中国科学院信息工程研究所 | 一种基于日志结构合并树的键值存储方法 |
US10740300B1 (en) * | 2017-12-07 | 2020-08-11 | Commvault Systems, Inc. | Synchronization of metadata in a distributed storage system |
CN108717448A (zh) * | 2018-05-18 | 2018-10-30 | 南京大学 | 一种面向键值对存储的范围查询过滤方法和键值对存储系统 |
CN109271343A (zh) * | 2018-07-24 | 2019-01-25 | 华为技术有限公司 | 一种应用于键值存储系统中的数据合并方法和装置 |
CN112527735A (zh) * | 2018-07-24 | 2021-03-19 | 华为技术有限公司 | 一种应用于键值存储系统中的数据合并方法和装置 |
US20200341678A1 (en) * | 2019-04-26 | 2020-10-29 | Shichao Jin | Data storage method and data storage engine |
CN112346666A (zh) * | 2020-11-30 | 2021-02-09 | 华中科技大学 | 基于ocssd的键值存储系统的写、块粒度压缩合并方法和系统 |
Non-Patent Citations (1)
Title |
---|
刘伟: "基于近数据计算的LSM-tree键值存储系统compacion优化方法", 《万方数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450591A (zh) * | 2023-06-15 | 2023-07-18 | 北京数巅科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN116450591B (zh) * | 2023-06-15 | 2023-09-12 | 北京数巅科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113326262B (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
CN102567427B (zh) | 一种对象数据处理方法及装置 | |
US20150106579A1 (en) | Forward-Only Paged Data Storage Management | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
CN107766374B (zh) | 一种海量小文件存储读取的优化方法和系统 | |
CN110399096B (zh) | 分布式文件系统元数据缓存重删的方法、装置以及设备 | |
US11100047B2 (en) | Method, device and computer program product for deleting snapshots | |
CN111522507B (zh) | 一种低延迟的文件系统地址空间管理方法、系统及介质 | |
CN113806300B (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN111459884B (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
CN113867627B (zh) | 一种存储系统性能优化方法及系统 | |
CN113326262B (zh) | 基于键值数据库的数据处理方法、装置、设备及介质 | |
CN115840731A (zh) | 文件处理方法、计算设备及计算机存储介质 | |
KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN103530067A (zh) | 一种数据操作的方法和设备 | |
CN111552438A (zh) | 一种对象写入的方法、装置、服务器和存储介质 | |
CN111752941A (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
US11163446B1 (en) | Systems and methods of amortizing deletion processing of a log structured storage based volume virtualization | |
CN114579061A (zh) | 一种数据存储方法、装置、设备及介质 | |
CN114265828A (zh) | 行迁移消除方法、装置、计算机设备和存储介质 | |
CN113867626A (zh) | 一种存储系统性能优化方法、系统、设备和存储介质 | |
CN114625713A (zh) | 一种存储系统中元数据管理方法、装置及存储系统 | |
CN111581157A (zh) | 一种对象存储平台以及对象操作方法、装置和服务器 | |
CN102298592A (zh) | 名单管理方法及装置 | |
CN112015791B (zh) | 数据处理方法、装置、电子设备及计算机存储介质 |
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 |