Optimizing a BerkeleyDB JE Database

大憨熊 提交于 2019-12-07 17:11:00

问题


I plan to insert a large number of unique keys ( ~3E9 ) in a BerkeleyDB JE database.

The keys will have a fixed length ( ~10 bytes ) but the values will have a variable length. The database won't be transactional.

What parameters would you suggest for the EnvironmentConfig and the DatabaseConfig for optimizing the size and the speed of my database ?

Many thanks,

Pierre


回答1:


OK, I found the solution using the utility com.sleepycat.je.util.DbCacheSize packaged into berkeleyDB-JE

java -cp je-4.0.103.jar com.sleepycat.je.util.DbCacheSize -records 3000000000 -key 8
Inputs: records=3000000000 keySize=8 dataSize=-1 nodeMax=128 binMax=128 density=80% overhead=10%

=== Cache Sizing Summary ===

   Cache Size       Btree Size    Description
---------------  ---------------  -----------
206,574,616,257  185,917,154,632  Minimum, internal nodes only
231,821,163,884  208,639,047,496  Maximum, internal nodes only

To get leaf node sizing specify -data

=== Memory Usage by Btree Level ===

 Minimum Bytes    Maximum Bytes      Nodes    Level
---------------  ---------------  ----------  -----
184,101,562,500  206,601,562,500  29,296,875    1
  1,797,864,968    2,017,591,304     286,102    2
     17,551,212       19,696,236       2,793    3
        169,668          190,404          27    4
          6,284            7,052           1    5


来源:https://stackoverflow.com/questions/4178774/optimizing-a-berkeleydb-je-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!