TL;博士:
我想为 avg 提供分布式键值存储的建议。条目大小最大为 50KB,可安装在 Linux 环境(专用服务器)上。
文件系统解决方案就可以了。
我找到了一些解决方案:Ceph、Cassandra、Riak 等等。
细节
我正在为我们的一个组件寻找一种存储解决方案,它应该是一个键值存储、平面命名空间。
设想
读/写模式非常简单:
写入键值后,在接下来的几个小时内会进行几次读取。
之后,没有任何东西触及给定的键值。我们想保留这些数据以供将来使用,“存储模式”。
其他使用方面
- 操作系统:Linux
- Python 客户端/连接器
- 总大小:最大 80TB(这个值也代表未来的需求)。
- 平均条目大小(对于 kv 对中的单个值):10 到 50 KB,未压缩,主要是文本数据
- 压缩:内置或外置。
- 加密:不需要
- 网络带宽:1Gb,单局域网
- 服务器:专用(不在云中)
最重要的要求
“基本”要求是:
- 操作系统:Linux
- Python 客户端/连接器或通过 HTTP 的 RESTful API
- 可以轻松存储高达 80TB(这个数值也代表未来的需求)。
- 最大读取延迟:第一次读取几秒,“存储模式”30 秒(见上文解释)
- 内置复制(以便数据存储在多个节点上)
很高兴有
- RESTful 网关
- 后台数据备份到另一个存储(用于在发生灾难时进行数据恢复)。
- 易于配置
到目前为止我发现了什么
- 头孢
- 高密度文件系统
- HDFS 之上的 HBase
- 光泽
- GlusterFS
- Mongo 的 GridFS - 但我可以信任 Mongo 的基础架构吗?
- Cassandra - 不是一个选项,因为合并过程消耗双倍磁盘大小
- Riak - 看起来和 Cassandra 有同样的问题,需要更多的研究
- Swift + OpenStack(实际存储可以在 Amazon S3 上)
- 伏地魔
- 还有几十个附加工具,但我不会在这里写它们,因为其中一些具有专有许可证,而另一些似乎不成熟。
对于我上面提到的任何工具(总容量超过 50TB)或您认为足够的工具,我将不胜感激。