2017-01-19 10 views
0

LMDBでは、同じトランザクション内の前のエントリを上書きすると、データがコミットされるまで前のエントリの領域が解放されていないようです。私のアプリケーションでは、特定のエントリが何回も上書きされたため、LMDBの領域が不足していたため、この問題を回避するためにデータベースサイズを増やしただけです。エントリを上書きするときに余分なスペースを使用するLMDB

この状況が発生しないように、LMDBの未使用領域を解放する方法はありますか?

答えて

0

lmdbには圧縮メカニズムはありません。ライターが項目の変更を実行しているときにアクティブなリーダーがある場合、これらの項目は一貫性のある読み取りを維持するために新しいページにコピーされます。読者が完了すると、古いエントリページが空きページに戻され、次の変更が可能になります。 消費量を超えてストレージを制限するには、アクティブな読者なしで複数の小さな書き込みを実行する必要があります。

関連する問題