-> 기본적으로 log entry를 메모리에 보관
-> 주기적으로 log entry를 파일시스템에 저장(snapshot), memory를 비우는 작업(truncate)
-> snapshot-count라는 옵션으로 얼마나 자주 저장하고 비울 지 정의 - default 100,000(이만큼 차면 스냅샷 생성 후 메모리 지우는)
-> commit된 데이터는 db(파일 시스템)에 보관됨
-> 이때 변경 전 key-value 값도 다 같이 저장됨 - 그걸 revision이라 함
-> 주기를 가지고 자동으로 revision을 정리
- 모드에 따라 auto-compaction-retention 옵션이 가지는 의미가 달라짐
1) Revision 모드 - 데이터 양으로 인식
ex) retention이 1000(1000개면 비울거임)이고 5분마다 500 revision 데이터가 생성된다고 가정하면 5분마다 500 revision이 계속하여 compaction
2) Periodic 모드 - 시간으로 인식
ex) retention이 1h(1h 지나면 비울거임)이고 30분마다 500 revision 데이터가 생성된다고 가정하면 30분마다 500 revision이 계속하여 compaction
Database backup snapshot != 로그 리텐션(Log retention)
= etcd 프로세스가 commit한 log가 저장된 데이터베이스 파일의 백업
= etcd의 API를 이용한 백업 파일 != 단순하게 etcd 데이터 파일 경로(data dir)에 존재하는 db 파일을 복제(copy)한 것
etcd의 메타데이터 = etcd 클러스터를 식별하기 위한 uuid와 etcd 클러스터에 속한 멤버의 uuid가 저장되어있음