15

1 億を超えるキーと値のペアがあります (1 つのキーに複数の値を含めることができます)。キー、値が 32 ビットのバイト配列である東京内閣の BDB (B+Tree DB) を使用しています。

東京内閣で使用できるメモリ量(下限と上限)を設定することはできますか?実は8GBのメモリを持っているのですが、大容量のメモリを活かせていないようです。

もう一点、設定方法を知りたいのですが、

tokyoCabinet.tune() tokyoCabinet.optimize() tokyoCabinet.setxmsiz() tokyoCabinet.setcache() これらのパラメーターにより、私のケースで最大のチューニングを得ることができます。前もって感謝します。どんなアイデアも私に役立ちます。

4

1 に答える 1

1

tokyoCabinet.setcache() - キャッシュ サイズを設定します。通常はファイル サイズの半分以上です。

tokyoCabinet.tune() - 開く前にハッシュ バケット ファイルと BTree インデックス パラメータを設定する

tokyoCabinet.optimize() - ファイルが既に開かれているときに設定されたハッシュ バケット ファイルと BTree インデックスの新しいパラメータ, レコード数が tune で設定された数よりも増加していた場合( bnum), たとえば、optimize() で増加できます.

tokyoCabinet.setxmsiz() 追加のマップ メモリのサイズを設定します。mmap を使用すると、通常はファイル サイズになります。

1 億のキーと値のペア - bnum > 100M * 2 値は 32 ビットのバイト配列 -> recsize = 32bit = 8 バイト -> apow = 3 ( = 2^3 )

配列の要素が 1024 個ある場合: recsize は、apow = 13 に設定します。

lmembは、各リーフ ページのメンバー数を指定します。0 以下の場合は、デフォルト値が指定されます。デフォルト値は 128 です。

nmembは、各非リーフ ページのメンバー数を指定します。0 以下の場合は、デフォルト値が指定されます。デフォルト値は 256 です。fpow は、フリー ブロック プールの要素の最大数を 2 の累乗で指定します。

公式ドキュメント

于 2012-11-30T14:57:00.990 に答える