使用树形索引搜索节点的方法和装置的制造方法

文档序号:8512506阅读:169来源:国知局
使用树形索引搜索节点的方法和装置的制造方法
【专利说明】使用树形索引搜索节点的方法和装置
[0001]相关申请的交叉引用
[0002]本申请基于并要求于2014年2月10日提交的韩国专利申请第10-2014-0014828号的优先权,其全部内容结合于此作为参考。
技术领域
[0003]本公开涉及一种使用树形索引的节点搜索,更具体地,涉及根据树形索引数据结构从根节点到叶节点遍历节点的节点搜索方法和装置。
[0004]本工作在10040937号项目[产业融合的源技术开发业务]下由韩国知识经济部支持。
【背景技术】
[0005]在现有技术中,众所周知的是,索引是在数据库领域中提高表格的操作速度的一种数据结构,树形索引指以树形结构组织的索引数据结构。
[0006]B-树形索引是这样的树形索引中的一种,它是通常用在数据库系统中以顺序组织大量的数据并允许对其快速存取的数据结构。
[0007]树形索引数据结构包括具有子节点的目录节点和没有子节点的叶节点。每个目录节点包括另一个节点的指针,每个指针可与每个节点中包括的对象有关。
[0008]在常规树形索引数据结构中,当存在使树形索引的结构改变的处理时,要求用锁保护树形索引的数据兼容性以在另一个处理中保持数据兼容性的同时比较树形索引。
[0009]然而,这种使用锁定功能保护数据兼容性的常规方法妨碍了树形索引同时由多个处理存取。因此,这种方法在同时操作方面缺乏效率。
[0010]此外,该方法还涉及发生锁死的风险。例如,在遍历B-树形索引的处理中从根节点到叶节点搜索节点,然而,当发生索引分裂时,分裂可能会从叶节点扩散到父节点,造成锁死。

【发明内容】

