1

我很想听听你对 couchdb 的看法,它会处理我的用例吗?

我将做什么,我将有一个数据库,我在其中存储大小约为 20kb 的文档,每个附件为 1-10MB。

  1. 沙发会使用我的架构为每台服务器处理 10TB 或更多的数据库吗?(在 4u 的情况下,您可以放置​​ 24 个 2TB 驱动器,每个沙发节点是否太多了?读取会非常少,所以我需要速度

  2. 沙发将能够复制所有带有附件的文档

  3. 如何将所有数据拆分到多个服务器(例如 4 个节点)?它会处理那么多附件吗?

你在这里看到什么问题?

需要更多信息请询问:)

4

1 回答 1

3

我不认为你会遇到 10TB 文件的物理限制,也就是说,我不认为沙发有一些内置的“不能使用大于 X 的文件”,而 X 小于 10TB。

然而。

最大的问题是文件压缩。为了回收空间,Couch 想要压缩文件。这实际上意味着复制文件。因此,至少在某些时候,10TB 需要为 20TB,因为它复制了新副本中的实时数据。

如果您主要是附加到文件,也就是说您只是添加新数据而不是更新或覆盖旧数据,那么这将不是一个问题,因为压缩不会为您带来太多好处。如果您的数据基本上是静态的,那么我将构建文件并最后一次压缩它并完成它。

Couch、Lounge 有“第 3 方”分片解决方案,很受欢迎。

当我接近沙发解决方案时,首先要考虑的是您的查询条件是什么。沙发就是关于观点的,真的。你在看什么样的观点?如果您只是通过一些简单的键(文件名、日期或其他)存储数据,坦率地说,您最好使用文件系统和适当的目录结构。

因此,由于您不打算进行大量阅读,因此我想更多地了解您计划使用的观点。

附加物:

你还没有提到你正在寻找什么样的查询。查询实际上是设计组件,尤其是对于 Couch DB,因为在大型数据集上添加新查询变得越来越困难。

当您说附件时,我假设您指的是 Couch DB 有效负载的附件(因为它可以处理附件)。

因此,综上所述,您可以轻松地创建元数据文档来捕获您想要捕获的所有信息,并且作为该文档的一部分,将路径名添加到存储在文件系统上的实际文件中。这将显着减小 Couch 文件的整体大小,从而使维护更快、更高效。当然,您失去了将其全部放在一个文档中的一些“自包含”部分。

于 2011-07-29T20:17:14.587 回答