多B+树操作装置及其方法制造方法及图纸

技术编号:25396457 阅读:13 留言:0更新日期:2020-08-25 23:01
本申请涉及信息处理技术,特别地,涉及多B+树操作装置及其方法,其中,B+树操作方法,包括如下步骤:根据待处理命令要访问的B+树,将待处理命令提供给同所述B+树对应的搜索单元;搜索单元根据待处理命令指示的关键字搜索待访问的B+树,并得到搜索结果。本申请用硬件电路来实现B+树操作,利用多棵B+树来分别存储索引,实现高效处理各B+树的操作。

【技术实现步骤摘要】
多B+树操作装置及其方法
本申请涉及信息处理技术,特别地,涉及利用集成电路硬件提供多B+树操作装置以及使用该装置操作多棵B+树的方法。
技术介绍
B+树是一种数据结构,在文件系统、数据库等常使用B+树存储索引。图1展示了B+树。B+树包括一个根节点、多个中间节点以及多个叶节点。节点120是根节点。节点130、节点132与节点134是中间节点,中间节点是既非根节点也非叶节点的节点。节点(140、142、144……150、152、154)是叶节点。B+树的中间节点包括不超过m个元素,将m称为B+树的阶。B+树的根节点与中间节点的每个元素,记录了关键字(Key)与指向下级节点的指针。例如,节点130包括3个元素,第一个元素的关键字为5,其指针指向节点140,第二个元素的关键字为10,其指针指向节点142,第三个元素的关键字为20,其指针指向节点144。节点的各个元素按关键字排序。在一些实施方式中,根节点与中间节点的每个元素记录了指向下级节点的指针,但并非每个元素都包括关键字,而是根节点与中间节点包括的关键字数量比其包括的元素少一个。例如,在节点120中,可以不包括关键字“K:5”,以及在搜索节点120时,对于小于关键字“K:28”的关键字,在搜索结果中指示下级节点130,而对于不小于关键字“K:28”且小于关键字“K:65”的关键字,在搜索结果中指示下级节点134。B+树的叶节点包括不超过m个元素。叶节点的每个元素记录了关键字(Key)与同关键字对应的值(Value)。叶节点的各个元素按关键字排序。从而B+树的所有关键字都在叶节点中有记录,并且只有从叶节点中才能获得同关键字对应的值。现有技术中,由软件在内存中构建并操作B+树,采用例如二分法在B+树中查找关键字。二分法是软件所能获得的性能几乎最好的查找算法,但在大数据时代,数据项数量的增长,使得软件操作B+树的查找算法的性能以不能满足要求。
技术实现思路
需要更快的实现B+树操作。需要用硬件电路来实现B+树操作。以及一些信息处理设备中,利用多棵B+树来分别存储索引。例如,每个B+树存储各自的文件系统的索引。这些文件系统被并发或独立地访问。B+树操作装置需要能高效处理各B+树的操作。根据本申请的第一方面,提供了根据本申请第一方面的第一B+树操作方法,包括如下步骤:根据待处理命令要访问的B+树,将待处理命令提供给同所述B+树对应的搜索单元;搜索单元根据待处理命令指示的关键字搜索待访问的B+树,并得到搜索结果。根据本申请的第一方面的第一B+树操作方法,提供了根据本申请第一方面的第二B+树操作方法,其中,若待处理命令是搜索命令,则搜索单元提供的搜索结果为命令的处理结果。根据本申请的第一方面的第一或第二B+树操作方法,提供了根据本申请第一方面的第三B+树操作方法,其中,若待处理命令是插入命令或删除命令,则根据搜索结果对所述待处理命令进行再次处理,以得到命令的处理结果。根据本申请的第一方面的第三B+树操作方法,提供了根据本申请第一方面的第四B+树操作方法,其中,若待处理命令是插入命令,将插入命令指定的关键字或关键字连同对应的值添加到搜索结果指示的节点,以对待处理命令进行再次处理。根据本申请的第一方面的第三或第四B+树操作方法,提供了根据本申请第一方面的第五B+树操作方法,其中,若待处理命令是删除命令,将删除命令指定的关键字或关键字连同对应的值从搜索结果指示的节点中删除,以对待处理命令进行再次处理。根据本申请的第一方面的第一至第五B+树操作方法之一,提供了根据本申请第一方面的第六B+树操作方法,其中,将待处理命令添加到同所述B+树对应的搜索单元关联的命令队列,以将待处理命令提供给搜索单元。根据本申请的第一方面的第六B+树操作方法,提供了根据本申请第一方面的第七B+树操作方法,其中,识别待处理命令具有的标识与搜索单元正在处理的命令访问的B+树的标识相同,则将所述待处理命令添加到同所述搜索单元对应的命令队列。根据本申请的第一方面的第六或第七B+树操作方法,提供了根据本申请第一方面的第八B+树操作方法,其中,识别待处理命令具有的标识与搜索单元正在处理的命令访问的B+树的标识不相同,则为所述待处理命令分配搜索单元,并且将所述待处理命令添加到同为其分配的搜索单元对应的命令队列。根据本申请的第一方面的第八B+树操作方法,提供了根据本申请第一方面的第九B+树操作方法,其中,将当前未在处理命令的空闲搜索单元分配予所述待处理命令。根据本申请的第一方面的第八或第九B+树操作方法,提供了根据本申请第一方面的第十B+树操作方法,其中,若当前没有空闲搜索单元,则等待搜索单元处理完命令而变为空闲后,再为所述待处理命令分配空闲搜索单元。根据本申请的第一方面的第八至第十B+树操作方法之一,提供了根据本申请第一方面的第十一B+树操作方法,其中,将工作负载低的搜索单元或可用的搜索单元分配予所述待处理命令。根据本申请的第一方面的第十一B+树操作方法,提供了根据本申请第一方面的第十二B+树操作方法,其中,依据同搜索单元对应的命令队列中包括的待处理命令的数量得到搜索单元的负载。根据本申请的第一方面的第一至第十二B+树操作方法之一,提供了根据本申请第一方面的第十三B+树操作方法,其中,搜索单元根据待处理命令指示的关键字搜索存储器中存储的B+树或数据缓存中存储的B+树的一个或多个节点。根据本申请的第一方面的第十三B+树操作方法,提供了根据本申请第一方面的第十四B+树操作方法,其中,若数据缓存中不包括搜索单元要访问的B+树的节点,则利用DMA单元将要访问的B+树的节点从存储器中加载至数据缓存。根据本申请的第一方面的第二B+树操作方法,提供了根据本申请第一方面的第十五B+树操作方法,其中,若待处理命令是搜索命令,则读取要访问的B+树的当前节点的一个或多个关键字,并与搜索命令指示的关键字进行比较,以访问待访问的B+树,得到搜索结果。根据本申请的第一方面的第十五B+树操作方法,提供了根据本申请第一方面的第十六B+树操作方法,其中,获取要访问的B+树的当前节点的关键字数量,根据当前节点的关键字数量确定当前节点的各关键字的存放位置,根据各关键字的存放位置读取当前节点的一个或多个关键字。根据本申请的第一方面的第十五或第十六B+树操作方法,提供了根据本申请第一方面的第十七B+树操作方法,其中,若搜索命令指示的关键字排序在当前节点的第i关键字与第i+1关键字之间,则搜索命令命中当前节点的第i个关键字。根据本申请的第一方面的第十五至第十七B+树操作方法之一,提供了根据本申请第一方面的第十八B+树操作方法,其中,若当前节点是非叶节点,则将比较命中的关键字对应的索引指示的下一级节点为下一轮搜索的当前节点。根据本申请的第一方面的第十五至第十八B+树操作方法之一,提供了根据本申请第一方面的第十九B+树操作方法,其中,若当前节点是叶节点,则根据命中的关键字生成搜索结果。根据本申本文档来自技高网
...

