6

lmdb 環境を作成するときに、マップ サイズを指定できます。どの時点でマップ サイズがどれだけ使用されているかを判断する方法はありますか?

つまり、容量不足の問題が発生する前に対処できるようにするには、空き容量がどれだけ残っているかを調べる必要があります。

私が考えることができる唯一のことは、すべてのデータベースを調べて、mdb_env_stat を使用してブランチ、リーフ、およびオーバーフロー ページの数を取得することです。すべてのデータベースを合計し (ページ サイズを掛ける)、現在のマップ サイズと比較します。これは、使用済みスペースを計算する正しい方法ですか?

4

1 に答える 1

4

それは確かに私も使用しているアプローチです(そして私が見つけることができた唯一のものです)。

すべてのデータベースについて:

MDB_stat stat;
mdb_stat(d->transaction, d->dbi, &stat);
auto dbSize = stat.ms_psize * (stat.ms_leaf_pages + stat.ms_branch_pages + stat.ms_overflow_pages);
于 2016-11-10T11:57:57.207 に答える