Marsettler

Jaewan Park

한국 카크로치디비 사용자 그룹 카크로치디비 스프린트 카크로치디비 문서 한글화 프로젝트 GitHub Q & A Tags
13 October 2019

삭제될 WAL, MANIFEST, sstable을 보관하는 기능 제공 (Pebble issue #284)

by Jaewan Park

개요

이슈: https://github.com/cockroachdb/pebble/issues/284

이번에는 Pebble에서 아무에게도 할당되지 않은 이슈를 선택해 수정했습니다.

이슈 파악

현재 WAL, MANIFEST, sstable이 삭제대상이 되면 바로 삭제되고 있는데, 디버그 목적으로 해당 파일을 유지하길 원했습니다. RocksDB에도 유사한 옵션이 있는데, vfs.FS.Remove 처리를 가로채 archive 폴더에 저장하는 것을 제안했습니다.

수정

처음에는 Cleaner 타입을 enum으로 구분하여 구현했습니다. 하지만 리뷰에서 interface를 사용하는 것을 제안받아 그 방향으로 구현을 수정했습니다(Go에서 interface는 매우 놀랍습니다. 저는 덕타이핑이 되는 interface라는 표현을 좋아합니다.). 그 외 큰 변경사항은 없었고 몇 가지 작은 수정을 거친 후 머지되었습니다.

덧붙이는 말

tags: cockroachdb go sprint