【技术保护点】
1.一种B+树操作方法,包括如下步骤:/n根据待处理命令要访问的B+树,将待处理命令提供给同所述B+树对应的搜索单元;/n搜索单元根据待处理命令指示的关键字搜索待访问的B+树,并得到搜索结果。/n

【技术特征摘要】
1.一种B+树操作方法,包括如下步骤:
根据待处理命令要访问的B+树,将待处理命令提供给同所述B+树对应的搜索单元;
搜索单元根据待处理命令指示的关键字搜索待访问的B+树,并得到搜索结果。


2.一种B+树操作装置,包括:命令接口、存储器和一个或多个搜索单元;命令接口根据待处理命令要访问的B+树,将待处理命令提供给同所述B+树对应的搜索单元;搜索单元根据待处理命令指示的关键字搜索存储器中存储的待访问的B+树,并将搜索结果提供给命令接口。


3.根据权利要求2所述的B+树操作装置,其中,命令接口包括:同搜索单元一一对应的命令队列,待处理命令被添加到同要访问的B+树对应的搜索单元关联的命令队列,以将待处理命令提供给搜索单元。


4.根据权利要求2或3所述的B+树操作装置,还包括:扩展命令处理单元,扩展命令处理单元根据搜索结果对作为插入命令或删除命令的待处理命令进行再次处理。


5.根据权利要求4所述的B+树操作装置,其中,命令接口包括:扩展命令队列,扩展命令队列用于存储插入命令或删除命令,扩展命令处理单元对插入命令或删除命令进行再次处理。


6.根据权利要求5所述的B+树操作装置,其中,命令接口包括:搜索结果队列,搜索结果队列用于存储搜索结果,扩展命令处理单元根据搜索结果与插入命令或删除命令...

【专利技术属性】
技术研发人员:周鹏飞介百瑞万义才孙唐
申请(专利权)人:北京忆芯科技有限公司
类型:发明
国别省市:北京;11

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

1