피드로 돌아가기
What is Apache Iceberg? The Table Format Revolution
Dev.toDev.to
Database

Directory Listing 제거 및 Metadata Tree 기반 O(1) 파일 탐색 구현

What is Apache Iceberg? The Table Format Revolution

Alex Merced2026년 4월 13일4advanced

Context

기존 Apache Hive 아키텍처의 Directory Listing 방식이 S3와 같은 Cloud Object Storage의 Throttle 제한 및 성능 병목 유발. 동시 쓰기 작업 시 Metadata 동기화 지연으로 인한 데이터 일관성 결여 및 데이터 스왐프(Data Swamp) 현상 발생.

Technical Solution

  • Cloud Storage의 파일 시스템 의존성을 제거하고 전용 Metadata Tree 구조를 도입한 상태 관리 설계
  • Catalog에서 Metadata.json으로 이어지는 Single Pointer 구조를 통한 Atomic Commit 및 트랜잭션 보장
  • Manifest List와 Manifest File의 계층 구조를 구축하여 실제 데이터 접근 전 필요한 파일만 식별하는 O(1) Lookup 구현
  • Column에 고유 ID를 부여하여 문자열 기반 이름 변경과 무관하게 Schema Evolution을 처리하는 메타데이터 매핑 전략
  • Partition 로직을 메타데이터에 추상화하여 물리적 데이터 재작성 없이 변경 가능한 Hidden Partitioning 적용
  • Immutable Snapshot 기반의 Write-ahead 구조를 통해 데이터 복제 없이 이전 상태로 복구하는 Time Travel 기능 구현

- 대규모 Object Storage 설계 시 파일 시스템의 Listing API 의존성을 최소화하고 별도의 Index/Metadata 레이어 구축 검토 - Schema 변경이 빈번한 데이터 레이크 설계 시 물리적 구조와 논리적 뷰를 분리하는 ID 기반 매핑 체계 도입 - 데이터 무결성 보장을 위해 In-place Update 대신 Immutable Snapshot 방식을 통한 롤백 메커니즘 설계

원문 읽기