东京机柜 - 记忆调整

2022-09-03 16:15:54

我有超过1亿个键值对(一个键可以有多个值)。我正在使用Tokyo Cabinet的BDB(B + Tree DB),其键,值为32位字节数组。

是否可以在东京内阁中设置可以使用多少内存(下限和上限)?实际上,我有8GB内存,但似乎无法利用大内存。

还有一点是,我想知道如何设置,

tokyoCabinet.tune() tokyoCabinet.optimize() tokyoCabinet.setxmsiz() tokyoCabinet.setcache() 這些參數,因此我可以為我的案件進行最大的調整。提前致谢。任何想法对我也有帮助。


答案 1

tokyoCabinet.setcache() - 设置缓存大小,通常是文件大小的一半或更多

tokyoCabinet.tune() - 在打开之前设置哈希桶文件和BTree索引参数

tokyoCabinet.optimize() - 当文件已经打开时,设置哈希桶文件和BTree索引的新参数,如果记录数增加超过调谐(bnum)中设置的参数,则可以通过optimize()增加。

tokyoCabinet.setxmsiz() 设置额外映射内存的大小,因为使用 mmap 通常是文件大小

1 亿个键值对 - bnum > 100M * 2 值为 32 位字节数组 -> recsize = 32 位 = 8 字节 -> apow = 3 ( = 2^3 )

如果您有 1024 个 Array 元素:recsize,则设置 apow = 13

lmemb 指定每个叶页中的成员数。如果不大于 0,则指定默认值。默认值为 128。

nmemb 指定每个非叶页中的成员数。如果不大于 0,则指定默认值。默认值为 256。fpow 指定可用块池的最大元素数(以 2 的幂计算)。

官方文档


答案 2

推荐