쓰기 최적화 핵심

요청은 빠르게 받아 적고, 디스크 정리는 뒤로 미룬다

Cassandra는 쓰기 순간에 Commit LogMemtable에 먼저 반영하고, 나중에 SSTableCompaction으로 디스크 구조를 정리한다.

쓰기 순간

한 번의 쓰기 요청이 두 곳에 즉시 반영된다

write request -> Commit Log + Memtable
1. Commit Log 변경 내역을 순차 append

장애가 나도 복구할 수 있도록 디스크에 먼저 남긴다.

2. Memtable 메모리에 최신 상태 유지

랜덤 디스크 수정 없이 쓰기 요청을 빠르게 흡수한다.

뒤에서 정리

메모리가 차면 불변 파일로 내려 쓰고 병합한다

Memtable full -> Flush to SSTable -> Compaction
3. Flush SSTable로 한 번에 기록

Memtable 내용을 정렬된 불변 파일로 내려 순차 쓰기 흐름을 유지한다.

4. Compaction 여러 SSTable과 Tombstone 정리

앞단 쓰기 경로를 막지 않고, 백그라운드에서 읽기 구조를 정돈한다.

결과: 쓰기 시점의 핵심 작업은 순차 로그 기록 + 메모리 갱신으로 짧고, 무거운 디스크 정리는 뒤로 분리된다.