【问题标题】:Storing lots of attachments in single CouchDB document在单个 CouchDB 文档中存储大量附件
【发布时间】:2012-01-08 15:37:54
【问题描述】:

tl;dr :我应该在 CouchDB 中将目录存储为附件列表还是单个 tar

我一直在使用 CouchDB 来存储项目文档。我只是通过 Futon 创建文档并直接从那里上传。我还编写了一个批量上传目录的脚本。我使用它就像一个基本的内容存储库。我复制了它,因此我团队中的其他人拥有该存储库的副本。

我注意到将目录保存为一系列文件似乎有很多存储开销,因此我上传了一个包含该目录的.tar.gz 文件。这确实显着减小了文档的大小,但现在任何对目录的更改都需要复制整个 tarball。

我正在寻找有关此事的想法或观点。

【问题讨论】:

  • 你试过单独压缩每个文件吗?

标签: couchdb archive tar attachment


【解决方案1】:

这真的取决于你想要实现什么。我会尝试提供一些选项供您考虑。

存储一个 tar.gz 可以节省空间,但它确实会使其更难使用。如果您只是存档,它可能对您有用。

将所有附件存储在一个文档中非常适合 couchapps。工作流程是在您准备好发布应用程序之前处理附件,然后复制不会有很多开销,因为它通常是一次。很高兴它们是一个文档,因为它们都作为一个捆绑包移动/复制。将这种方法用于内容管理系统的缺点是,您可能会获得大量历史包袱,您必须在本地沙发上压缩这些包袱。此外,在沙发之间的复制过程中,您会遇到很多冲突,并且沙发会保留冲突供您解决。因此,如果您选择此模型,您应该经常压缩以减小磁盘大小。

对于内容管理系统,我可能建议每个附件使用一个文档。那会给你更少的冲突。由于每个文档都会为文档本身分配一些空间,因此会有轻微的开销,但是必须进行频繁的压缩和/或冲突解决会更好地节省。

希望能给你一些权衡的选择。

【讨论】:

  • 我想我会为每个附件使用一个文档,无论是单个文件还是 tar.gz 包。我认为管理冲突和压缩足以让我远离每个文档的太多附件。
猜你喜欢
  • 1970-01-01
  • 2010-12-25
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
  • 2011-02-19
  • 2013-11-05
相关资源
最近更新 更多