什么是静态,大型,核心外字典的快速成员资格算法

时间:2013-10-21 23:18:06

标签: hash dictionary static tree

我有一个包含数百万个密钥的静态字典,这些密钥引用存储在核心外的稀疏数据结构中的值。键的数量是值的一小部分,比如10%。密钥大小通常为64位。键是线性排序的,查询通常由按此顺序靠近的键组成。数据压缩是一个因素,但它是预计会成为数据大小而不是密钥的最大贡献者的值。密钥压缩有帮助,但并不重要。如果可能,查询时间应该是常量,并且由于用户正在与数据交互,因此查询时间应该很快。

鉴于这些条件,我想知道查询字典以确定其中是否包含特定密钥的有效方法。查询速度是首要任务,施工时间并不重要。

目前我正在寻找缓存无关的b + -trees和保留与外部存储相关的最小完美哈希。

此时,CHD或其他形式的哈希似乎是候选人。由于以近似线性顺序查询密钥,似乎保留顺序的散列会避免缓存未命中,但我不足以说明CHD是否可以保留密钥的顺序。恒定时间查询也是可取的。搜索是O(1),但是密钥空间上查询时间的上限也是未知的。

树木看起来不太吸引人。虽然有一些缓存不经意和特定于缓存的方法,但我认为大部分工作都是针对动态字典的范围查询而不是常量时间成员资格查询。通常,处理器和存储器不喜欢分支。

在这些问题上提出了许多问题,但是这种情况(希望如此)以一种可能对其他人有用的方式约束问题。

任何反馈都将不胜感激, 感谢

0 个答案:

没有答案