Sei Giga のアップグレードの準備中、Sei Labs はさまざまなステート ストア バックエンドを使用してノードのパフォーマンスをベンチマークしました。 インデックス作成の多い履歴クエリで RocksDB と PebbleDB を MVCC と比較すると、RocksDB はノード オペレーターのレイテンシーを 10 から 40 削減することができました×
数百万ブロックにわたるtraceBlockのレイテンシーを測定しました(状態ストア内のキーと値のペアに対して広範な反復を実行するRPCクエリ)。 ノード履歴が増加するにつれて、PebbleDB の反復時間は劇的に増加しますが、RocksDB ははるかに平坦なレイテンシー曲線を維持します。
この違いの主な理由は、バックエンドの設計にあります。 RocksDBは、MVCCと効率的な列ファミリーのネイティブユーザー定義タイムスタンプをサポートしています。 対照的に、PebbleDB にはネイティブのバージョン管理が欠けており、キーの接尾辞と複数のバージョンにわたる手動の反復が必要です。
これにより、RocksDB の反復効率が大幅に向上し、特に履歴状態が大きいノードの場合につながります。 保存された履歴が増えるにつれて、PebbleDB と RocksDB の間のパフォーマンスのギャップはより顕著になります。
RocksDB には小さなビルドのトレードオフが導入されていますが、パフォーマンスの向上により、大規模な状態や長い履歴を処理するアーカイブおよび RPC ノードにとって強力なオプションになります。 セットアップ全体でトレースの遅延と反復速度が一貫して改善されていることが確認されています
106.76K