(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=39235593
SeaweedFS 是一种高度优化的对象存储,专为结构化和半结构化数据而设计。 但是,它不提供与传统数据库、文件系统或 S3 等效的完整功能。
将 SeaweedFS 与 Amazon S3 进行比较,与使用标准 S3 和传统工具相比,SeaweedFS 有多个优势,包括:
1. 成本更低——对于某些类型的工作负载和架构,尤其是较小规模的部署,与 S3 相比,使用 SeaweedFS 可以显着节省成本。 由于 SeaweedFS 在操作系统内核中本地运行,因此避免了与使用 Amazon S3 相关的跨进程通信和相关税收。 此外,SeaweedFS 可以利用本机设备驱动程序在特定平台或配置上提供最佳性能。
2. 增强一致性——与S3不同,SeaweedFS提供最终一致性语义,可以更轻松地确保应用程序和数据兼容性。 相比之下,S3 使用最终一致的语义,这可能会因陈旧数据而导致意外行为或错误。
3. 更简单的实施 – SeaweedFS 建立在开放标准之上,可以通过最少的架构更改来实施。 另一方面,将 S3 兼容应用程序集成到现有基础设施中需要自定义接口实现,从而导致复杂性和成本增加。
然而,S3 仍然提供 SeaweedFS 目前不提供的独特功能,例如自动分层和自动缩放。 最终,这取决于特定的用例和基础设施要求。
就 SeaweedFS 的替代选项而言,另一个类似的选项是 MinIO。 两者有一些共同点,主要是支持使用 RocksDB 以字节粒度提供对数据的低延迟访问,重点是常见工作负载的高性能。 其他显着差异包括定价模型和运营考虑因素。
为了解决元数据处理方面的限制,SeaweedFS 旨在提供分布式、去中心化的元数据管理架构,最大限度地减少跨进程通信并确保强大的一致性保证。 同样,MinIO 提供内置于其节点软件中的元数据管理功能,允许自动管理元数据。 总的来说,这两个选项都旨在平衡灵活性和简单性,为开发人员和管理员提供适合各种用例的工具,无论是数据湖、大数据环境还是各种
The docs and operational tooling feel a bit janky at first, but they get the job done, and the whole project is surprisingly feature-rich. I've dealt with basic power-outages, hardware-caused data corruption (cheap old SSDs), etc, and it was possible to recover.
In some ways I feel like the surprising thing is that there is such a gap in open source S3 API blob stores. Minio is very simple and great, but is one-file-per-object on disk (great for maybe 90% of use-cases, but not billions of thumbnails). Ceph et al are quite complex. There are a bunch of almost-sort-kinda solutions like base64-encoded bytes in HBase/postgresql/etc, or chunking (like MongoDB), but really you just want to concatenate the bytes like a .tar file, and index in with range requests.
The Wayback Machine's WARC files plus CDX (index files with offset/range) is pretty close.
reply