快速跳跃列表清除制造技术

技术编号:38813710 阅读:11 留言:0更新日期:2023-09-15 19:52
公开了与高效管理跳跃列表数据结构相关的技术。在一些实施方案中,计算系统存储包括多个键

【技术实现步骤摘要】
【国外来华专利技术】快速跳跃列表清除

技术介绍


[0001]公开文本总体上涉及数据存储,并且更具体地,涉及操纵跳跃列表数据结构。
[0002]相关技术描述
[0003]在计算机科学领域,已经开发了各种复杂的数据结构来促进信息的存储。这些数据结构通常使用多个指针将记录集合连接在一起。在设计复杂结构时,开发人员通常会权衡与插入和检索信息的复杂度以及整体数据结构大小相关的问题。跳跃列表是更复杂的数据结构的一个例子,它可能很受欢迎,因为它可以保持大型数据集,同时仍然提供O(log n)插入复杂度和O(log n)搜索复杂度。在这种类型的数据结构中,根据键烦人顺序对记录进行排序,并使用数据记录序列的链接层次结构进行关联,每个连续序列跳过的元素比前一个序列少。使用变化高度的指针塔来实施这种链接的层次结构,使得在给定的塔内,可以基于跳过的记录的数量来排列指针。这种在遍历跳跃列表时跳过记录的能力可以允许比顺序扫描记录更快地定位给定的记录。
附图说明
[0004]图1是示出使用缓冲数据结构内的跳跃列表来处理并发数据库事务的数据库系统的一个实施方案的框图。
[0005]图2是示出缓冲数据结构内的记录链的一个实施方案的框图。
[0006]图3是示出缓冲数据结构内的跳跃列表的一个实施方案的框图。
[0007]图4是示出用于从跳跃列表清除记录的慢速清除过程的一个实施方案的框图。
[0008]图5A

图5D是示出用于从跳跃列表清除记录的快速清除过程的实施方案的图。
[0009]图6是示出执行跳跃列表的清除的清除引擎的一个实施方案的框图。
[0010]图7是示出用于从跳跃列表清除记录的并行快速清除过程的一个实施方案的图。
[0011]图8A

图8C是示出与从跳跃列表清除记录相关的方法的实施方案的流程图。
[0012]图9是示出示例性计算机系统的一个实施方案的框图。
具体实施方式
[0013]在某些情况下,可以使用跳跃列表来保持频繁操纵的大量信息。例如,如下面将进一步详细描述的,数据库系统可以使用缓冲数据结构来存储活动数据库事务的数据,直到数据库事务可以被提交并且它们的数据被刷新到数据库系统的永久存储器。缓冲数据结构可以包括跳跃列表数据结构,该跳跃列表数据结构使得能够按照键的顺序高效地存储和查找事务记录。由于该数据库系统可以并行处理大量事务,因此跳跃列表的高效保持对于数据库性能非常重要。
[0014]公开文本描述了其中当记录不再使用时,采用快速清除算法从跳跃列表中高效地清除记录的实施方案。如下面将在各种实施方案中描述的,通过遍历跳跃列表的最低级别
来按照键的顺序扫描跳跃列表的键

值记录,以识别进行清除的键

值记录。(如本文所使用的,“键

值记录”是指由键标识并包括相应值的记录

键和值统称为“键

值对”)在扫描记录时,在一些实施方案中,通过检查设置为指示何时允许清除的标志,检查记录以确定它们是否准备好被清除。为包括在指针塔中的指针记录指针信息,并保持指针信息,直到这些指针被解析(即,由这些指针指向的记录被扫描)。如果识别出进行清除的记录,则通过以包括在正在被清除的键

值记录中的指针替换一个或多个当前未解析指针而清除键

值记录。如将要讨论的,这种按照键的顺序扫描跳跃列表并跟踪未解析指针的方法可以导致比其他方法明显更少的存储器访问,例如那些依赖于向下遍历跳跃列表以确定当记录被清除时应该更新哪些指针的方法。
[0015]此外,还讨论了一种快速并行清除算法,其中跳跃列表被划分成由多个线程并行扫描的部分。(如本文所使用的,短语“并行”指的是两个或多个操作(或相同操作的两个或多个实例),执行的操作使得它们至少在一部分时间内重叠。)如将在各种实施方案中讨论的,可以通过遍历跳跃列表的顶部来确定跳跃列表部分,以识别可以形成这些部分的边界的键

值记录。然后可以将这些部分分配给单独的线程,这些线程可以使用快速清除算法并行地扫描它们分配的部分。在线程扫描部分之后,可以通过向下遍历跳跃列表以识别应该更新哪些跳跃列表指针而清除被识别为要清除的部分边界处的记录。
[0016]公开文本结合图1和2开始讨论数据库系统,该数据库系统可以保持跳跃列表并使用快速清除算法。结合图3讨论示例性跳跃列表。然后参考图4讨论用于清除记录的效率较低的算法。参考图5A

图6讨论快速清除算法。图7讨论了使用多线程的并行快速清除算法。最后,参考图8A

图9讨论方法和示例性计算系统。
[0017]现在转到图1,描绘了数据库系统10的框图。在所示实施方案中,数据库系统10包括事务管理器104、缓冲数据结构106和数据库108。如图所示,缓冲数据结构106包括多个记录链110、哈希表120、活动事务列表130和跳跃列表140。记录链110包括键

