earth-mover/icechunk

Open-source, cloud-native transactional tensor storage engine

解决的问题

Icechunk 为张量和 ND 数组数据提供了一个事务性存储引擎,专为云对象存储设计。它解决了多个未协调的进程并行读写 Zarr 数据时出现的一致性和安全性问题,使 Zarr 存储更像一个具有可序列化隔离的数据库。

工作原理

Icechunk 在 Zarr 键和实际磁盘存储之间增加了一层间接映射。它不将 Zarr 键直接映射到文件名,而是管理一组不可变的元数据和数据文件,包括一个显式跟踪每个数据块的「块清单」。这使得它可以实现事务,更新以原子方式提交,并且在事务完成前对读取者不可见。

适用人群

专为处理大规模多维数组(张量)并需要使用 Zarr 规范实现可靠、协作式云存储的数据科学家、AI/ML 工程师和科研人员设计。

主要特性

  • 可序列化隔离:读取操作与并发写入隔离,确保用户始终看到已提交的快照。
  • 数据版本控制:支持分支(可变引用)和标签(不可变引用),用于管理数据集的不同版本。
  • 时间旅行:新更新后,旧的仓库快照仍可访问。
  • 块分片:将块存储与文件名解耦,允许多个块打包到单个对象中,提升性能。
  • 虚拟数据集:可引用其他格式(如 HDF5 或 NetCDF)中的块,而无需修改原始文件。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目