[0011]本公开提供了使用树形索引的节点搜索方法和装置,能够基于所搜索的节点的更新时间值与遍历时间值之间的比较结果确定继续还是重试遍历操作。
[0012]但是,本公开要解决的问题并不限于以上描述,根据以下描述,本领域的技术人员可充分理解其它问题。
[0013]本公开的示例性实施例提供了一种节点搜索方法,包括:将当前时间值设为遍历时间值;搜索子节点,以根据树形索引数据结构从根节点到叶节点进行遍历;通过将表示改变所搜索的子节点的时间的更新时间值与遍历时间值相比较,确定是否满足预设遍历条件;根据是否满足遍历进行条件从父节点开始重新进行遍历,或继续遍历到被搜索子节点;并且在不存在子节点的叶节点处终止遍历。
[0014]在本实施例中,其中,在确定是否满足预设遍历条件的处理中,如果所搜索的子节点的更新时间值大于遍历时间值,则确定不满足遍历进行条件,并且当重新进行遍历时,从根节点或比所搜索的子节点至少高一级的父节点开始重新进行遍历。
[0015]在本实施例中,其中,在确定是否满足预设遍历条件的处理中,当从根节点开始重新进行遍历时,将当前时间值重设为遍历时间值。
[0016]在本实施例中,其中,在确定是否满足预设遍历条件的处理中,如果从比被搜索子节点至少高一级的父节点开始重新进行遍历的结果返回到重新进行遍历之前搜索的节点,则确定满足遍历进行条件。
[0017]本公开的示例性实施例提供了一种节点搜索装置,包括:时间设置单元,被配置为将当前时间设为遍历时间值;节点搜索单元,被配置为搜索子节点,以根据树形索引数据结构从根节点到叶节点进行遍历;遍历条件确定单元,被配置为通过将表示改变所搜索的子节点的时间的更新时间值与遍历时间值相比较,确定是否满足预设遍历条件;遍历单元,被配置为根据是否满足遍历进行条件从父节点开始重新进行遍历,或继续遍历到所搜索的子节点,并在不存在子节点的叶节点处终止遍历。
[0018]在本实施例中,其中,遍历条件确定单元确定,如果所搜索的子节点的更新时间值大于遍历时间值,则不满足遍历进行条件,并且如果由遍历条件确定单元确定满足遍历条件,遍历单元从根节点或比所搜索的子节点至少高一级的父节点开始重新进行遍历。
[0019]在本实施例中,其中,当从根节点开始重新进行遍历时,时间设置单元将当前时间值重设为遍历时间值。
[0020]在本实施例中,其中,遍历条件确定单元确定,如果从比所搜索的子节点至少高一级的父节点开始重新进行遍历的结果返回到重新进行遍历之前搜索的节点,则满足遍历进行条件。
[0021]根据本公开的示例性实施例,通过基于所搜索的节点的更新时间值与遍历时间值之间的比较结果确定继续还是重试遍历操作,可在保护树形索引的数据兼容性而不需要使用锁。
[0022]由此,与常规方法相比,可提高同时操作方面的效率。例如,即使多个过程存取B-树形索引,相应的处理也可在不互相干扰的情况下独立地执行其操作。因此,可大大提高B-树形索引的同时操作效率。
[0023]此外,在常规方法中,在树形索引发生分裂的情况下,完成分裂操作之前,不允许进行到被分裂节点的下级节点的遍历。然而,根据本公开的示例性实施例,由于分裂操作期间仍然允许进行遍历,所以不会造成锁死。
【附图说明】
[0024]图1为根据本公开的示例性实施例的使用树形索引的节点搜索装置的框图。
[0025]图2为根据本公开的示例性实施例的使用树形索引的节点搜索方法的流程图。
[0026]图3为根据本公开的另一个示例性实施例的使用树形索引的节点搜索方法的流程图。
【具体实施方式】
[0027]根据结合附图的给出的示例性实施例的以下说明,本公开的优点和特征及其实现方法将变得显而易见。将对示例性实施例进行详细描述,使本领域的技术人员容易实施本公开的概念。但是,应注意的是,示例性实施例并不意在进行任何的限制,只要不脱离本公开的技术概念,可进行各种修改。本公开的概念的范围将由以下权利要求限定,而不是由示例性实施例的详细描述而限定。
[0028]在以下描述中,当相关领域中已知的功能或配置的详细描述可能妨碍对本公开的概念的充分理解时,将省略其具体描述。此外,本文件中使用的术语的定义考虑了其在本公开的示例性实施例中的功能,其定义可随着使用者或操作者或实践的意图的不同而不同。因此,应基于本文件的全部公开内容理解本说明书中使用的术语的定义。
[0029]本说明书中使用的术语“时间值”表示能表明时间推移(passage of time)的各种信息。因此,时间值可包括单调递增计数器值、时间戳值等。
[0030]图1为根据示例性实施例的使用树形索引的节点搜索装置100的框图。
[0031]如图1所示,根据示例性实施例的节点搜索装置100可包括时间值设置单元110、节点搜索单元120、遍历条件确定单元130和遍历单元140等。
[0032]时间设置单元110将当前时间值设为遍历时间值,并设置表示改变每个节点的时间的更新时间值。
[0033]节点搜索单元120搜索子节点,以根据树形索引数据结构从根节点到叶节点进行遍历。
[0034]遍历条件确定单元130将由节点搜索单元120搜索的子节点的更新时间值与设置的遍历时间值相比较,并确定比较结果是否满足预设遍历条件。遍历条件确定单元130可确定,如果由节点搜索单元120搜索的子节点的时间戳超过遍历时间戳,则不满足遍历进行条件。此外,如果由遍历单元140重新进行遍历的结果返回到重新进行遍历之前搜索的节点,可确定满足遍历进行条件。
[0035]根据遍历条件确定单元130确定是否满足遍历进行条件的确定结果,遍历单元140从父节点开始重新进行遍历,或继续遍历到由节点搜索单元120搜索的子节点。随后,遍历单元140在无子节点的叶节点处终止遍历。如果由遍历条件确定单元130确定不满足遍历进行条件,遍历单元140可从根节点或至少高一级的父节点开始重新进行遍历。
[0036]图2为根据示例性实施例的使用树形索引的节点搜索方法的流程图。
[0037]如图2所示,节点搜索方法包括将当前时间值设为遍历时间值的处理(S210)。
[0038]节点搜索方法进一步包括搜索子节点,以根据树形索引数据结构从根节点到叶节点进行遍历的处理(S220)。
[0039]此外,节点搜索方法进一步包括比较表示改变所搜索的子节点的时间的更新时间值,确定比较结果是否满足预设遍历条件的处理(S230)。
[0040]然后,节点搜索方法包括根据是否满足遍历进行条件在重设遍历时间值之后从根节点开始重新进行遍历(S240),或继续遍历到所搜索的子节点(S250)的处理。
[0041]节点搜索方法最后包括在无子节点的叶节点处终止遍历的护理(S260)。
[0042]下文将参照图1和图2对通过使用树形索引由节点搜索装置进行的根据示例性实施例的节点搜索方法进行进一步的详细说明。
[0043]首先,节点搜索装置的时间设置单元110将当前时间值设为遍历时间值,并设置表示改变每个节点的时间的更新时间值。例如,时间设置单元110可将单调递增计数器值或时间戳值设为时间值(
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1