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`가 추출되었습니다. 기존 프루너 및 상태 저장소 테스트는 계속 통과하여 하위 호환성을 확인합니다.
