플래시 메모리 수명 연장 B트리
초록
본 논문은 기존 B‑트리 구조를 플래시 메모리의 특성에 맞게 최적화한 FM 트리를 제안한다. 쓰기와 지우기 연산을 최소화하고, 블록당 평균 소거 횟수를 27배에서 70배까지 감소시켜 플래시의 내구성을 크게 향상시키면서도 로그 시간 검색·삽입·삭제를 유지한다.
상세 분석
FM 트리는 플래시 메모리의 제한적인 쓰기·소거 특성을 고려해 B‑트리의 노드 구조와 업데이트 방식을 근본적으로 재설계한다. 전통적인 B‑트리는 노드가 가득 차면 분할(split)과 병합(merge) 과정에서 해당 페이지에 다수의 쓰기와 블록 소거가 발생한다. 이는 플래시 메모리에서 ‘프로그램‑증가’(write‑once)와 ‘블록‑소거’(erase‑block) 비용을 급격히 증가시켜 수명을 단축시킨다. FM 트리는 이러한 비용을 최소화하기 위해 두 가지 핵심 메커니즘을 도입한다. 첫째, 노드 내부에 ‘유효 비트맵’와 ‘로그 영역’을 두어 삽입·삭제 시 기존 데이터를 즉시 덮어쓰지 않고 로그에 기록한다. 로그가 일정 크기에 도달하면 배치 합병(batch‑merge) 과정을 통해 한 번에 여러 변경을 적용하고, 이때 발생하는 소거는 최소화된 블록 단위로 수행한다. 둘째, ‘레벨‑별 웨어 레벨링(wear‑leveling)’ 전략을 적용해 자주 사용되는 상위 레벨 노드와 하위 레벨 노드가 동일한 블록에 집중되지 않도록 배분한다. 결과적으로 각 블록의 소거 횟수는 평균 27배~70배 감소하고, 쓰기 증폭(write amplification)도 크게 억제된다. 알고리즘 복잡도는 기존 B‑트리와 동일하게 검색·삽입·삭제가 O(log N)이며, 추가된 로그 관리와 배치 합병은 백그라운드에서 비동기적으로 수행돼 전반적인 응답 시간에 미미한 영향을 준다. 실험에서는 다양한 워크로드(읽기‑중심, 쓰기‑중심, 혼합)와 플래시 종류(SLC, MLC, TLC)를 대상으로 성능과 내구성을 평가했으며, 모든 경우에서 FM 트리가 기존 B‑트리 대비 최소 20배 이상의 수명 연장을 보였다. 이러한 설계는 데이터베이스 인덱스, 파일 시스템 메타데이터, 임베디드 키‑값 저장소 등 플래시 기반 시스템에 직접 적용 가능하며, 기존 하드웨어를 교체하지 않고도 지속 가능한 스토리지 운영을 실현한다.