CN108804625B - 一种lsm树的优化方法、装置及计算机设备 - Google Patents

一种lsm树的优化方法、装置及计算机设备 Download PDF

Info

Publication number
CN108804625B
CN108804625B CN201810550710.XA CN201810550710A CN108804625B CN 108804625 B CN108804625 B CN 108804625B CN 201810550710 A CN201810550710 A CN 201810550710A CN 108804625 B CN108804625 B CN 108804625B
Authority
CN
China
Prior art keywords
index key
data
leaf node
lsm tree
target leaf
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.)
Active
Application number
CN201810550710.XA
Other languages
English (en)
Other versions
CN108804625A (zh
Inventor
阳振坤
席华锋
韩富晟
肖金亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810550710.XA priority Critical patent/CN108804625B/zh
Publication of CN108804625A publication Critical patent/CN108804625A/zh
Priority to TW108106325A priority patent/TWI710918B/zh
Priority to PCT/CN2019/077404 priority patent/WO2019228009A1/zh
Application granted granted Critical
Publication of CN108804625B publication Critical patent/CN108804625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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

公开了一种LSM树的优化方法、装置及计算机设备,该方法包括:确定出LSM树中,所指向的数据已被删除的目标叶子节点;在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记。

Description

一种LSM树的优化方法、装置及计算机设备
技术领域
本说明书实施例涉及数据处理技术领域,尤其涉及一种LSM树的优化方法、装置及计算机设备。
背景技术
LSM树(Log-Structured Merge Tree,日志结构的合并树)是一种基于硬盘的数据结构,其包括动态数据与静态数据,动态数据和静态数据存储的是数据的修改增量。在访问LSM树的过程中,依次读取其动态数据和静态数据,将所读取到的结果进行合并,以得到最终的读取结果。
由于LSM树保存的是数据的修改增量,从而当LSM树中保存有大量的用于表示数据已被删除的修改增量时,在进行数据读取过程中,需要遍历大量的无用数据,才能读取到有效的数据,这也就导致数据的读取性能下降。
发明内容
针对上述技术问题,本说明书实施例提供一种LSM树的优化方法、装置及,技术方案如下:
根据本说明书实施例的第一方面,提供一种LSM树的优化方法,所述方法包括:
确定出LSM树中,所指向的数据已被删除的目标叶子节点;
在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记。
根据本说明书实施例的第二方面,提供一种LSM树的优化装置,所述装置包括:
目标确定模块,用于确定出LSM树中,所指向的数据已被删除的目标叶子节点;
第一添加模块,用于在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记。
根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现本说明书实施例提供的LSM树的优化方法。
本说明书实施例所提供的技术方案,通过确定出LSM树中,所指向的数据已被删除的目标叶子节点,在该LSM树的动态数据中,为所确定出的目标叶子节点添加删除标记,由于在对LSM树进行数据访问时,首先访问LSM树的动态数据,再访问LSM树的静态数据,从而在动态数据中,为那些所指向的数据已被删除的目标叶子节点添加删除标记,可以实现在访问动态数据时,直接跳过具有删除标记的叶子节点,从而提高数据访问效率,进一步,在访问静态数据时,也无需重复访问具有删除标记的叶子节点,从而提高数据访问效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为LSM树的一种示例;
图2为本说明书一示例性实施例提供的一种LSM树的优化方法的实施例流程图;
图3为LSM树的静态数据的一种示例;
图4为在LSM树的动态数据中添加删除标记的一种示例;
图5为在LSM树的动态数据中添加删除标记的另一种示例;
图6为本说明书一示例性实施例提供的一种LSM树的优化装置的实施例框图;
图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
LSM树是一种基于硬盘的数据结构,其代表数据库包括Hbase、NessDB、LevelDB等。LSM树的存储引擎和B+树的存储引擎一样,同样支持增、删、读、改、顺序扫描操作,而且其通过批量存储技术可以有效规避磁盘随机写入问题,具体的,其核心思路是,假定内存足够大,因此,不需要每次有数据更新就必须将数据写入磁盘中,而可以先将最新的数据驻留在内存中,等到内存中的数据达到指定的大小限制后,再使用归并排序的方式将内存中的数据合并追加到磁盘队尾,基于此,也就可以将LSM树所存储的数据分为静态数据和动态数据,其中,动态数据是指内存中的数据,静态数据中的数据是指存储于持久化介质上,例如磁盘中的数据。本领域技术人员可以理解的是,LSM树中存储的是数据的修改增量,也就是数据的变更信息。例如,如图1所示,为LSM树的一种示例。
在访问LSM树的过程中,需要依次读取其动态数据和静态数据,将所读取到的结果进行合并,以得到最终的读取结果。
目前,在访问LSM的过程中,存在两个问题:
其一:当频繁地在动态数据中插入用于表示数据已被删除的修改增量时,也即动态数据中保存了大量的删除记录时,在访问动态数据时,需要遍历大量无用的数据,导致数据的读取性能下降。例如,假设通过索引键范围[1,50]查找数据,而如图1所示,在索引键范围[1,50]内存在大量的已被删除的数据,例如索引键为3至8的叶子节点所指向的数据,索引键为15至31的叶子节点所指向的数据,以及索引键为32和索引键为49的叶子节点所指向的数据,那么,在现有技术中,仍需要逐个遍历叶子节点,最终才能得到索引键为9至14,以及索引键为33至48的叶子节点所指向的数据。
其二:在访问静态数据时,依旧需要遍历大量无用的数据,导致数据的查询性能下降。例如,在访问图1所示例的静态数据时,依旧需要逐个遍历索引键为3至99的叶子节点所指向的数据,并无法跳过所指向的数据已被删除的叶子节点。
基于此,本说明书实施例提供一种LSM树的优化方法,在该方法中,考虑到在访问LSM树时,先访问其动态数据,再访问其静态数据,从而在LSM树的动态数据中,为所指向的数据已被删除的叶子节点添加用于表示数据已被删除的删除标记,以实现后续在访问LSM树时,若在动态数据中查找到带有删除标记的叶子节点,则直接跳过该叶子节点,并且,后续在查找静态数据时,也不再查找具有相同索引键的叶子节点,从而提升数据查询性能。
如下,示出下述实施例对上述LSM树的优化方法进行详细说明:
请参见图2,为本说明书一示例性实施例提供的一种LSM树的优化方法的实施例流程图,该方法包括以下步骤:
步骤202:确定出LSM树中,所指向的数据已被删除的目标叶子节点。
在本说明书实施例中,可以分别针对动态数据和静态数据,确定出所指向的数据已被删除的叶子节点,为了描述方便,将所确定出的,也即所指向的数据已被删除的叶子节点称为目标叶子节点。
如下,分别从动态数据和静态数据两方面进行说明:
首先,动态数据:
以图1所示例的动态数据为例,假设通过索引键范围[1,50]查找数据,在查询过程中,可以检测到多个索引键连续的叶子节点所指向的数据已被删除,例如,索引键为3至8的叶子节点,索引键为15至31的叶子节点,那么,则可以将这些叶子节点确定为目标叶子节点。
其次,静态数据:
以图3所示例的静态数据为例,假设通过索引键范围[1,50]查找数据,在查询过程中,可以检测到多个索引键连续的叶子节点所指向的数据已被删除,例如,索引键为3至15的叶子节点,那么,则可以将这些叶子节点确定为目标叶子节点。
步骤204:在LSM树的动态数据中,为目标叶子节点添加删除标记。
在本步骤中,仍分别从动态数据和静态数据两方面进行说明:
首先,动态数据:
基于上述步骤202中的相关举例,在动态数据中所确定出的目标叶子节点包括:索引键为3至8的叶子节点,索引键15至31的叶子节点,那么,在本步骤中,则可以为这些目标叶子节点添加删除标记,例如,如图4所示,在图4中,“dead”表示删除标记,本领域技术人员可以理解的是,以“dead”作为删除标记仅仅作为举例,在实际应用中,删除标记可以以其它形式体现,本说明书实施例对此不作限制。
此外,在本说明书实施例中还提出,若在LSM树的动态数据中,任一枝节点下的所有叶子节点均被添加有删除标记,则为该枝节点添加删除标记。例如,如图4所示,在“15”这一枝节点下,所有的叶子节点均被添加有删除标记,则可以为该枝节点也添加删除标记,如图4所示。通过该种处理,后续在访问LSM树的动态数据时,则在访问完“3”这一枝节点下的所有叶子节点后,可以直接跳过“15”这一枝节点,访问“32”这一枝节点,从而提高数据访问效率。
此外,在本说明书实施例中,考虑到后续进一步提高在静态数据中进行数据访问的效率,可以进一步判断被添加删除标记的目标叶子节点中,具有最大索引键的目标叶子节点所指向的叶子节点的索引键是否与该最大索引键连续,若连续,则可以不做处理,若不连续,则可以在该具有最大索引键的目标叶子节点之后插入一个虚拟叶子节点,该虚拟叶子节点的索引键为该最大索引键加1。
举例来说,以被添加删除标记的目标叶子节点为索引键为3至8的叶子节点为例,在该些目标叶子节点中,最大索引键为8,如图4所示,索引键为8的叶子节点所指向的下一个叶子节点的索引键为9,与8连续,从而则可以不做处理。
再举例来说,以被添加删除标记的目标叶子节点为索引键为15至31的叶子节点为例,在该些目标叶子节点中,最大索引键为31,如图4所示,索引键为31的叶子节点不再指向其他叶子节点,那么,则可以在该叶子节点之后插入一个虚拟叶子节点,该虚拟叶子节点的索引键为32,例如,如图4所示。当然,本领域技术人员可以理解的是,该虚拟叶子节点不具有删除标记。
通过该种处理,可以进一步提高在静态数据中进行数据访问的效率,例如,在访问动态数据过程中,当遍历到索引键为9的叶子节点时,发现其不具有删除标记,则可以将[3,8]这一索引键范围看作被删除数据的索引键范围,后续,在访问静态数据时,则可以不再访问索引键属于这一范围的叶子节点。
其次,静态数据:
基于上述步骤202中的相关举例,在静态数据中所确定出的目标叶子节点包括索引键为3至15的叶子节点,此时,则可以首先确定动态数据中是否存在索引键为3至15的目标叶子节点,若不存在,则可以将目标叶子节点中,具有最大索引键和最小索引键的两个目标叶子节点插入LSM树的动态数据中,在LSM树的动态数据中,为所插入的目标叶子节点添加删除标记。
例如,在索引键为3至15的叶子节点中,最大索引键为15,最小索引键为3,按照前述描述,将索引键为3和15的目标叶子节点插入LSM树的动态数据中,并在动态数据中,为所插入的目标叶子节点添加删除标记,具体如图5所示。
此外,可以进一步判断被添加删除标记的目标叶子节点中,具有最大索引键的目标叶子节点所指向的叶子节点的索引键是否与该最大索引键连续,若连续,则可以不做处理,若不连续,则可以在索引键为该最大索引键的目标叶子节点之后插入一个虚拟叶子节点,该虚拟叶子节点的索引键为该最大索引键加1。
举例来说,在图5中,被添加删除标记的目标叶子节点为索引键为3和15的叶子节点,其中的最大索引键为15,而在索引键为15的这一叶子节点之后,不具有其他叶子节点,则可以在该叶子节点之后,插入一个索引键为16的虚拟叶子节点,具体如图5所示。
通过该种后续,后续在访问动态数据过程中,当遍历到索引键为16的虚拟叶子节点时,发现其不具有删除标记,则可以将[3,15]看作被删除数据的索引键范围,后续,在访问静态数据时,则可以不再访问索引键属于这一范围的叶子节点,从而提高在静态数据中进行数据访问的效率。
本说明书实施例所提供的技术方案,通过确定出LSM树中,所指向的数据已被删除的目标叶子节点,在该LSM树的动态数据中,为所确定出的目标叶子节点添加删除标记,由于在对LSM树进行数据访问时,首先访问LSM树的动态数据,再访问LSM树的静态数据,从而在动态数据中,为那些所指向的数据已被删除的目标叶子节点添加删除标记,可以实现在访问动态数据时,直接跳过具有删除标记的叶子节点,从而提高数据访问效率,进一步,在访问静态数据时,也无需重复访问具有删除标记的叶子节点,从而提高数据访问效率。
相应于上述方法实施例,本说明书实施例还提供一种LSM树的优化装置,请参见图6,为本说明书一示例性实施例提供的一种LSM树的优化装置的实施例框图,该装置可以包括:目标确定模块61、第一添加模块62。
其中,目标确定模块61,可以用于确定出LSM树中,所指向的数据已被删除的目标叶子节点;
第一添加模块62,可以用于在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记。
在一实施例中,所述装置还可以包括(图6中未示出):
第二添加模块,用于在所述LSM树的动态数据中,若检测到任一枝节点下的所有叶子节点均被添加有删除标记,则为所述枝节点添加删除标记。
在一实施例中,所述目标确定模块61可以具体用于:
分别针对LSM树的动态数据和静态数据,确定出所指向的数据已被删除,且索引键连续的两个以上目标叶子节点。
在一实施例中,所述第一添加模块62可以包括(图6中未示出):
插入子模块,用于若针对LSM树的静态数据确定出目标叶子节点,分别将所确定出的目标叶子节点中,具有最大索引键和最小索引键的两个目标叶子节点插入所述LSM树的动态数据中;
标记添加子模块,用于在所述LSM树的动态数据中,为所插入的目标叶子节点添加删除标记。
在一实施例中,所述装置还可以包括(图6中未示出):
判断模块,用于判断被添加删除标记的目标叶子节点中,具有最大索引键的目标叶子节点所指向的叶子节点的索引键是否与所述最大索引键连续;
虚拟节点插入模块,用于若不连续,则在所述具有最大索引键的目标叶子节点之后插入虚拟叶子节点,其中,所述虚拟叶子节点的索引键为所述最大索引键加1。
可以理解的是,目标确定模块61与第一添加模块62作为两种功能独立的模块,既可以如图6所示同时配置在装置中,也可以分别单独配置在装置中,因此图6所示的结构不应理解为对本说明书实施例方案的限定。
此外,上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的LSM树的优化方法。该方法至少包括:确定出LSM树中,所指向的数据已被删除的目标叶子节点;在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记。
图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器710、存储器720、输入/输出接口730、通信接口740和总线750。其中处理器710、存储器720、输入/输出接口730和通信接口740通过总线750实现彼此之间在设备内部的通信连接。
处理器710可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器720可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器720可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器720中,并由处理器710来调用执行。
输入/输出接口730用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图7中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口740用于连接通信模块(图7中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线750包括一通路,在设备的各个组件(例如处理器710、存储器720、输入/输出接口730和通信接口740)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器710、存储器720、输入/输出接口730、通信接口740以及总线750,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的LSM树的优化方法。该方法至少包括:确定出LSM树中,所指向的数据已被删除的目标叶子节点;在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (9)

1.一种LSM树的优化方法,所述方法包括:
确定出LSM树的动态数据和静态数据中,所指向的数据已被删除的目标叶子节点;所述动态数据是指内存中的数据,所述静态数据是指存储于持久化介质上的数据;
在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记。
2.根据权利要求1所述的方法,所述方法还包括:
在所述LSM树的动态数据中,若检测到任一枝节点下的所有叶子节点均被添加有删除标记,则为所述枝节点添加删除标记。
3.根据权利要求1所述的方法,在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记,包括:
若针对LSM树的静态数据确定出目标叶子节点,且确定出的所有目标叶子节点的索引键连续,则分别将所确定出的目标叶子节点中,具有最大索引键和最小索引键的两个目标叶子节点插入所述LSM树的动态数据中;
在所述LSM树的动态数据中,为所插入的目标叶子节点添加删除标记。
4.根据权利要求3所述的方法,在所述LSM树的动态数据中,为所插入的目标叶子节点添加删除标记之后,所述方法还包括:
判断插入的目标叶子节点中,具有最大索引键的目标叶子节点所指向的叶子节点的索引键是否与所述最大索引键连续;
若不连续,则在所述具有最大索引键的目标叶子节点之后插入虚拟叶子节点,其中,所述虚拟叶子节点的索引键为所述最大索引键加1,以在后续访问动态数据过程中,当遍历到所述虚拟叶子节点时,根据所述虚拟叶子节点不具有删除标记,将由所述最小索引键和最大索引键组成的索引键范围确定为被删除数据的索引键范围,以在后续访问静态数据时,不再访问索引键属于所述索引键范围的叶子节点。
5.一种LSM树的优化装置,所述装置包括:
目标确定模块,用于确定出LSM树的动态数据和静态数据中,所指向的数据已被删除的目标叶子节点;所述动态数据是指内存中的数据,所述静态数据是指存储于持久化介质上的数据;
第一添加模块,用于在所述LSM树的动态数据中,为所述目标叶子节点添加删除标记。
6.根据权利要求5所述的装置,所述装置还包括:
第二添加模块,用于在所述LSM树的动态数据中,若检测到任一枝节点下的所有叶子节点均被添加有删除标记,则为所述枝节点添加删除标记。
7.根据权利要求5所述的装置,所述第一添加模块包括:
插入子模块,用于若针对LSM树的静态数据确定出目标叶子节点,且确定出的所有目标叶子节点的索引键连续,则分别将所确定出的目标叶子节点中,具有最大索引键和最小索引键的两个目标叶子节点插入所述LSM树的动态数据中;
标记添加子模块,用于在所述LSM树的动态数据中,为所插入的目标叶子节点添加删除标记。
8.根据权利要求7所述的装置,所述装置还包括:
判断模块,用于判断插入的目标叶子节点中,具有最大索引键的目标叶子节点所指向的叶子节点的索引键是否与所述最大索引键连续;
虚拟节点插入模块,用于若不连续,则在所述具有最大索引键的目标叶子节点之后插入虚拟叶子节点,其中,所述虚拟叶子节点的索引键为所述最大索引键加1,以在后续访问动态数据过程中,当遍历到所述虚拟叶子节点时,根据所述虚拟叶子节点不具有删除标记,将由所述最小索引键和最大索引键组成的索引键范围确定为被删除数据的索引键范围,以在后续访问静态数据时,不再访问索引键属于所述索引键范围的叶子节点。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至4任一项所述的方法。
CN201810550710.XA 2018-05-31 2018-05-31 一种lsm树的优化方法、装置及计算机设备 Active CN108804625B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810550710.XA CN108804625B (zh) 2018-05-31 2018-05-31 一种lsm树的优化方法、装置及计算机设备
TW108106325A TWI710918B (zh) 2018-05-31 2019-02-25 一種lsm樹的優化方法、裝置及電腦設備
PCT/CN2019/077404 WO2019228009A1 (zh) 2018-05-31 2019-03-08 一种lsm树的优化方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810550710.XA CN108804625B (zh) 2018-05-31 2018-05-31 一种lsm树的优化方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN108804625A CN108804625A (zh) 2018-11-13
CN108804625B true CN108804625B (zh) 2020-05-12

Family

ID=64089726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810550710.XA Active CN108804625B (zh) 2018-05-31 2018-05-31 一种lsm树的优化方法、装置及计算机设备

Country Status (3)

Country Link
CN (1) CN108804625B (zh)
TW (1) TWI710918B (zh)
WO (1) WO2019228009A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804625B (zh) * 2018-05-31 2020-05-12 阿里巴巴集团控股有限公司 一种lsm树的优化方法、装置及计算机设备
CN114398378B (zh) * 2022-03-25 2022-11-01 北京奥星贝斯科技有限公司 确定索引代价的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142015A (zh) * 2011-01-30 2011-08-03 唐凌遥 家族树的节点处理系统及家族树的节点处理方法
CN102542057A (zh) * 2011-12-29 2012-07-04 北京大学 基于固态硬盘的高维数据索引结构设计方法
CN103744961A (zh) * 2014-01-06 2014-04-23 清华大学 用可重构的文件系统目录树提高非易失性存储寿命的方法
CN105138622A (zh) * 2015-08-14 2015-12-09 中国科学院计算技术研究所 用于lsm树存储系统的插入操作及负载的读取和合并方法
CN105224237A (zh) * 2014-05-26 2016-01-06 华为技术有限公司 一种数据存储方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727598B2 (en) * 2012-12-19 2017-08-08 Salesforce.Com, Inc. Systems, methods, and apparatuses for fixing logical or physical corruption in databases using LSM trees
US9218383B2 (en) * 2013-03-15 2015-12-22 International Business Machines Corporation Differentiated secondary index maintenance in log structured NoSQL data stores
CN103198150B (zh) * 2013-04-24 2016-04-20 清华大学 一种大数据索引方法及系统
CN105447059B (zh) * 2014-09-29 2019-10-01 华为技术有限公司 一种数据处理方法及装置
US9324367B1 (en) * 2015-05-05 2016-04-26 Futurewei Technologies, Inc. SMR-aware append-only file system
US9959207B2 (en) * 2015-06-25 2018-05-01 Vmware, Inc. Log-structured B-tree for handling random writes
CN105159915B (zh) * 2015-07-16 2018-07-10 中国科学院计算技术研究所 可动态适应的lsm树合并方法及系统
US10795871B2 (en) * 2016-09-26 2020-10-06 Vmware, Inc. Key-value stores implemented using fragmented log-structured merge trees
CN108804625B (zh) * 2018-05-31 2020-05-12 阿里巴巴集团控股有限公司 一种lsm树的优化方法、装置及计算机设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142015A (zh) * 2011-01-30 2011-08-03 唐凌遥 家族树的节点处理系统及家族树的节点处理方法
CN102542057A (zh) * 2011-12-29 2012-07-04 北京大学 基于固态硬盘的高维数据索引结构设计方法
CN103744961A (zh) * 2014-01-06 2014-04-23 清华大学 用可重构的文件系统目录树提高非易失性存储寿命的方法
CN105224237A (zh) * 2014-05-26 2016-01-06 华为技术有限公司 一种数据存储方法及装置
CN105138622A (zh) * 2015-08-14 2015-12-09 中国科学院计算技术研究所 用于lsm树存储系统的插入操作及负载的读取和合并方法

Also Published As

Publication number Publication date
TW202004521A (zh) 2020-01-16
TWI710918B (zh) 2020-11-21
WO2019228009A1 (zh) 2019-12-05
CN108804625A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN108932286B (zh) 一种数据查询方法及装置
CN109359118B (zh) 一种数据写入方法及装置
CN113553300B (zh) 文件的处理方法、装置、可读介质和电子设备
CN111858520A (zh) 一种区块链节点数据分离存储的方法和装置
CN108804625B (zh) 一种lsm树的优化方法、装置及计算机设备
CN111241040B (zh) 信息获取方法、装置、电子设备及计算机存储介质
CN111506580B (zh) 一种基于中心化块链式账本的交易存储方法
CN111190899B (zh) 一种埋点数据处理方法、装置、服务器及存储介质
CN109359117B (zh) 一种卡片数据的更新方法和装置
CN117149777B (zh) 一种数据查询方法、装置、设备及存储介质
CN110019538B (zh) 一种数据表切换方法及装置
CN115185458A (zh) 一种数据写入方法、装置、存储介质和计算机设备
CN109656805B (zh) 用于业务分析的代码链路的生成方法、装置及业务服务器
CN114356912A (zh) 一种向数据库写入数据的方法及计算机设备
CN113836154B (zh) 一种数据库切换方法及装置
CN113342270A (zh) 卷卸载方法、装置和电子设备
CN113419792A (zh) 一种事件处理方法、装置、终端设备和存储介质
CN112632211A (zh) 用于移动机器人的语义信息处理方法与设备
CN111444198B (zh) 一种基于中心化块链式账本的交易存储、查询方法
CN111552703A (zh) 一种数据处理方法及装置
CN113535721B (zh) 一种数据写入方法及装置
CN111651520B (zh) 一种缓存架构访问方法、装置、介质和电子设备
US20240111810A1 (en) Data read method, data update method, electronic device, and program product
CN111680112B (zh) 一种数据分析方法及装置
CN117172234A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40000157

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210207

Address after: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Ant financial (Hangzhou) Network Technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210915

Address after: 100020 unit 02, 901, floor 9, unit 1, building 1, No.1, East Third Ring Middle Road, Chaoyang District, Beijing

Patentee after: Beijing Aoxing Beisi Technology Co.,Ltd.

Address before: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Patentee before: Ant financial (Hangzhou) Network Technology Co.,Ltd.