피드로 돌아가기
InfoQInfrastructure
원문 읽기
Immutable Storage의 Fragmentation 해결을 위한 L2/L3 Compaction 전략 도입
Dropbox Redesigns Compaction to Reclaim Space from Underfilled Storage Volumes
AI 요약
Context
Immutable Blob Store인 Magic Pocket에서 데이터 업데이트 및 삭제 시 즉각적인 공간 회수가 불가능한 구조적 제약 존재. 최근 Write Amplification 감소를 위한 서비스 변경 후, 일부 볼륨의 사용률이 5% 미만으로 떨어지는 심각한 Data Fragmentation 발생.
Technical Solution
- Immutable Volume 특성상 기존 데이터 수정이 불가함에 따라 Live Blob을 추출해 새 볼륨에 기록하고 기존 볼륨을 폐기하는 Compaction 방식 채택
- 기존의 점진적 채우기 방식 대신 여러 Sparse Volume을 하나의 Full Volume으로 통합하는 L2 전략 도입을 통한 공간 회수 속도 향상
- L2로 해결 불가능한 극심한 저밀도 볼륨 처리를 위해 Live Coder 서비스를 통해 데이터를 스트리밍하고 Erasure-coded Volume으로 재작성하는 L3 전략 구현
- 시스템 리소스 부하 방지를 위해 비효율성이 높은 볼륨부터 우선순위를 부여하는 정교한 Cleanup 스케줄링 적용
- Erasure Coding 기법을 병행 적용하여 데이터 파편화 회수 과정에서도 하드웨어 장애에 대응하는 고가용성 유지
실천 포인트
1. Immutable 데이터 저장소 설계 시 삭제/수정 시점의 공간 회수 지연(Fragmentation) 대책이 수립되었는지 확인
2. 데이터 밀도에 따라 가변적인 Compaction 정책(L2, L3 등)을 적용하여 리소스 낭비 최소화
3. 인프라 변경이 가져올 의도치 않은 Side Effect(예: 쓰기 증폭 감소가 파편화 증가로 이어지는 현상)를 모니터링하는 체계 구축