我有超过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