CN118069891A - 一种基于滑动窗口的lsm数据合并排序方法和装置 - Google Patents
一种基于滑动窗口的lsm数据合并排序方法和装置 Download PDFInfo
- Publication number
- CN118069891A CN118069891A CN202410261182.1A CN202410261182A CN118069891A CN 118069891 A CN118069891 A CN 118069891A CN 202410261182 A CN202410261182 A CN 202410261182A CN 118069891 A CN118069891 A CN 118069891A
- Authority
- CN
- China
- Prior art keywords
- string table
- level
- low
- sequencing
- merging
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012163 sequencing technique Methods 0.000 claims abstract description 101
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- 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/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于滑动窗口的LSM数据合并排序方法和装置。本发明提出的方法首先构建面向合并操作中处于低层级的排序字符串表的滑动窗口,依据滑动窗口选定参与合并操作的低层级排序字符串表,同时获取滑动窗口左右最近的两个排序字符串表,并获取其键控范围,然后在处于高层级的排序字符串表中选择与低层级排序字符串表键控范围存在交集的排序字符串表并获取其键控范围,通过预估合并后排序字符串表的键控范围,并与滑动窗口左右最近的两个排序字符串表键控范围作比较,判定是否进行合并排序操作。本发明减少了处于高层级的排序字符串表反复参与低层级排序字符串表合并过程的次数,加快了合并排序速率,提升了系统读写性能。
Description
技术领域
本发明属于数据存储技术领域,具体涉及一种基于滑动窗口的日志结构合并(LogStructured Merge,以下简称LSM)数据合并排序方法和装置。
背景技术
基于LSM的数据库,数据先写入低层级,然后依赖合并排序操作,将数据逐层向上迁移。每层完成数据迁移后,空间就会释放并可以被重新写入。在这过程中,如果写入速度大于合并排序操作的速度,由于该层空间还未释放,写入就会阻塞,因而合并排序操作的速度直接影响系统的写入速度。
在合并排序时,一般先选取低层级的某个排序字符串表作为低层级排序字符串表输入,并获取其键控范围,然后选取相邻高层级中和低层级排序字符串表键控范围存在交集的排序字符串表作为合并排序过程的高层级排序字符串表输入,由于高层级排序字符串表大小更大,其键控范围往往对应低层级数个排序字符串表,所以导致高层级排序字符串表重复读写,占用了磁盘带宽、CPU时间片等系统资源,极大地影响了系统的读写性能。
发明内容
针对上述问题,本发明提出了一种基于滑动窗口的LSM数据合并排序方法和装置,用以减轻现有技术中存在的LSM数据结构下排序字符串表反复读写占用系统资源,降低系统读写性能的问题。该方法使用滑动窗口进行排序字符串表筛选,基于排序字符串表的键控范围元数据进行合并成本计算,从而确定排序字符串表合并范围,确定具有最小读写成本的最优合并规划,从而减少排序字符串表反复读写次数,提升系统写入速率,提高基于LSM的数据库的读写性能。
本发明提供的具体技术方案如下:
第一方面,本发明提出一种基于滑动窗口的LSM数据合并排序方法,包括以下步骤:
1)低层级排序字符串表的大小达到阈值时,触发与相邻更高一层级排序字符串表的合并操作;
2)构建面向低层级排序字符串表的滑动窗口;
3)根据合并操作的文件选取指令,利用滑动窗口在低层级中选择一组排序字符串表作为合并操作的低层级排序字符串表输入,同时,选择位于所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表,选择位于所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表;
4)获取所述合并操作的低层级排序字符串表输入的键控范围和所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表的键控范围和所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表的键控范围;
5)确定相邻更高一层级中与所述合并操作的低层级排序字符串表输入的键控范围有交集的排序字符串表,作为合并操作的高层级排序字符串表输入;
6)获取所述合并操作的高层级排序字符串表输入的键控范围;
7)根据所述合并操作的低层级排序字符串表输入的键控范围和所述合并操作的高层级排序字符串表输入的键控范围,预估合并后排序字符串表的键控范围;
8)确定所述合并后排序字符串表的键控范围的左边界值大于所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表的键控范围右边界值,同时确定所述合并后排序字符串表的键控范围的右边界值小于所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表的键控范围左边界值;
9)对所述合并操作的低层级排序字符串表输入和所述合并操作的高层级排序字符串表输入进行合并排序操作。
进一步的,所述获取所述的合并操作的低层级排序字符串表输入的键控范围,包括:
如果低层级排序字符串表输入的个数为1,则所述的合并操作的低层级排序字符串表输入的键控范围即为低层级排序字符串表输入中单个文件的键控范围,如果低层级排序字符串表输入的个数大于1,则所述的合并操作的低层级排序字符串表输入的键控范围为低层级排序字符串表输入中多个文件的键控范围的并集。
进一步的,所述低层级中滑动窗口的初始参数包括:起始位置为0,窗口大小为1,步长为1,每遍历完一次,将起始位置重置为0,步长保持不变为1,窗口大小增加1,以此类推。
进一步的,所述预估合并后排序字符串表的键控范围,包括:将所述低层级排序字符串表输入的键控范围和所述高层级排序字符串表输入的键控范围中的最小键作为合并后排序字符串表的键控范围左边界,将最大键作为合并后排序字符串表的键控范围右边界。
进一步的,当所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表和所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表皆为空时,即滑动窗口选中了低层级中所剩的所有排序字符串表,此时将强制进行合并排序操作。
进一步的,如果合并后排序字符串表键控范围左边界值不大于滑动窗口左边最近的一个排序字符串表键控范围右边界值,或者如果合并后排序字符串表键控范围右边界值不小于滑动窗口右边最近的一个排序字符串表键控范围左边界值,则进行滑动窗口参数更新;所述滑动窗口参数更新包括:滑动窗口的左边界的指针P1和右边界的指针P2都向右移动步长距离,即指向下一个排序字符串表;当滑动窗口右边不存在排序字符串表时,即指针P2下一位置为空时,则重置指针P1,使其指向位置索引为0的排序字符串表,同时重置指针P2,使其指向位置索引为N的排序字符串表,其中N为滑动窗口遍历排序字符串表的次数。
第二方面,本发明提出一种基于滑动窗口的LSM数据合并排序装置,包括:
元数据获取模块,用于获取单个排序字符串表的键控范围或者获取一组排序字符串表的键控范围;
低层级排序字符串表获取模块,用于获取合并操作的低层级排序字符串表输入,获取合并操作的低层级排序字符串表输入之前的最近一个排序字符串表,获取合并操作的低层级排序字符串表输入之后的最近一个排序字符串表,同时依据所述元数据获取模块,获取以上排序字符串表的键控范围;
高层级排序字符串表获取模块,用于获取合并操作的高层级排序字符串表输入,同时依据所述元数据获取模块,获取所述合并操作的高层级排序字符串表输入中排序字符串表的键控范围;
合并判定模块,用于判定是否对所述合并操作的低层级排序字符串表输入和合并操作的高层级排序字符串表输入进行合并排序操作;
合并排序模块,用于统筹合并排序过程,依据维护的滑动窗口,向所述低层级排序字符串表获取模块下发排序字符串表选择命令,得到所述合并操作的低层级排序字符串表输入的键控范围、所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表的键控范围和所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表的键控范围;然后依据所述合并操作的低层级排序字符串表输入的键控范围,向所述高层级排序字符串表获取模块下发排序字符串表选择命令,得到所述合并操作的高层级排序字符串表输入的键控范围;依据以上键控范围信息,向所述合并判定模块下发合并排序判定命令,判定通过后则依据所述低层级排序字符串表获取模块和所述高层级排序字符串表获取模块,获取所述合并操作的低层级排序字符串表输入和所述合并操作的高层级排序字符串表输入,并进行合并排序操作,得到合并后的排序字符串表,将所述合并后的排序字符串表存储在高层级中。
本发明提供的基于滑动窗口的LSM数据合并排序方法和装置,通过获取排序字符串表的键控范围信息,并利用滑动窗口确定具有最小读写成本的最优合并规划,从而大大减少了合并排序操作中排序字符串表的反复读写次数,有效地缓解了系统资源压力,从而提升系统的读写性能。
本发明的主要创新点是:①一种基于滑动窗口的LSM数据合并排序方法;②基于滑动窗口的LSM数据合并排序装置结构。该方法在互联网数据存储领域具有很强的实用性和应用范围,具有很广泛的应用前景。
附图说明
图1为本发明的LSM存储结构示意图;
图2为本发明实施例提出的一种基于滑动窗口的LSM数据合并排序方法的流程图;
图3为本发明实施例提供的一种基于滑动窗口的LSM数据合并排序装置示意图。
具体实施方式
为了使本发明的目的、技术方法及优点更加清楚明白,以下结合附图,对本发明的方法进一步详细说明。
LSM通常有多个层级,为了更简洁直观,此处选取了其中两个层级进行说明,即L1层和L2层,如图1所示,图1为本发明的LSM存储结构示意图,LSM中每级的存储空间大小呈递增趋势,也就是L2层的存储空间大于L1层的存储空间;同时,L1层和L2层中的排序字符串表是按照键控范围有序排列的,同一层级中排序字符串表的键控范围之间是不存在交集的。
当L1层级存储的数据大小超过预设阈值时,选择某个L1层级的排序字符串表作为合并操作的L1层级文件输入,然后在L2层级中选择和所述合并操作的L1层级文件输入的键控范围有交集的排序字符串表作为合并操作的L2层级文件输入,并对所述合并操作的L1层级文件输入和所述合并操作的L2层级文件输入进行合并排序操作。例如:按照轮询规则确定所述合并操作的L1层级文件输入为键控范围为0-90的排序字符串表T11,在L2层中确定所述合并操作的L2层级文件输入,即键控范围为10-100的排序字符串表T21,在L1层的存储空间中对排序字符串表T11和排序字符串表T21进行合并排序操作,具体是,对于相同的键值,只保留最新版本,删除所有旧版本,然后对各键值进行排序,并写入L2层形成排序字符串表。
然而采用上述方法会导致L2层中的排序字符串表反复参与L1层中排序字符串表的合并过程。如图1所示,例如所述在L1层的存储空间中对排序字符串表T11和排序字符串表T21进行合并排序操作,得到键控范围为0-100的排序字符串表,且该排序字符串表写入L2层级中。当按照轮询规则确定所述合并操作的L1层级文件输入为键控范围为95-150的排序字符串表T12时,在L2层中确定所述合并操作的L2层级文件输入,即所述键控范围为0-100的排序字符串表,可见,所述键控范围为0-100的排序字符串表再次参与了所述L1层中排序字符串表的合并过程,尤其在海量数据场景下,该问题更加严重。
为了解决上述问题,本发明对合并排序操作的策略进行了改进,
下面以具体的实施例对本发明的技术方案进行详细说明。
图2是本发明实施例提出的一种基于滑动窗口的LSM数据合并排序方法的流程图,如图2所示,本实施例的方法包括:
S101:L1层级触发和L2层级的合并操作。
S102:构建面向L1层级排序字符串表的滑动窗口。
具体地,面向L1层级的排序字符串表,维护着两个指针P1和P2,其中,P1所指位置索引为滑动窗口的左边界,P2所指位置索引为滑动窗口的右边界,滑动窗口的大小为(P2所指位置索引-P1所指位置索引)+1,初始时P1与P2都指向位置索引为0的排序字符串表。
S103:依据滑动窗口获取L1层级排序字符串表及滑动窗口左右最近的两个排序字符串表。
具体地,获取L1层级中位置处于[P1,P2]中的排序字符串表,和P1-1、P2+1处的排序字符串文件,并获取它们的键控范围信息。例如初始时,滑动窗口选择L1层级中位置索引为0的键控范围为0-90的排序字符串表T11,同时获取位置索引为1的键控范围为95-150的排序字符串表T12。
S104:判断上述L1层级排序字符串表是否为空;若不为空,执行S105,若为空,合并过程结束。
S105:判断上述滑动窗口左右最近的两个排序字符串表是否皆为空,若皆为空,执行S110,反之,执行S106。
S106:依据上述L1层级排序字符串表的键控范围获取L2层级排序字符串表。
具体地,获取L2层级中键控范围和上述L1层级排序字符串表的键控范围存在交集的排序字符串表。例如,在L2层级中选择排序字符串表T21,因为其键控范围10-100和上述键控范围为0-90的排序字符串表T11存在键控范围交集。
S107:预估合并后排序字符串表键控范围。
具体地,将所述L1层级排序字符串表和L2层级排序字符串表中最小键作为合并后排序字符串表的键控范围左边界,将最大键作为合并后排序字符串表的键控范围右边界。例如,键控范围为0-90的L1层级排序字符串表T11和键控范围为10-100的L2层级排序字符串表T21合并后排序字符串表的键控范围为0-100。
S108:判断合并后排序字符串表键控范围左边界值是否大于滑动窗口左边最近的一个排序字符串表键控范围右边界值,若大于,执行S109,反之,执行S111。
具体地,上述合并后排序字符串表键控范围左边界值为0,滑动窗口左边最近的一个排序字符串表为空,因而不做比较。
S109:判断合并后排序字符串表键控范围右边界值是否小于滑动窗口右边最近的一个排序字符串表键控范围左边界值,若小于,执行S110,反之,执行S111。
具体地,上述合并后排序字符串表键控范围右边界值为100,滑动窗口右边最近的一个排序字符串表键控范围左边界值为95,100大于95,因而执行S111。
S110:将上述L1层级排序字符串表和L2层级排序字符串表进行合并排序操作。
具体地,将L1层级排序字符串表和L2层级排序字符串表从磁盘加载进内存中,在内存中遍历其内部键值对,对于相同的键值,只保留最新版本,删除所有旧版本,然后对各键值进行排序,并写入L2层形成合并后的排序字符串表。
S111:滑动窗口参数更新。
具体地,例如更新所述初始时指针P1和指针P2指向信息,指针P1和指针P2都向右移动步长距离,即指向下一个排序字符串表。当滑动窗口右边不存在排序字符串表时,即指针P2下一位置为空时,则重置指针P1,使其指向位置索引为0的排序字符串表,同时重置指针P2,使其指向位置索引为N的排序字符串表,其中N为滑动窗口遍历排序字符串表的次数。
图3是本发明实施例提供的一种基于滑动窗口的LSM数据合并排序装置示意图,如图3所示,本实施例的装置包括:元数据获取模块、低层级排序字符串表获取模块、高层级排序字符串表获取模块、合并判定模块和合并排序模块。
所述元数据获取模块具体用于获取排序字符串表的键控范围,具体地,对于单个排序字符串表,将最小键作为排序字符串表键控范围的左边界值,将最大键作为排序字符串表键控范围的右边界值;对于一组排序字符串表,将分别获取每个排序字符串表的键控范围,并对所述每个排序字符串表的键控范围取并集,作为该组排序字符串表的键控范围。
所述低层级排序字符串表获取模块具体用于依据滑动窗口参数,获取低层级中位于滑动窗口中的排序字符串表以及滑动窗口左右最近的两个排序字符串表,同时,访问元数据获取模块,获取上述排序字符串表的键控范围。
所述高层级排序字符串表获取模块具体用于依据低层级排序字符串表键控范围,获取高层级中与上述低层级排序字符串表键控范围存在交集的排序字符串表,同时,访问元数据获取模块,获取上述排序字符串表的键控范围。
所述合并判定模块具体用于判定是否对所述低层级排序字符串表和所述高层级排序字符串表进行合并排序操作。具体地,依据所述低层级排序字符串表键控范围和所述高层级排序字符串表键控范围,预估出合并后排序字符串表的键控范围,将所述低层级排序字符串表和高层级排序字符串表中最小键作为合并后排序字符串表的键控范围左边界,将最大键作为合并后排序字符串表的键控范围右边界。若所述合并后排序字符串表的键控范围左边界大于所述滑动窗口左边最近的一个排序字符串表键控范围右边界值,且所述合并后排序字符串表的键控范围右边界小于所述滑动窗口右边最近的一个排序字符串表键控范围左边界值,则判定通过,反之,则判定不通过。
所述合并排序模块具体用于选取所述低层级排序字符串表和所述高层级排序字符串表并进行合并排序操作。具体地,模块内部维护着滑动窗口,依据滑动窗口参数,包括滑动窗口起始位置、窗口大小和滑动步长,访问低层级排序字符串表获取模块,获取位于滑动窗口内的低层级排序字符串表及滑动窗口左右最近的两个排序字符串表键控范围,依据所述位于滑动窗口内的低层级排序字符串表键控范围,访问高层级排序字符串表获取模块,获取高层级排序字符串表键控范围。进一步地,依据所述低层级排序字符串表键控范围、滑动窗口左右最近的两个排序字符串表键控范围和高层级排序字符串表键控范围,访问合并判定模块,若判定不通过,则更新滑动窗口参数;若判定通过,则再次访问低层级排序字符串表获取模块获取低层级排序字符串表数据,依据高层级排序字符串表键控范围再次访问高层级排序字符串表获取模块获取高层级排序字符串表数据,并将上述排序字符串表数据都加载进内存中,进一步遍历其中的键值对,对于相同的键值,依据时间戳信息,只保留最新版本,删除所有旧版本,然后对各键值对按键进行排序,并写入高层级形成新的排序字符串表。
本发明的另一实施例提供一种计算机设备(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
本发明的另一实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
以上公开的本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例所公开的内容,本发明的保护范围以权利要求书界定的范围为准。
Claims (10)
1.一种基于滑动窗口的LSM数据合并排序方法,其特征在于,包括以下步骤:
低层级排序字符串表的大小达到阈值时,触发与相邻更高一层级排序字符串表的合并操作;
构建面向低层级排序字符串表的滑动窗口;
根据合并操作的文件选取指令,利用滑动窗口在低层级中选择一组排序字符串表作为合并操作的低层级排序字符串表输入,同时,选择位于所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表,选择位于所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表;
获取所述合并操作的低层级排序字符串表输入的键控范围和所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表的键控范围和所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表的键控范围;
确定相邻更高一层级中与所述合并操作的低层级排序字符串表输入的键控范围有交集的排序字符串表,作为合并操作的高层级排序字符串表输入;
获取所述合并操作的高层级排序字符串表输入的键控范围;
根据所述合并操作的低层级排序字符串表输入的键控范围和所述合并操作的高层级排序字符串表输入的键控范围,预估合并后排序字符串表的键控范围;
确定所述合并后排序字符串表的键控范围的左边界值大于所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表的键控范围右边界值,同时确定所述合并后排序字符串表的键控范围的右边界值小于所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表的键控范围左边界值;
对所述合并操作的低层级排序字符串表输入和所述合并操作的高层级排序字符串表输入进行合并排序操作。
2.根据权利要求1所述的方法,其特征在于,所述滑动窗口的初始参数包括:起始位置为0,窗口大小为1,步长为1,每遍历完一次,将起始位置重置为0,步长保持不变为1,窗口大小增加1,以此类推。
3.根据权利要求1所述的方法,其特征在于,所述构建面向低层级排序字符串表的滑动窗口,包括:面向低层级排序字符串表,维护两个指针P1和P2,其中,P1所指位置索引为滑动窗口的左边界,P2所指位置索引为滑动窗口的右边界,滑动窗口的大小为(P2所指位置索引-P1所指位置索引)+1,初始时P1与P2都指向位置索引为0的排序字符串表。
4.根据权利要求1所述的方法,其特征在于,所述获取所述合并操作的低层级排序字符串表输入的键控范围,包括:
如果低层级排序字符串表输入的个数为1,则所述的合并操作的低层级排序字符串表输入的键控范围即为低层级排序字符串表输入中单个文件的键控范围;
如果低层级排序字符串表输入的个数大于1,则所述的合并操作的低层级排序字符串表输入的键控范围为低层级排序字符串表输入中多个文件的键控范围的并集。
5.根据权利要求1所述的方法,其特征在于,所述预估合并后排序字符串表的键控范围,包括:将所述低层级排序字符串表输入的键控范围和所述高层级排序字符串表输入的键控范围中的最小键作为合并后排序字符串表的键控范围左边界,将最大键作为合并后排序字符串表的键控范围右边界。
6.根据权利要求1所述的方法,其特征在于,当所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表和所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表皆为空时,强制进行合并排序操作。
7.根据权利要求1所述的方法,其特征在于,如果合并后排序字符串表键控范围左边界值不大于滑动窗口左边最近的一个排序字符串表键控范围右边界值,或者如果合并后排序字符串表键控范围右边界值不小于滑动窗口右边最近的一个排序字符串表键控范围左边界值,则进行滑动窗口参数更新;所述滑动窗口参数更新包括:滑动窗口的左边界的指针P1和右边界的指针P2都向右移动步长距离,即指向下一个排序字符串表;当滑动窗口右边不存在排序字符串表时,即指针P2下一位置为空时,则重置指针P1,使其指向位置索引为0的排序字符串表,同时重置指针P2,使其指向位置索引为N的排序字符串表,其中N为滑动窗口遍历排序字符串表的次数。
8.一种基于滑动窗口的LSM数据合并排序装置,其特征在于,包括:
元数据获取模块,用于获取单个排序字符串表的键控范围或者获取一组排序字符串表的键控范围;
低层级排序字符串表获取模块,用于获取合并操作的低层级排序字符串表输入,获取合并操作的低层级排序字符串表输入之前的最近一个排序字符串表,获取合并操作的低层级排序字符串表输入之后的最近一个排序字符串表,同时依据所述元数据获取模块,获取以上排序字符串表的键控范围;
高层级排序字符串表获取模块,用于获取合并操作的高层级排序字符串表输入,同时依据所述元数据获取模块,获取所述合并操作的高层级排序字符串表输入中排序字符串表的键控范围;
合并判定模块,用于判定是否对所述合并操作的低层级排序字符串表输入和合并操作的高层级排序字符串表输入进行合并排序操作;
合并排序模块,用于统筹合并排序过程,依据维护的滑动窗口,向所述低层级排序字符串表获取模块下发排序字符串表选择命令,得到所述合并操作的低层级排序字符串表输入的键控范围、所述合并操作的低层级排序字符串表输入之前的最近一个排序字符串表的键控范围和所述合并操作的低层级排序字符串表输入之后的最近一个排序字符串表的键控范围;然后依据所述合并操作的低层级排序字符串表输入的键控范围,向所述高层级排序字符串表获取模块下发排序字符串表选择命令,得到所述合并操作的高层级排序字符串表输入的键控范围;依据以上键控范围信息,向所述合并判定模块下发合并排序判定命令,判定通过后则依据所述低层级排序字符串表获取模块和所述高层级排序字符串表获取模块,获取所述合并操作的低层级排序字符串表输入和所述合并操作的高层级排序字符串表输入,并进行合并排序操作,得到合并后的排序字符串表,将所述合并后的排序字符串表存储在高层级中。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一项所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410261182.1A CN118069891A (zh) | 2024-03-07 | 2024-03-07 | 一种基于滑动窗口的lsm数据合并排序方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410261182.1A CN118069891A (zh) | 2024-03-07 | 2024-03-07 | 一种基于滑动窗口的lsm数据合并排序方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118069891A true CN118069891A (zh) | 2024-05-24 |
Family
ID=91101575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410261182.1A Pending CN118069891A (zh) | 2024-03-07 | 2024-03-07 | 一种基于滑动窗口的lsm数据合并排序方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118069891A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095287A (zh) * | 2014-05-14 | 2015-11-25 | 华为技术有限公司 | Lsm数据合并排序方法和装置 |
CN114691039A (zh) * | 2022-03-22 | 2022-07-01 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114741028A (zh) * | 2022-03-18 | 2022-07-12 | 华中科技大学 | 一种基于ocssd的持久键值存储方法、设备及系统 |
WO2022246953A1 (zh) * | 2021-05-25 | 2022-12-01 | 南京大学 | 一种面向lsm树的键值存储方法和存储系统 |
CN115858467A (zh) * | 2022-11-28 | 2023-03-28 | 中国建设银行股份有限公司 | 针对键值数据库的文件处理方法、装置、电子设备和介质 |
-
2024
- 2024-03-07 CN CN202410261182.1A patent/CN118069891A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095287A (zh) * | 2014-05-14 | 2015-11-25 | 华为技术有限公司 | Lsm数据合并排序方法和装置 |
WO2022246953A1 (zh) * | 2021-05-25 | 2022-12-01 | 南京大学 | 一种面向lsm树的键值存储方法和存储系统 |
CN114741028A (zh) * | 2022-03-18 | 2022-07-12 | 华中科技大学 | 一种基于ocssd的持久键值存储方法、设备及系统 |
CN114691039A (zh) * | 2022-03-22 | 2022-07-01 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN115858467A (zh) * | 2022-11-28 | 2023-03-28 | 中国建设银行股份有限公司 | 针对键值数据库的文件处理方法、装置、电子设备和介质 |
Non-Patent Citations (1)
Title |
---|
崔甲;王伟平;陈重韬;孟丹;: "基于滑动窗口的数据流字符串近似查询", 高技术通讯, no. 09, 15 September 2014 (2014-09-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224237B (zh) | 一种数据存储方法及装置 | |
US9262458B2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
CN107665219A (zh) | 一种日志管理方法及装置 | |
CN112463058B (zh) | 一种碎片数据整理方法、装置及存储节点 | |
US20080162591A1 (en) | Method of Logging Transactions and a Method of Reversing a Transaction | |
CN109189343B (zh) | 一种元数据落盘方法、装置、设备及计算机可读存储介质 | |
EP1850250A1 (en) | Method and system for renewing an index | |
US7366725B2 (en) | Method and apparatus for data validation in multidimensional database | |
CN118069891A (zh) | 一种基于滑动窗口的lsm数据合并排序方法和装置 | |
CN111752715A (zh) | 大量请求量下的系统优化方法、装置、设备及存储介质 | |
US7966333B1 (en) | User segment population techniques | |
CN110413617B (zh) | 一种根据数据量的大小动态调节哈希表组的方法 | |
Kvet | Database Block Management using Master Index | |
CN114841806A (zh) | 一种实时转账链路下的模式匹配系统 | |
CN110990394B (zh) | 分布式面向列数据库表的行数统计方法、装置和存储介质 | |
CN108595502B (zh) | 评估数据库服务性能的方法、装置及计算机可读存储介质 | |
CN113610629A (zh) | 一种从大规模特征集中筛选客户数据特征的方法及装置 | |
CN111488496A (zh) | 一种基于滑动窗口的Tango树构建方法及系统 | |
CN113052515A (zh) | 一种基于数据并发处理的教学考评方法及系统 | |
CN112015791A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
US20080270479A1 (en) | System and Method for Minimization of Calculation Retrieval in a Multidimensional Database | |
US20070220026A1 (en) | Efficient caching for large scale distributed computations | |
CN115391564B (zh) | 一种基于webworker构建关系图谱的方法 |
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 |