Swift 存储后端¶
https://blueprints.launchpad.net/zaqar/+spec/swift-storage
Swift 是一个广泛部署的 OpenStack 对象存储解决方案。虽然它并非特别为大量小对象的吞吐量而设计,而 Zaqar 主要处理的就是这些,但它扩展性很好,并且具有很高的容错能力。它还可以为那些希望避免部署和管理 MongoDB 的用户提供替代方案。
驱动程序描述¶
该驱动程序仅实现数据部分,SQL 可用于控制驱动程序。容器用于每个实体和每个项目,以提供多租户支持。
提议的变更¶
该驱动程序使用一个全局服务用户,并将所有消息存储在一个项目中。它使用容器名称的后缀来限定范围。它将主要使用每个实体类型一个容器,以及其他用于附加索引的容器。我们可能需要增加或减少使用的容器数量,以找到合适的性能平衡。
一开始将驱动程序标记为实验性的可能是有价值的,这样我们就可以在不关心数据迁移的情况下更改存储模型。
驱动程序在可靠性方面有哪些保证?¶
我们依赖于 Swift 的适当配置以提供消息可靠性。默认情况下,对象会复制 3 次,这提供了良好的保证。
驱动程序在可扩展性方面有哪些保证?¶
同样,我们依赖于 Swift 的可扩展性保证。
驱动程序在互操作性方面有哪些保证?¶
我们使用公开可用的 Swift API,因此数据易于审计,并且可以在 Zaqar 之外进行恢复。
驱动程序在开放性方面有哪些保证?¶
我们使用 python-swiftclient 访问 Swift,该客户端使用 Apache 2.0 许可证。
实现¶
负责人¶
- 主要负责人
therve
里程碑¶
- 完成目标里程碑
Ocata-3
工作项¶
实现存储驱动程序,并使单元测试通过。
针对 Swift 添加投票门。
可能进行一些性能测试,以调整对象的存储方式。
依赖项¶
依赖于 Swift 对 if-none-match 的修复:https://review.opendev.org/395582
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode