一种哈希表的处理方法技术

技术编号:30367038 阅读:30 留言:0更新日期:2021-10-16 17:38
本发明专利技术提供一种哈希表的处理方法,所述哈希表为聚合的可拓展哈希表,包括多个可拓展哈希表,每个可拓展哈希表构成所述聚合的可拓展哈希表的一层,所述可拓展哈希表包括不少于一个的桶,所述桶用于存储键值对数据;所述可拓展哈希表具有相同编号的桶构成所述聚合的可拓展哈希表的一个段;所述聚合的可拓展哈希表包括共享目录,所述共享目录用于管理聚合的可扩展哈希表的全局深度以及段的指针。本发明专利技术有效降低了rehash造成的延迟陡增和吞吐骤降,同时保证了哈希表的高性能。时保证了哈希表的高性能。时保证了哈希表的高性能。

【技术实现步骤摘要】
Ropars.2018.An Efficient Wait

Free Resizable Hash Table.In Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures(SPAA

18)(Vienna,Austria).New York,NY,USA,111

120

技术实现思路

[0020]为解决上述现有技术中存在的问题,提供一种哈希表的处理方法,所述哈希表为聚合的可拓展哈希表,包括多个可拓展哈希表,每个可拓展哈希表构成所述聚合的可拓展哈希表的一层,所述可拓展哈希表包括不少于一个的桶,所述桶用于存储键值对数据;所述可拓展哈希表具有相同编号的桶构成所述聚合的可拓展哈希表的一个段;所述聚合的可拓展哈希表包括共享目录,所述共享目录用于管理聚合的可扩展哈希表的全局深度以及段的指针;所述处理方法包括:
[0021]计算输入键值对中键的哈希值H;
[0022]取H的最低G位为下标,在共享目录本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种哈希表的处理方法,所述哈希表为聚合的可拓展哈希表,包括多个可拓展哈希表,每个可拓展哈希表构成所述聚合的可拓展哈希表的一层,所述可拓展哈希表包括不少于一个的桶,所述桶用于存储键值对数据;所述可拓展哈希表具有相同编号的桶构成所述聚合的可拓展哈希表的一个段;所述聚合的可拓展哈希表包括共享目录,所述共享目录用于管理聚合的可扩展哈希表的全局深度以及段的指针;所述处理方法包括:计算输入键值对中键的哈希值H;取H的最低G位为下标,在共享目录中索引相应的指针,获得相应的指针所指向的段;取H的最高log2K位为下标,在段内索引一个桶;在桶内进行线性查找、插入或删除;其中,G为哈希表的全局深度,K为哈希表的层数。2.根据权利要求1所述的处理方法,当插入操作需要一个桶分裂并且共享目录容量不足时,利用全分裂方法扩张哈希表容量,所述全分裂方法包括:生成一个分裂桶所在段的伙伴段,伙伴段中与分裂桶同层的桶构成分裂桶的伙伴桶;将共享目录的容量倍增;将所述伙伴段的指针加入共享目录;将新的键值对插入伙伴桶中,根据键的哈希值迁移分裂桶中的部分键值对到伙伴桶中;将伙伴段的其它后代桶的祖先指针指向其最年轻的祖先桶;将全局深度加1,分裂桶的局部深度加1,将伙伴桶深度设置为与分裂桶相同。3.根据权利要求1所述的处理方法,当插入操作需要一个桶分裂且共享目录容量充足时,利用基础分裂方法扩张容量,所述基础分裂方法包括:生成一个分裂桶所在段的伙伴段,伙伴段中与分裂桶同层的桶构成分裂桶的伙伴桶;将伙伴段的指针加入共享目录;...

【专利技术属性】
技术研发人员:熊子威蒋德钧熊劲
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1