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 添加投票门。

  • 可能进行一些性能测试,以调整对象的存储方式。

依赖项

注意

本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode