삭제될 WAL, MANIFEST, sstable을 보관하는 기능 제공 (Pebble issue #284)
개요
이슈: https://github.com/cockroachdb/pebble/issues/284
이번에는 Pebble에서 아무에게도 할당되지 않은 이슈를 선택해 수정했습니다.
이슈 파악
현재 WAL, MANIFEST, sstable이 삭제대상이 되면 바로 삭제되고 있는데, 디버그 목적으로 해당 파일을 유지하길 원했습니다. RocksDB에도 유사한 옵션이 있는데, vfs.FS.Remove
처리를 가로채 archive
폴더에 저장하는 것을 제안했습니다.
수정
처음에는 Cleaner 타입을 enum으로 구분하여 구현했습니다. 하지만 리뷰에서 interface를 사용하는 것을 제안받아 그 방향으로 구현을 수정했습니다(Go에서 interface는 매우 놀랍습니다. 저는 덕타이핑이 되는 interface라는 표현을 좋아합니다.
). 그 외 큰 변경사항은 없었고 몇 가지 작은 수정을 거친 후 머지되었습니다.