Aptos Coreのメンテナーが、データベースプルーニングシステムのステート KV切り詰め漏洩を解決する重要なバグ修正をマージしました。PR #352で文書化されたこの問題は、`truncate_state_kv_db_shards`関数がファーストライトキー作成の孤立したステート値を検出・削除できなかったときに発生していました。
根本原因は、削除対象エントリを特定するための`StaleStateValueIndexByKeyHashSchema`への切り詰めロジックの依存にありました。しかし、ファーストライトキー作成(以前のバージョンが存在しない場合)は、スターレインデックスエントリを書き込まなかったため、切り詰めスキャンは完全にこれらを見落としていました。これにより、孤立した`StateValueByKeyHashSchema`エントリが切り詰めポイントを超えて残され、データベース容量の増加とパフォーマンス低下につながる可能性がありました。
修正では、ファーストライトキー作成のためのセンチネルスターレインデックスエントリ(`version = Version::MAX`)を導入します。これにより、既存の`stale_since_version`ベースのスキャンがこれらのエントリを検出してクリーンアップできるようになります。プルーナーはセンチネルに対して`is_first_write()`をチェックすることで不要な無操作削除をスキップし、効率性を確保します。
テストカバレッジが大幅に拡張されました:`db_debugger/truncate/mod.rs`のテストスイートは、アカウントプール500個(5個から増加)を使用して、切り詰めターゲットバージョン後の新しいキー作成を確実にトリガーし、proptestケースは1から5に増加しました。テストの柔軟性を向上させるため、新しいパラメータ化ヘルパー`arb_blocks_to_commit_with_params`が抽出されました。既存のプルーナーおよびステートストアテストは引き続きパスし、後方互換性を確認しています。