值记录112。哈希表120包括哈希函数122和哈希桶124的阵列,每个哈希桶包括锁存器126。(如本文所使用的,术语“锁存器”、“锁”和“信号量”通常用于指代控制对多个潜在消费者之间共享的资源的访问的变量。)在所示的实施方案中,管理器104还包括清除引擎150。在一些实施方案中,可以以不同于所示的方式来实施数据库系统10。例如,在一些实施方案中,缓冲数据结构106可以包括更多(或更少)的结构。
[0018]在一个实施方案中,事务管理器104包括可执行以处理所接收的数据库事务102的程序指令。通常,可以发出事务102以读取数据或将数据写入数据库108,并且可以从诸如一个或多个客户端设备、应用服务器、在数据库系统10上执行的软件等的各种源中的任何一个接收。如下面将更详细描述的,该处理可能需要管理器104最初将事务102的键

值对的记录112存储在缓冲数据结构106中,直到记录112可以被刷新到数据库108的永久存储器。因此,可以由事务管理器104实施下面关于缓冲数据结构106描述的各种功能,例如将键

值记录112添加到记录链110,促进获取用于事务102的哈希桶锁存器126,修改活动事务列表130和跳跃列表140等。
[0019]在一个实施方案中,缓冲数据结构106是缓冲活动事务的键

值对直到事务提交的数据结构。如下所述,以允许快速插入键

值对的方式构造缓冲数据结构106,在一些情况下可以同时执行,从而允许高效地处理大量事务。此外,缓冲数据结构106可以驻留在本地存
储器中,以允许比数据长期驻留的数据库108的永久存储器更快的读取和写入。在各种实施方案中,缓冲数据结构106允许针对不同的事务102对其执行并发修改,但是经由哈希桶锁存器126为缓冲数据结构106内的数据提供并发控制机制。在各种实施方案中,提交的事务数据从缓冲数据结构10本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种非暂时性计算机可读介质,其上存储有程序指令,所述程序指令能够使计算系统实施包括如下的操作:存储包括多个键

值记录的跳跃列表,所述键

值记录包括指向所述多个键

值记录中的其他键

值记录的一个或多个指针;以键顺序扫描所述多个键

值记录,以识别要从所述跳跃列表清除的键

值记录,其中所述扫描包括:保持包括指向尚未通过所述扫描被扫描到的键

值记录的指针的键

值记录的列表;和响应于识别出进行清除的键

值记录,通过以包括在正在被清除的所述键

值记录中的指针替换包括在所述列表的键

值记录中的指针而清除所述键

值记录。2.根据权利要求1所述的计算机可读介质,其中所述操作还包括:响应于执行与所述键

值记录相关联的数据库事务的请求,将所述键

值记录插入所述跳跃列表;和响应于提交所述数据库事务和将所述键

值记录存储在数据库的永久存储器中,在所述键

值记录中设置标志以指示授权清除所述键

值记录;并且其中所述扫描包括基于设置的标志而识别进行清除的所述键

值记录。3.根据权利要求1所述的计算机可读介质,其中所述扫描包括:确定包括在所述列表中的第一键

值记录的指针指向当前已经被扫描过的第二键

值记录;响应于所述确定:以所述第二键

值记录替换所述列表中的所述第一键

值记录;和在所述列表中包括所述第二键

值的同时,防止所述第二键

值记录在存储器内重新定位。4.根据权利要求1所述的计算机可读介质,其中所述操作还包括:在执行所述扫描的同时,将一个或多个键

值记录插入所述跳跃列表。5.根据权利要求4所述的计算机可读介质,其中所述操作还包括:响应于识别出进行清除的所述键

值记录,执行键

值记录的所述列表的验证,其中所述验证包括:确定包括在所述列表的所述键

值记录中的指针是否指向进行清除的所述键

值记录。6.根据权利要求5所述的计算机可读介质,其中所述操作还包括:响应于确定所述插入已经导致包括在所述列表的所述键

值记录中的一个或多个指针不指向进行清除的所述键

值记录,延迟所述键

值记录的所述清除直到执行后续扫描。7.根据权利要求5所述的计算机可读介质,其中所述验证包括:获取锁存器,以防止通过除了执行所述扫描的过程之外的过程修改所述键

值记录;和保持所述锁存器的获取,直到以包括在正在被清除的所述键

值记录中的指针替换包括在所述列表的所述键

值记录中的所述指针之后。8.根据权利要求1所述的计算机可读介质,其中所述操作还包括:在以键顺序扫描所述多个键

值记录之前:向下遍历所述跳跃列表,以识别所述多个键

值记录的子集;基于识别的子集中的所述键

值记录,将所述跳跃列表划分为多部分;和
将所述部分分配给能够执行以并行扫描所述部分的多个线程。9.根据权利要求8所述的计算机可读介质,其中所述操作还包括:由所述多个线程中的一个接收分配的进行扫描的部分;由所述线程扫描分配的部分,其中扫描所述分配的部分包括针对所述分配的部分保持具有未解析指针的键

值记录的列表;和响应于识别出所述分配的部分中进行清除的键

值记录,所述线程使用用于所述分配的部分的所述键

值记录的列表以清除所述分配的部分中的所述键

值记录。10.根据权利要求1所述的计算机可读介质,其中所述跳跃列表中的所述多个键

值记录中的第一个通过包括指向哈希表中的桶的第一指针而指向所述跳跃列表中的所述多个键...

【专利技术属性】
技术研发人员:P
申请(专利权)人:易享信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1