【问题标题】:Is couchdb good for lot of documents with file attachments over multiple servers?couchdb 是否适用于多个服务器上带有文件附件的大量文档?
【发布时间】:2011-07-29 19:42:56
【问题描述】:

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

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

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

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

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

你在这里看到了什么问题?

需要更多信息请询问:)

【问题讨论】:

    标签: database couchdb storage couchbase


    【解决方案1】:

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

    但是。

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

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

    Couch、Lounge 有“第 3 方”分片解决方案。

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

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

    附录:

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

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

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

    【讨论】:

    • 10TB 是所有数据库一起在一台服务器上,而不是一个文件。附件大约 10 MB 我正在考虑使用一些分布式文件系统,但我也必须存储一些关于文件的数据(元数据,关于文件的所有信息,它是什么,描述,什么时候在哪里谁......等等),那么我将有太多东西可以使用数据库和文件系统。拥有一个将它们组合在一起的单一数据库将是令人高兴的。在小范围内它可以工作,但想听听当我将分成多个节点和 TB 数据时会出现什么问题。它会起作用吗?谢谢
    猜你喜欢
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2017-11-09
    相关资源
    最近更新 更多