System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于树的数据结构制造技术_技高网

基于树的数据结构制造技术

技术编号:40064343 阅读:6 留言:0更新日期:2024-01-16 23:11
写入器向树的叶节点写入项,并且读取器从叶节点读取项。每个节点包括相应的第一块和第二块,第一块包括按键的顺序排序的相应叶的多个项。当向叶写入新项时,写入器按写入的顺序将新项写入所标识的叶节点的第二块,而不是按键的顺序排序。当从叶读取一个或多个目标项时,读取器基于a)在第一块中已经排序的项的顺序和b)读取器通过相对于第一块的项的键对第二块的项进行排序,来搜索针对一个或多个目标项的叶。

【技术实现步骤摘要】
【国外来华专利技术】


技术介绍

1、诸如b树之类的树结构可以用作索引数据结构,用于存储键值对(每对包括一个值,即被存储的内容,以及一个键,用于索引该值)。树的每个叶节点都包含多个项,这些项是键值对。从叶向上走,树的每个内部节点都包含其每个子节点(可以是叶或其他内部节点)所涵盖的一系列键值的指示。

2、当一个新项被添加到树中时,写入器使用树结构来确定哪个叶包含新项的键所属的一系列键。如果这个叶没有满,新项可以添加到这个现有叶中。然而,如果这个叶已满(叶和内部节点通常具有最大字节大小),那么这个叶将被拆分。即创建一个新叶。这也意味着更新旧叶和新叶的父节点,以便正确引用两个叶的键范围。如果对父节点的更新也会使父节点超出其最大大小,那么父节点自身将被拆分,并更新祖父节点的引用,依此类推。如果项被删除,这也可能涉及合并叶或内部节点。

3、在给定的应用程序中,写入器或读取器可能需要执行多个操作。读取器可以使用特定键读取单个项,也可以执行范围扫描以从一系列键中读取。写入器可以写入新条目、修改现有条目或删除条目。

4、索引数据结构用于广泛的软件系统,例如数据存储和数据库、文件系统、操作系统等。索引数据结构存储键值对,并支持查找、扫描、插入和删除键值对等操作。b树就是这样一种索引数据结构。b树是按顺序索引,这意味着它也支持扫描操作。扫描操作返回存储在树中的所有键值对,并且键在指定范围内。


技术实现思路

1、在基于树的数据结构(例如b树)中,需要平衡写入器和读取器之间的工作负载。例如,如果新条目仅按时间顺序添加,而不按键排序,那么这对写入器来说非常快。然而,读取器必须在读取时对项进行排序,以执行单个读取或范围扫描(至少范围扫描需要排序-单个读取可以,使用排序以相同的方式实现查找和范围扫描更简单)。另一方面,如果写入器每次执行写入时将所有新条目按排序顺序放置,这将使读取器的读取非常快速,但在写入时给写入器带来更大的负担。期望提供在这两种方法之间的折衷方案。

2、根据本文公开的一个方面,提供了一种系统,该系统包括存储数据结构的存储器,该数据结构包括树结构,该树结构包括多个节点,每个节点具有节点id。一些节点是叶节点,其他节点是内部节点,其中每个内部节点是树结构中一个或多个子节点的相应集合的父节点。每个子节点是叶节点或另一个内部节点,每个叶节点是子节点但不是父节点。每个叶节点包括一个或多个项的相应集合,每个项包括键-值对,每个内部节点将其各个子节点中每个子节点的节点id映射到各个子节点涵盖的一系列键。该系统还包括以软件、硬件或其组合实现的写入器,被布置为向叶节点写入项;以及以软件、硬件或其组合实现的读取器,被布置为从叶节点读取项。每个叶节点包括相应的第一块和相应的第二块,第一块包括相应叶节点的多个项,多个项在存储器的地址空间中按键的顺序排序。写入器被配置为,当向树结构写入新项时,通过遵循树结构中的键到节点id的映射来标识要写入哪个叶节点,并且按写入的顺序将新项写入所标识的叶节点的第二块,而不是键的顺序排序。读取器被配置为,当从树结构读取一个或多个目标项时,通过遵循树结构中的键到节点id的映射来确定要从哪个叶节点读取。然后基于a)在第一块中已经排序的项的顺序和b)读取器通过相对于第一块的项的键对第二块的项进行排序,来搜索针对一个或多个目标项所确定的叶节点。

3、在实施例中,第一块可以具有比第二块更大的最大大小,并且因此第一块可以被称为"大块",以及第二块被称为"小块"。

4、在实施例中,写入器可以用软件实现,但读取器可以用定制硬件实现,例如在可编程门阵列(pga)或现场可编程门阵列(fpga)中。然而,更一般地,写入器可以用硬件(例如,硬件加速器)来实现和/或读取器可以用软件来实现。

本文档来自技高网...

【技术保护点】

1.一种系统,包括:

2.根据权利要求1所述的系统,其中所述写入器在软件中实现,所述软件存储在所述系统的计算机可读存储器中,并且所述写入器被布置为在所述系统的一个或多个处理器上运行。

3.根据权利要求1或2所述的系统,其中所述读取器在PGA、FPGA或专用硬件电路中实现。

4.根据任一项前述权利要求所述的系统,其中所述树结构采用B树的形式。

5.根据权利要求4所述的系统,其中B树是B+树,由此,项不存储在中间节点中。

6.根据任一项前述权利要求所述的系统,其中:

7.根据任一项前述权利要求所述的系统,其中:

8.根据任一项前述权利要求所述的系统,其中:

9.根据权利要求8所述的系统,其中所述读取器被配置为通过以下方式使用所述顺序提示:

10.根据任一项前述权利要求所述的系统,其中:

11.根据任一项前述权利要求所述的系统,其中:

12.根据权利要求11的所述系统,其中:

13.根据任一项前述权利要求所述的系统,其中:

14.一种方法,包括:

15.一种被实施在非暂时性计算机可读介质或媒介上的计算机程序,包括被配置为当在一个或多个处理器上运行时执行权利要求14所述的写入和/或读取的代码。

...

【技术特征摘要】
【国外来华专利技术】

1.一种系统,包括:

2.根据权利要求1所述的系统,其中所述写入器在软件中实现,所述软件存储在所述系统的计算机可读存储器中,并且所述写入器被布置为在所述系统的一个或多个处理器上运行。

3.根据权利要求1或2所述的系统,其中所述读取器在pga、fpga或专用硬件电路中实现。

4.根据任一项前述权利要求所述的系统,其中所述树结构采用b树的形式。

5.根据权利要求4所述的系统,其中b树是b+树,由此,项不存储在中间节点中。

6.根据任一项前述权利要求所述的系统,其中:

7.根据任一项前述权利要求所述的系统,其中:...

【专利技术属性】
技术研发人员:A·德拉戈耶维奇刘俊义
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

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

1