CN117390031B - 一种基于lsm树的存储系统中二级索引有效性的验证方法 - Google Patents
一种基于lsm树的存储系统中二级索引有效性的验证方法 Download PDFInfo
- Publication number
- CN117390031B CN117390031B CN202311708107.7A CN202311708107A CN117390031B CN 117390031 B CN117390031 B CN 117390031B CN 202311708107 A CN202311708107 A CN 202311708107A CN 117390031 B CN117390031 B CN 117390031B
- Authority
- CN
- China
- Prior art keywords
- index
- index key
- state
- key
- primary
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012795 verification Methods 0.000 title claims abstract description 31
- 230000008569 process Effects 0.000 claims description 6
- 239000003550 marker Substances 0.000 claims description 4
- 238000013461 design Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/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/2255—Hash tables
-
- 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
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
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)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于LSM树的存储系统中二级索引有效性的验证方法,所述方法包括:S1:构建非易失性存储中的索引结构,所述非易失性存储中的索引结构包括更新日志和主索引键状态LSM树;S2:构建内存中的索引结构,所述内存中的索引结构包括更新哈希表和新写缓存;S3:所述非易失性存储中的索引结构和所述内存中的索引结构共同构成二级索引数据有效性验证辅助结构,用于判断所述二级索引数据是否有效。本发明通过构建非易失性存储中的索引结构和内存中的索引结构共同构成二级索引数据有效性验证辅助结构,在不影响原有主索引和二级索引设计的前提下,提供高效的二级索引有效性验证。
Description
技术领域
本发明涉及存储系统和数据检索领域,尤其涉及一种基于LSM树的存储系统中二级索引有效性的验证方法。
背景技术
许多应用程序需要查询主键以外的特定值。如果没有基于特定值的索引,数据库系统需要扫描整个表来查找相关数据。因此,二级索引是数据库系统中不可或缺的技术。例如,在 Facebook用于社交图的数据库服务中,大量使用了二级索引,例如查找喜欢特定照片的用户 ID。独立的二级索引是主表之外的独立索引结构,维护每个二级索引键到其相关主索引键的映射。由于二级索引键不是唯一的,因此一个二级索引键可以有多个关联的主索引键。
基于日志结构合并(Log-structured merge, LSM)树是一个面向磁盘写优化的数据结构,通过实现数据的异地更新从而提供高写性能。基于LSM树的键值存储已经广泛用于社交网络、消息队列、电子商务、查询索引和广告等场景。面对大规模数据存储优化,基于LSM树的键值存储还用作关系型数据库的存储引擎、文件系统和对象存储的元数据管理引擎。
由于LSM树异地更新或删除数据,使得LSM树中存在冗余的失效数据。因此在基于LSM树的存储系统中,保持二级索引数据的一致性就成了一项挑战。目前有两种策略处理二级索引数据一致性问题,分别为同步和验证。对于同步策略,每当主表中写入一条记录,二级索引会同步维护以反映最新和有效的状态,如AsterixDB、MongoDB、MyRocks。具体步骤包括先查找主表,看该主索引键是否存在对应的旧记录,如果存在,获取旧记录的二级索引键,然后在二级索引中删除失效的条目。可见,这种策略放弃了LSM树异地更新的属性,降低了存储系统的写入性能。对于验证策略,每当主表中写入一条记录,只在二级索引中插入新条目,不维护二级索引数据的一致性,如DELI;而是在二级索引的查询操作中验证查询结果的有效性,通常通过查询主表来过滤无效的二级索引数据。已经有工作提出一些方法以降低验证开销,如在主表中进行合并操作时修复二级索引,只能一定程度减少对主表进行单点查找的次数;或为二级索引中的每个条目存储一个时间戳,并构建一个额外的基于LSM树的主键索引存储主键和其最新的时间戳,用于验证二级索引的有效性,然而查询性能较差。可见,现有方法优势有限,而且通常需要更改现有主索引和二级索引的设计。
公开号为CN113742307B的中国专利公开了“一种基于值日志系统的二级索引的存储和查询方法及系统”,通过基于值日志的二级索引的叶子节点直接指向存放的物理记录的偏移地址,查询时避免了与主索引的交互过程,更高效地定位数据,但该专利未涉及基于LSM树的存储系统中二级索引数据一致性保证的问题。
发明内容
针对现有技术的以上缺陷或者改进需求,本发明提供了一种基于LSM树的存储系统中二级索引有效性的验证方法,通过构建非易失性存储中的索引结构和内存中的索引结构共同构成二级索引数据有效性验证辅助结构,在不干预存储系统的主索引和二级索引设计的情况下,实现二级索引数据有效性的高效验证。
为实验上述目的,按照本发明的一个方面,提供了一种基于LSM树的存储系统中二级索引有效性的验证方法,所述方法包括:
S1:构建非易失性存储中的索引结构,所述非易失性存储中的索引结构包括更新日志和主索引键状态LSM树;
S2:构建内存中的索引结构,所述内存中的索引结构包括更新哈希表和新写缓存;
S3:所述非易失性存储中的索引结构和所述内存中的索引结构共同构成二级索引数据有效性验证辅助结构,所述二级索引数据有效性验证辅助结构基于内存中建立的更新哈希表中存储的主索引键和二级索引数据,用于判断所述二级索引数据是否有效。
作为本申请一实施例,所述更新日志用于记录所述主索引建状态的更新,所述主索引键状态LSM树用于存储主索引键状态。
作为本申请一实施例,所述更新哈希表用于记录处于更新和删除状态的主索引键及其二级索引数据,所述新写缓存用于记录处于新写状态的主索引键。
作为本申请一实施例,所述步骤S3中判断所述二级索引数据是否有效,具体步骤包括:
S31:当查询二级索引时,获取所述二级索引的主索引键;
S32:查询内存中更新哈希表中所述主索引键是否存在,如果不存在,则所述二级索引数据有效;
S33:如果存在,则比较内存中更新哈希表中对应记录的二级索引键是否与当前二级索引键相同;
S34:如果相同,则所述二级索引数据有效;
S35:如果不同或记录的值为删除标记,则所述二级索引数据无效。
作为本申请一实施例,所述更新日志用于在系统恢复时快速恢复状态为更新或删除的主索引键。
作为本申请一实施例,所述主索引键状态包括新写、更新和删除。
作为本申请一实施例,通过获取主索引和二级索引的写操作,生成主索引键状态写操作,其中所述写操作包括插入和删除。
作为本申请一实施例,所述主索引键状态写操作具体包括:
如果主索引键是插入操作,则主索引键状态写操作为插入<主索引键, 1>;
如果主索引键是删除操作,则主索引键状态写操作为插入<主索引键, 删除标记>;
如果二级索引键的写操作是删除操作,则主索引键状态写操作为插入<主索引键,-1>。
作为本申请一实施例,对于任一所述主索引键状态的写操作,在内存中需要对该主索引键进行及时状态更新操作,所述主索引键状态更新操作具体包括:
如果该所述主索引键是新写状态,将该所述主索引键插入新写缓存中;
如果该所述主索引键是更新状态,将该所述主索引键及其更新后的状态值与所有二级索引项插入更新哈希表;
如果该所述主索引键是删除状态,将该所述主索引键及删除标记与原值插入更新哈希表。
作为本申请一实施例,所述主索引键状态LSM树在合并过程中对重复的主索引键的值进行求和操作,得到主索引键的最终状态。
本发明的有益效果为:
(1)本发明通过构建非易失性存储中的索引结构和内存中的索引结构共同构成二级索引数据有效性验证辅助结构,基于内存中建立的更新哈希表中存储的主索引键和二级索引数据,在不影响原有主索引和二级索引设计的前提下,提供高效的二级索引有效性验证手段。
(2)本发明通过基于内存和非易失性存储的混合索引结构,实现高效、可恢复的二级索引有效性验证辅助结构。
(3)本发明通过设计非易失性存储内最终状态一致性和内存内即时状态一致性保证,减轻二级索引数据有效性验证辅助结构维护开销,同时提供高效的二级索引有效性验证。
附图说明
图1为本发明实施例提供的一种基于LSM树的存储系统中二级索引有效性的验证方法的架构图。
图2为本发明实施例提供的一种基于LSM树的存储系统中二级索引有效性的验证方法的二级索引键验证操作示意图。
图3为本发明实施例提供的一种基于LSM树的存储系统中二级索引有效性的验证方法的主索引键状态写操作示意图。
图4为本发明实施例提供的一种基于LSM树的存储系统中二级索引有效性的验证方法的更新哈希表中主索引键状态更新的示意图。
图5为本发明实施例提供的一种基于LSM树的存储系统中二级索引有效性的验证方法的主索引状态LSM树合并操作示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,全文中出现的“和/或”的含义,包括三个并列的方案,以“A和/或B”为例,包括A方案、或B方案、或A和B同时满足的方案。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参照图1至图5,一种基于LSM树的存储系统中二级索引有效性的验证方法,所述方法包括:
S1:构建非易失性存储中的索引结构,所述非易失性存储中的索引结构包括更新日志和主索引键状态LSM树;
S2:构建内存中的索引结构,所述内存中的索引结构包括更新哈希表和新写缓存;
S3:所述非易失性存储中的索引结构和所述内存中的索引结构共同构成二级索引数据有效性验证辅助结构,所述二级索引数据有效性验证辅助结构基于内存中建立的更新哈希表中存储的主索引键和二级索引数据,在二级索引查询时,判断所述二级索引数据是否有效。本发明通过构建非易失性存储中的索引结构和内存中的索引结构共同构成二级索引数据有效性验证辅助结构,在不影响原有主索引和二级索引设计的前提下,提供高效的二级索引有效性验证手段,从而提升查询效率。
作为本申请一实施例,所述更新日志用于记录所述主索引建状态的更新,在存储系统重启时快速恢复状态为更新或删除的主索引键。所述主索引键状态LSM树用于存储主索引键状态,记录主索引键的中间状态,通过主索引键状态LSM树的合并操作获得主索引键的最终状态,能够减轻二级索引数据有效性验证辅助结构对原有系统性能的影响。
具体的,所述主索引键状态LSM树是持久化存储且自身具备数据恢复能力;更新日志记录了存在状态更新的主索引键及其当前状态值,用于恢复内存更新哈希表,并辅助恢复新写缓存。所述内存中的索引结构的恢复过程包括如下:
(1)更新哈希表恢复:读取更新日志,从中提取处于更新状态的主索引键及其状态,再从主索引中读取对应记录的二级索引键;
(2)新写缓存恢复:读取主索引键状态LSM树中最新的主索引键操作为1的记录,排除更新哈希表中的更新和删除记录,将对应的主索引键插入新写缓存,直至新写缓存填满。
作为本申请一实施例,所述更新哈希表用于记录处于更新和删除状态的主索引键及其二级索引数据,具体的,所述更新哈希表记录所有处于更新或删除状态的主索引键及其值,一方面在即时主索引键状态更新操作中,用于查询主索引键当前状态和接收更新或删除的主索引键及其值;另一方面在二级索引查询过程中,用于快速验证二级索引数据的有效性。
所述新写缓存用于记录处于新写状态的主索引键,具体的,所述新写缓存是一个基于FIFO的缓存,是用空间换时间的一种设计,期望在内存中找到目标主索引键,从而避免访问磁盘的主索引键状态LSM树,其用于记录处于新写状态的主索引键,用于高效更新主索引键状态。另外,所述新写缓存基于数据热度具有偏斜性的特征,在有限的内存开销下,用于获得较高的主索引键状态更新效率;所述新写缓存的大小配置与可用内存空间、负载特性密切相关,在具体设计实例时根据情况设置。针对一个主索引键状态写操作执行主索引键状态更新操作,如果主索引键在缓存中命中,则直接将更新后的主索引键及其数据放入内存哈希表,并将该记录从缓存中删除;如果在缓存中缺失,则查询LSM树看当前主索引键是否存在,如果不存在,将该主索引键写入缓存。本发明通过设计基于内存和非易失性存储的混合索引结构,实现高效、可恢复的二级索引有效性验证辅助结构。
作为本申请一实施例,所述步骤S3中判断所述二级索引数据是否有效,具体步骤包括:
S31:当查询二级索引时,获取所述二级索引的主索引键,所述查询包括单点查找和范围查询;
S32:查询内存中更新哈希表中所述主索引键是否存在,如果不存在,则所述二级索引数据有效;
S33:如果存在,则比较内存中更新哈希表中对应记录的二级索引键是否与当前二级索引键相同;
S34:如果相同,则所述二级索引数据有效;
S35:如果不同或记录的值为删除标记,则所述二级索引数据无效。
作为本申请一实施例,根据主索引键状态的值,所述主索引键状态包括新写、更新和删除。
作为本申请一实施例,通过获取主索引和二级索引的写操作,生成主索引键状态写操作,其中所述写操作包括插入和删除。
其中,所述主索引键状态写操作示意图如图3所示,所述主索引键状态写操作具体包括:
如果主索引键是插入操作,则主索引键状态写操作为插入<主索引键, 1>;
如果主索引键是删除操作,则主索引键状态写操作为插入<主索引键, 删除标记>;
如果二级索引键的写操作是删除操作,则主索引键状态写操作为插入<主索引键,-1>。
具体的,对于任一所述主索引键状态LSM树的写操作,在内存中需要对该主索引键进行即时状态更新操作,具体的,从主索引的请求中获取写操作,从二级索引的请求中获取删除操作,生成主索引键状态LSM树的写操作,向主索引键状态LSM树发送写操作,同时,生成主索引键状态更新操作。所述主索引键状态更新操作具体包括:
在内存更新哈希表中查询目标主索引键,如果存在,若为更新状态,对于删除操作,向内存中的更新哈希表插入<主索引键,<删除标记,原状态值>>;对于插入操作,对主索引键的状态值进行求和操作,并更新对应记录为<主索引键,<二级索引键,累加状态值>>;若为删除状态,对于插入操作,将该记录删除,并将该主索引键插入新写缓存;如果不存在,则执行下一步操作。
在新写缓存中查询目标主索引键,如果存在,对于删除操作,向内存中的更新哈希表插入<主索引键,<删除标记,1>>,将新写缓存中对应的记录删除;对于插入操作,对主索引键的状态值进行求和操作,将<主索引键,<二级索引键,2>>插入更新哈希表,将新写缓存中对应的记录删除;如果不存在,对于删除操作,向内存中的更新哈希表插入<主索引键,<删除标记,1>>;对于插入操作,执行下一步操作。
在主索引键状态LSM树中查询目标主索引键,如果找到且状态非删除标记,将<主索引键,<二级索引键,2>>插入更新哈希表;如果未找到或状态为删除标记,向新写缓存插入主索引键。
对于所述主索引键状态LSM树的写操作,当更新哈希表中发生记录的插入、更新和删除时,将<主索引键,状态值>写入更新日志。
所述内存中更新哈希表中主索引键状态更新示意图如图4所示,对于在更新哈希表中找到目标主索引键的主索引键状态更新操作,包括五种可能情况:
(1)对于删除状态的主索引键,若是主索引的插入操作,则将该记录从更新哈希表中移除;
(2)对于删除状态的主索引键,若是二级索引的删除操作,对主索引键的状态值进行求和操作,如果更新后的状态值为0,则将该记录从更新哈希表中移除;
(3)对于更新状态的主索引键,若是主索引的删除操作,将该记录更新为<主索引键,<删除标记,原状态值>>;
(4)对于更新状态的主索引键,若是主索引的插入操作,对主索引键的状态值进行求和操作,并将该记录更新为<主索引键,<二级索引键,累加状态值>>;
(5)对于更新状态的主索引键,若是二级索引的删除操作,对主索引键的状态值进行求和操作,如果更新后的状态值等于1,则将该记录从更新哈希表中删除。
随着所述主索引键状态LSM树中数据的积累,会触发LSM树的合并操作,传统LSM树的合并操作执行机制是消除冗余数据,本发明将合并操作的执行机制改为主索引键状态值进行求和操作;所述主索引键状态LSM树在合并过程中对重复的主索引键的值进行求和操作,得到主索引键的最终状态。本发明通过设计非易失性存储内最终状态一致性和内存内即时状态一致性保证,减轻判断所述二级索引数据是否有效的过程维护开销,同时提供高效的二级索引有效性验证。
所述主索引状态LSM树合并操作示意图如图5所示,对于LSM树中参与合并的主索引键,相同的主索引键合并包括两种可能情况:
(1)合并前(a),新记录值为删除标记,合并后(b),该主索引键的局部状态值为删除标记;
(2)合并前(a),新记录为插入操作,合并后(b),该索引键的局部状态值为数值。
本发明通过构建非易失性存储中的索引结构和内存中的索引结构共同构成二级索引数据有效性验证辅助结构,基于内存中建立的更新哈希表中存储的主索引键和二级索引数据,同时设计非易失性存储内最终状态一致性和内存内即时状态一致性保证,减轻辅助结构维护开销,在不影响原有主索引和二级索引设计的前提下,提供高效的二级索引有效性验证手段。
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (8)
1.一种基于LSM树的存储系统中二级索引有效性的验证方法,其特征在于,所述方法包括:
S1:构建非易失性存储中的索引结构,所述非易失性存储中的索引结构包括更新日志和主索引键状态LSM树;
S2:构建内存中的索引结构,所述内存中的索引结构包括更新哈希表和新写缓存;
S3:所述非易失性存储中的索引结构和所述内存中的索引结构共同构成二级索引数据有效性验证辅助结构,所述二级索引数据有效性验证辅助结构基于内存中建立的更新哈希表中存储的主索引键和二级索引数据,用于判断所述二级索引数据是否有效;
所述更新哈希表用于记录处于更新和删除状态的主索引键及其二级索引数据,所述新写缓存用于记录处于新写状态的主索引键;
所述步骤S3中判断所述二级索引数据是否有效,具体步骤包括:
S31:当查询二级索引时,获取所述二级索引的主索引键;
S32:查询内存中更新哈希表中所述主索引键是否存在,如果不存在,则所述二级索引数据有效;
S33:如果存在,则比较内存中更新哈希表中对应记录的二级索引键是否与当前二级索引键相同;
S34:如果相同,则所述二级索引数据有效;
S35:如果不同或记录的值为删除标记,则所述二级索引数据无效。
2.如权利要求1所述的一种基于LSM树的存储系统中二级索引有效性的验证方法,其特征在于,所述更新日志用于记录主索引建状态的更新,所述主索引键状态LSM树用于存储主索引键状态。
3.如权利要求2所述的一种基于LSM树的存储系统中二级索引有效性的验证方法,其特征在于,所述更新日志用于在系统恢复时快速恢复状态为更新或删除的主索引键。
4.如权利要求2所述的一种基于LSM树的存储系统中二级索引有效性的验证方法,其特征在于,所述主索引键状态包括新写、更新和删除。
5.如权利要求4所述的一种基于LSM树的存储系统中二级索引有效性的验证方法,其特征在于,通过获取主索引和二级索引的写操作,生成主索引键状态写操作,其中所述写操作包括插入和删除。
6.如权利要求5所述的一种基于LSM树的存储系统中二级索引有效性的验证方法,其特征在于,所述主索引键状态写操作具体包括:
如果主索引键是插入操作,则主索引键状态写操作为插入<主索引键, 1>;
如果主索引键是删除操作,则主索引键状态写操作为插入<主索引键, 删除标记>;
如果二级索引键的写操作是删除操作,则主索引键状态写操作为插入<主索引键, -1>。
7.如权利要求6所述的一种基于LSM树的存储系统中二级索引有效性的验证方法,其特征在于,对于任一所述主索引键状态的写操作,在内存中需要对该主索引键进行及时状态更新操作,所述主索引键状态更新操作具体包括:
如果该所述主索引键是新写状态,将该所述主索引键插入新写缓存中;
如果该所述主索引键是更新状态,将该所述主索引键及其更新后的状态值与所有二级索引项插入更新哈希表;
如果该所述主索引键是删除状态,将该所述主索引键及删除标记与原值插入更新哈希表。
8.如权利要求7所述的一种基于LSM树的存储系统中二级索引有效性的验证方法,其特征在于,所述主索引键状态LSM树在合并过程中对重复的主索引键的值进行求和操作,得到主索引键的最终状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311708107.7A CN117390031B (zh) | 2023-12-11 | 2023-12-11 | 一种基于lsm树的存储系统中二级索引有效性的验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311708107.7A CN117390031B (zh) | 2023-12-11 | 2023-12-11 | 一种基于lsm树的存储系统中二级索引有效性的验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117390031A CN117390031A (zh) | 2024-01-12 |
CN117390031B true CN117390031B (zh) | 2024-03-08 |
Family
ID=89439624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311708107.7A Active CN117390031B (zh) | 2023-12-11 | 2023-12-11 | 一种基于lsm树的存储系统中二级索引有效性的验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117390031B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052240A (zh) * | 2020-08-19 | 2020-12-08 | 河海大学 | 一种基于协处理器的HBase二级内存索引构建方法 |
US11048765B1 (en) * | 2008-06-25 | 2021-06-29 | Richard Paiz | Search engine optimizer |
CN113535746A (zh) * | 2021-09-13 | 2021-10-22 | 环球数科集团有限公司 | 一种非关系型数据通过随机序列读写后控制一致性的方法 |
CN113553476A (zh) * | 2021-07-27 | 2021-10-26 | 南京邮电大学 | 一种利用哈希减少写停顿的键值存储方法 |
CN113821171A (zh) * | 2021-09-01 | 2021-12-21 | 浪潮云信息技术股份公司 | 一种基于哈希表与lsm树的键值存储方法 |
CN114372296A (zh) * | 2021-12-31 | 2022-04-19 | 华南理工大学 | 一种基于区块链的用户行为数据审计方法及系统 |
CN114741382A (zh) * | 2021-01-07 | 2022-07-12 | 小红书科技有限公司 | 一种减少读时延的缓存方法和系统 |
CN114780530A (zh) * | 2022-05-06 | 2022-07-22 | 山东浪潮科学研究院有限公司 | 基于lsm树键值分离的时序数据存储方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331649B2 (en) * | 2014-06-29 | 2019-06-25 | Microsoft Technology Licensing, Llc | Transactional access to records on secondary storage in an in-memory database |
US10776345B2 (en) * | 2018-04-25 | 2020-09-15 | DataStax | Efficiently updating a secondary index associated with a log-structured merge-tree database |
US20230205760A1 (en) * | 2021-12-29 | 2023-06-29 | Salesforce.Com, Inc. | Multiple index scans |
-
2023
- 2023-12-11 CN CN202311708107.7A patent/CN117390031B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11048765B1 (en) * | 2008-06-25 | 2021-06-29 | Richard Paiz | Search engine optimizer |
CN112052240A (zh) * | 2020-08-19 | 2020-12-08 | 河海大学 | 一种基于协处理器的HBase二级内存索引构建方法 |
CN114741382A (zh) * | 2021-01-07 | 2022-07-12 | 小红书科技有限公司 | 一种减少读时延的缓存方法和系统 |
CN113553476A (zh) * | 2021-07-27 | 2021-10-26 | 南京邮电大学 | 一种利用哈希减少写停顿的键值存储方法 |
CN113821171A (zh) * | 2021-09-01 | 2021-12-21 | 浪潮云信息技术股份公司 | 一种基于哈希表与lsm树的键值存储方法 |
CN113535746A (zh) * | 2021-09-13 | 2021-10-22 | 环球数科集团有限公司 | 一种非关系型数据通过随机序列读写后控制一致性的方法 |
CN114372296A (zh) * | 2021-12-31 | 2022-04-19 | 华南理工大学 | 一种基于区块链的用户行为数据审计方法及系统 |
CN114780530A (zh) * | 2022-05-06 | 2022-07-22 | 山东浪潮科学研究院有限公司 | 基于lsm树键值分离的时序数据存储方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117390031A (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10656859B2 (en) | Efficient deduplication for storage systems | |
EP3111347B1 (en) | Efficient methods and systems for consistent read in record-based multi-version concurrency control | |
US8868512B2 (en) | Logging scheme for column-oriented in-memory databases | |
JP5922716B2 (ja) | 個別にアクセス可能なデータユニットの記憶の取り扱い方法 | |
US8386494B2 (en) | Providing data structures for determining whether keys of an index are present in a storage system | |
CN102122285B (zh) | 一种数据缓存系统中的数据查询系统和数据查询方法 | |
US8560500B2 (en) | Method and system for removing rows from directory tables | |
US8954407B2 (en) | System and method for partially deferred index maintenance | |
CN106294772A (zh) | 分布式内存列式数据库的缓存管理方法 | |
KR101549220B1 (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 | |
CN108153804B (zh) | 一种对称分布式文件系统的元数据日志更新方法 | |
CN113867627B (zh) | 一种存储系统性能优化方法及系统 | |
CN111522791B (zh) | 一种分布式文件重复数据删除系统及方法 | |
CN109189759B (zh) | Kv存储系统中的数据读取方法、数据查询方法、装置及设备 | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
CN101256579A (zh) | 一种数据库范围查询数据组织的方法 | |
CN117390031B (zh) | 一种基于lsm树的存储系统中二级索引有效性的验证方法 | |
CN113742307B (zh) | 一种基于值日志系统的二级索引的存储和查询方法及系统 | |
CN110413617B (zh) | 一种根据数据量的大小动态调节哈希表组的方法 | |
CN113821476A (zh) | 数据处理方法及装置 | |
RU2621628C1 (ru) | Способ организации хранения связанных данных | |
CN117311645B (zh) | 一种lsm存储元数据读放大的优化方法 | |
CN116860722B (zh) | 一种数据库持久化组织优化方法 | |
CN116450591B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
KR20150044013A (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 |
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 |