gpt4 book ai didi

cdb - 为什么 DJ Bernstein CDB(常量数据库)使用 256 个哈希表?

转载 作者:行者123 更新时间:2023-12-01 12:38:56 28 4
gpt4 key购买 nike

为什么 DJB CDB(常量数据库)被设计为使用 256 个哈希表?

为什么不单个更大的 252 * 256 哈希表?

只是为了节省空间还是有其他原因?

最佳答案

DJB CDB 使用两级哈希表。第一个表在文件开头固定大小为 2K。第二组表位于文件末尾,并在数据流入 cdb 时内置于内存中。一旦所有数据都流入 cdb,第二组哈希表将流出到磁盘,然后第一个表(在文件的开头)填充第二组中每个表的偏移量。

换句话说,多级哈希表允许流式创建 cdb,除了在 cdb 创建结束时写入文件的开头 2K 之外。

访问cdb很快,打第一个表(文件开头的2K)找到第二个表(在第二组表中)在cdb文件末尾的偏移量,它提供了数据的位置在 cdb 中。

更多信息可在 https://github.com/gstrauss/mcdb/ 的注释中找到。这是对 DJB 古老的 cdb 的重写。 mcdb 比 cdb 更快,并且消除了 4GB cdb 的限制以及其他好处。

关于cdb - 为什么 DJ Bernstein CDB(常量数据库)使用 256 个哈希表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26851047/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com