东京柜-内存调整

15

我有超过一亿个键值对(一个键可以有多个值)。我正在使用东京柜子的BDB(B+树DB),其键和值都是32位字节数组。

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

另一点是,我想知道如何设置以下参数,

tokyoCabinet.tune() tokyoCabinet.optimize() tokyoCabinet.setxmsiz() tokyoCabinet.setcache() 这样我就可以为我的情况获得最佳调整了。提前感谢您的帮助。任何想法对我都有帮助。


2
你可能想要了解一下京都柜(Kyoto Cabinet),它是东京柜(Tokyo Cabinet)的续作。创作者强烈建议转向使用京都柜,因为似乎东京柜已经不再维护了。 - Paul Morie
从东京柜网站上可以看到:“顺便问一下,你知道京都柜吗?实际上,它比东京柜更强大、更方便。在这段时间里,京都柜在各个方面都超过了东京柜。我强烈建议你使用京都柜。” - le3th4x0rbot
1个回答

1

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

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

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

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

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

如果您有1024个数组元素:recsize,请将apow设置为13

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

nmemb指定每个非叶子页面中成员的数量。如果它不超过0,则指定默认值。默认值为256。 fpow按2的幂指定自由块池元素的最大数量。

官方文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接