1

いくつかのテストを行ったところ、zookeeper が最後の 500 個の削除済みノードをクリーンアップしていないようです。

私のテストでは、ノードを作成し、作成後に各ノードを削除しました。この手順を 1000 回繰り返してから、完全な GC をトリガーしました。これらは結果です

Creating 1000 Nodes and deleting 1000 Nodes and each node has...
 ...1000kb data = 529MB heap used after FullGC
 ...500kb  data = 281MB heap used after FullGC
 ...256kb  data = 140MB heap used after FullGC
 ...128kb  data =  68MB heap used after FullGC

1000kb のデータごとに 1000 個のノードを作成してからノードを削除し、その後 128kb のデータで 1000 個のノードを作成してノードを再度削除すると、68MB のヒープ領域が使用されます。

そのため、Zookeeper は最後の 500 個の削除されたノードをキャッシュしている / クリーンアップしていないようです。

これはバグですか、それともその動作を変更する構成パラメーターはありますか?

4

1 に答える 1

0

ZKDatabase.committedLog は過去 500 件のトランザクションを保持します。それが行動の理由です。この設定は構成できませんが、未解決の問題があります。

于 2013-04-10T10:23:18.500 に答える