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

在Tokyo Cabinet中可以设置它可以使用多少内存(上限和下限)?实际上,我有8GB的内存,但似乎无法利用大内存。

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

tokyoCabinet.tune()
tokyoCabinet.optimize()
tokyoCabinet.setxmsiz()
tokyoCabinet.setcache()
这些参数,因此我可以针对自己的情况进行最大调整。提前致谢。任何想法对我也有帮助。

最佳答案

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

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

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

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



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

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

nmemb 指定每个非叶子页面中的成员数。如果不大于0,则指定默认值。默认值为256。
fpow以2的幂为单位指定空闲块池的最大元素数。

The official documentation

09-11 18:02