S3 是文件,但不是文件系统

主要观点:

  • S3 是原始的云技术,被称为“对象存储”但实际更像云文件系统,其接口与 Unix 文件 API 有差异,是“深模块”。
  • Unix 文件 API 简单直接,五个基本函数处理多种文件相关事务,是“深模块”,而以 YAML 为接口的模块通常较“浅”。
  • S3 接口比 Unix 文件 API 更简单,功能比例更好,但缺少部分功能,如不能部分覆盖写、无重命名或移动操作、列表文件慢等。
  • 各类数据库依赖部分覆盖写功能,将数据存储在文件中,不能很好地移植到 S3 上,与 S3 结合会出现问题。
  • 模块深度在组织间交互中更重要,SAP 因接口不深导致集成成本高、项目易失败,S3 虽被称为“简单存储服务”但实际并不简单。

关键信息:

  • S3 2006 年推出,可高速读写,带宽极高。
  • Unix 文件 API 的五个基本函数及所处理事务。
  • S3 的基本调用与 Unix 文件 API 基本调用的对比。
  • 数据库依赖部分覆盖写及在 S3 上的存储问题。
  • 模块深度对组织间交互的影响及 SAP 的案例。

重要细节:

  • S3 存储文件时每次写都是整个文件覆盖,舍弃了数据库的事务完整性。
  • 重命名在 S3 中需先复制再删除,耗时线性于文件大小。
  • 列表文件在 S3 中比在本地文件系统慢。
  • S3 接口仅为 XML,未发布 JSON 版本,且放弃维护 XSD 模式,无本地测试环境,默认不开启校验和,曾有最终一致性问题等。
阅读 8
0 条评论