Optimierung einer BerkeleyDB JE-Datenbank
-
10-10-2019 - |
Frage
Ich plane, eine große Anzahl von eindeutigen Schlüsseln einfügen (~ 3E9) in einem BerkeleyDB JE Datenbank.
Die Tasten haben eine feste Länge (~ 10 Bytes), aber die Werte werden eine variable Länge haben. Die Datenbank wird nicht transaktionale sein.
Was Parameter würde vorschlagen, Sie für die EnvironmentConfig und die DatabaseConfig für die Größe zu optimieren und die Geschwindigkeit meiner Datenbank?
Vielen Dank,
Pierre
Lösung
OK, fand ich die Lösung, die das Dienstprogramm com.sleepycat.je.util.DbCacheSize verpackt in 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow