【问题标题】:Tokyo Cabinet - Memory Tuning东京内阁 - 内存调整
【发布时间】:2012-04-07 06:08:35
【问题描述】:

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

东京内阁是否可以设置它可以使用多少内存(下限和上限)?其实我有 8GB 内存,但是好像用不上大内存。

还有一点就是,我想知道怎么设置,

东京内阁.tune() tokyoCabinet.optimize() 东京内阁.setxmsiz() tokyoCabinet.setcache() 这些参数因此我可以为我的情况获得最大的调整。提前致谢。任何想法对我也有帮助。

【问题讨论】:

  • 您可能想看看东京内阁的续集京都内阁。创作者强烈建议搬到京都内阁 - 东京内阁似乎没有得到维护。
  • 来自东京内阁官网,“顺便说一句,你知道京都内阁吗?其实它比东京内阁更强大、更方便。在这个距离上,京都内阁在各个方面都超过了东京内阁. 我强烈推荐你使用京都内阁。”

标签: java database tokyo-cabinet


【解决方案1】:

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

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

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

tokyoCabinet.setxmsiz()设置额外映射内存的大小,和使用mmap一样,通常是filesize

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

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

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

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

The official documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多