4

是否有适合存储大量(即 >10 亿)“中型”blob(即 20 KB 到 2 MB)的 NoSQL(或其他类型)数据库。我所需要的只是从 A(标识符)到 B(blob)的映射、给定 A 检索“B”的能力、用于访问的一致外部 API 以及“只需添加另一台计算机”以扩展系统的能力.

比数据库更简单的东西,例如分布式键值系统,可能会很好,我也很感激任何沿着这种思路的想法。

感谢您的阅读。

布赖恩

4

3 回答 3

2

如果您的 API 要求完全符合“Get(key)、Put(key,blob)、Remove(key)”,那么键值存储(或更准确地说是“持久分布式哈希表”)正是您所需要的正在找。

其中有很多可用的,但如果没有额外的信息,很难做出可靠的推荐——你的目标是什么操作系统?您正在使用哪种语言进行开发?您的应用程序的 I/O 特征是什么(冷数据/不可变数据,例如图像?高写入负载又称为推文?)

一些值得研究的 KV 系统: - MemcacheDB - Berkeley DB - Voldemort

您可能还想查看文档存储,例如CouchDBRavenDB *。文档存储类似于 KV 存储,但它们了解持久性格式(通常是 JSON),因此它们可以提供额外的服务,例如索引。

  • 如果您在 .Net 中进行开发,请直接跳到 RavenDB(稍后您会感谢我)
于 2010-10-25T09:02:58.153 回答
1

长耳兔呢?

Apache Jackrabbit™ 是 Java 技术 API 的内容存储库(JCR,在 JSR 170 和 283 中指定)的完全一致的实现。

内容存储库是一种分层内容存储,支持结构化和非结构化内容、全文搜索、版本控制、事务、观察等。

我在 Liferay CMS 工作时认识 Jackrabbit。Liferay 使用 Jackrabbit 来实现其文档库。它将用户文件存储在服务器的文件系统中。

于 2010-10-25T01:28:00.307 回答
1

您还想看看Riak。Riak 非常专注于完全按照您的要求进行操作(只需添加节点,易于访问)。

于 2010-10-27T19:23:46.990 回答