2011-11-29 38 views
2

TL在附件;博士:我应该存储在CouchDB中的目录作为附件列表,或单个焦油存储大量单CouchDB文档

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

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

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

+0

你试过分别压缩每一个文件吗? –

回答

1

这真的取决于你想达到的目标。我会尽量提供一些选项供您考虑。

存储一个tar.gz将节省您的空间,但它确实使它更难以使用。如果您只是简单归档,它可能适合您。

将所有附件存储在一个文档中对于couchapps来说效果很好。工作流程是在你准备好发布应用程序之前,处理好附件,然后复制就没有太多的开销,因为它通常是一次。它们是一个文档是很好的,因为它们都作为一个包移动/复制。在内容管理系统中使用这种方法的缺点是,你可以得到很多历史包袱,你必须在当地的沙发上压缩。在沙发之间的复制过程中,你也会遇到很多冲突,沙发会保持冲突以供你解决。因此,如果您选择此型号,则应经常压缩以减小磁盘大小。

对于内容管理系统,我可能会建议每个附件使用一个文档。这会减少冲突。由于每个文档都有一定的空间分配给文档本身,因此会有一些小的开销,但不得不频繁压缩和/或解决冲突的节省会更好。

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

+0

我想我会使用每个附件的单个文档,无论是单个文件还是tar.gz捆绑包。我认为管理冲突和压缩足以让我从每个文档的太多附件中吓跑。 –