A method and a device for monitoring the internal structure of the base tree; the method comprises: acquiring nodes in the tree before the operation base identifier set, as the first set; according to the first set and the node ID change information, determine the node of the tree base is expected to mark set; each node of the base tree identification for describing the shortest path to the node information from the root node; node after the acquisition operation base in the tree identifier set, as second sets; comparison of the second set and the expected identifier set, according to the monitoring results of the comparison. This application can be monitored in real time for each operation in the base tree.
【技术实现步骤摘要】
一种监控基数树内部结构的方法及装置
本专利技术涉及计算机领域,尤其涉及一种监控基数树内部结构的方法及装置。
技术介绍
基数树(radix-tree)是通用的字典类型数据结构,基数树树又称为PAT位树(PatriciaTrieorcritbittree)。基数树是一种多叉搜索树,树的叶子节点是实际的数据条目。每个结点有一个固定的、2^n指针指向子节点(每个指针称为槽slot),并有一个指针指向父节点。在使用基数树时,最常用的操作是插入、删除、查找节点。其中插入、删除节点会改变基数树内部结构。在不同的使用场景下,出于对时间复杂度和空间复杂度的权衡考虑,需要使用不同的数据结构定义以及不同的增删节点算法。比如,在插入、删除连续大块数据为主的场景下,广度优先遍历会比深度优先遍历搜索得到更低的时间复杂度;在存储数据量小且离散度高(离散度越高意味着寻址空间越大)的场景下,使用map或hash来记录子节点指针比数组节省更多内存。。在使用基数树时,在不同的使用场景下,数据结构改变或算法调整后需要做大量的测试才能保证正确性。但对于基数树这种较复杂的数据结构,测试调试工作是一个难点,体现在以下方面:(a)基数树对外提供的接口简单,但内部数据结构复杂,常用的办法是通过多次操作(插入、删除等)后检查数据正确性来测试算法正确性。这种调试方式粒度较粗,无法发现在多次操作之间发生的问题以及在连续操作时被掩盖的“负负得正”的问题。需要有非常充分的测试用例,做极大量的充分测试,才能保证质量。耗时耗力,在算法调整,数据结构调整后无法做到快速迭代,无法适应快速迭代的项目开发要求。(b)若使用(a ...
【技术保护点】
一种监控基数树内部结构的方法,包括:获取操作前基数树中节点的标识集合,作为第一集合;根据所述第一集合以及节点标识更改信息,确定所述基数树中节点的预计标识集合;所述基数树中每个节点的标识包括用于描述从根节点到该节点的最短路径的信息;获取操作后所述基数树中节点的标识集合,作为第二集合;比较所述第二集合与所述预计标识集合,根据比较结果获得监控结果。
【技术特征摘要】
1.一种监控基数树内部结构的方法,包括:获取操作前基数树中节点的标识集合,作为第一集合;根据所述第一集合以及节点标识更改信息,确定所述基数树中节点的预计标识集合;所述基数树中每个节点的标识包括用于描述从根节点到该节点的最短路径的信息;获取操作后所述基数树中节点的标识集合,作为第二集合;比较所述第二集合与所述预计标识集合,根据比较结果获得监控结果。2.如权利要求1所述的方法,其特征在于:所述节点的标识是从根节点到该节点的最短路径中每个节点的层索引的序列;所述基数树的不同层对应于不同级别的层索引;所述基数树中每个节点的不同子节点使用该节点所在层所对应级别的层索引进行区分。3.如权利要求2所述的方法,其特征在于:所述层索引包括数字和/或字母;所述第一集合包括操作前所述基数树每层节点的标识区间集合;所述第二集合包括操作后所述基数树每层节点的标识区间集合;所述节点标识更改信息包括每层待更改节点的标识区间。4.如权利要求3所述的方法,其特征在于,所述根据第一集合以及所述节点标识更改信息,确定所述基数树中节点的预计标识集合包括:当所述操作为插入时,分别对每层的待更改节点的标识区间和第一集合中该层的标识区间集合求并集,将所有层的并集共同作为所述预计标识集合;当所述操作为删除时,分别对每层的待更改节点的标识区间和第一集合中该层的标识区间集合求差集,将所有层的差集共同作为所述预计标识集合。5.如权利要求3所述的方法,其特征在于,所述根据所述第一集合以及节点标识更改信息,确定所属基数树中节点的预计标识集合前还包括:根据所述操作涉及的所述基数树中一个或多个叶子节点的标识,确定所涉及的叶子节点的每层父节点的标识,得到每层待更改节点的标识区间。6.如权利要求1所述的方法,其特征在于,所述获取所述基数树中节点的标识集合包括:从所述基数树的根节点开始找到每层第一个非空节点;分别从每层所找到的节点开始,通过每个节点所维护的指向右边节点的指针遍历该层的所有节点,记录该层节点的标识,遍历完成后得到每层节点的所述标识集合。7.一种监控基数树内部结构的装置,其特征在于,包括:预测单元,用于获取操作前基数树中节点的标识集合,作为第一集合;根据所述第一集合以及节点标识更改信息,确定所述基数树中节点的预计标识集合;所述基数树中每个节点的标识包括用于描述从根节点到该节点的最短路径的信息;比...
【专利技术属性】
技术研发人员:袁诚,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。