earth-mover/icechunk

Open-source, cloud-native transactional tensor storage engine

해결하는 문제

Icechunk은 텐서 및 ND 배열 데이터를 위한 트랜잭션 스토리지 엔진을 제공하며, 클라우드 객체 스토리지에 특화되어 설계되었습니다. 여러 비협조적인 프로세스가 병렬로 Zarr 데이터를 읽고 쓸 때 발생하는 일관성과 안전성 문제를 해결하여, Zarr 스토어가 시리얼라이즈 가능 격리(serializable isolation)를 갖춘 데이터베이스처럼 작동할 수 있도록 합니다.

작동 방식

Icechunk은 Zarr 키와 실제 디스크 스토리지 사이에 간접 계층을 추가합니다. Zarr 키를 파일 이름에 직접 매핑하는 대신, 불변의 메타데이터와 데이터 파일 시스템을 관리하며, 모든 청크를 명시적으로 추적하는 "청크 매니페스트"를 포함합니다. 이를 통해 트랜잭션을 구현할 수 있으며, 업데이트는 원자적으로 커밋되며 트랜잭션이 완료되기 전까지는 리더에게 보이지 않습니다.

대상 사용자

대규모 다차원 배열(텐서)을 다루고 Zarr 사양을 사용한 신뢰할 수 있는 공동 클라우드 스토리지가 필요한 데이터 과학자, AI/ML 엔지니어, 과학 계산 연구자에게 적합합니다.

주요 기능

  • 시리얼라이즈 가능 격리: 읽기 작업은 동시 쓰기 작업과 격리되어 사용자가 항상 커밋된 스냅샷을 확인할 수 있습니다.
  • 데이터 버전 관리: 브랜치(변경 가능한 참조)와 태그(불변 참조)를 지원하여 데이터셋의 다양한 버전을 관리할 수 있습니다.
  • 타임 트래블: 새로운 업데이트 후에도 이전 리포지토리 스냅샷에 접근 가능하게 유지됩니다.
  • 청크 샤딩: 청크 스토리지를 파일 이름에서 분리하여 여러 청크를 하나의 객체에 패키징함으로써 성능을 향상시킵니다.
  • 가상 데이터셋: HDF5 또는 NetCDF와 같은 다른 형식에 존재하는 청크를 참조할 수 있으며, 원본 파일을 수정하지 않고도 사용할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트