Хранение множества вложений в одном документе CouchDB - PullRequest
2 голосов
/ 29 ноября 2011

tl; dr : Должен ли я хранить каталоги в CouchDB в виде списка вложений или в виде одного tar

Я использую CouchDB для хранения документов проекта. Я просто создаю документы через Futon и загружаю их прямо оттуда. Я также написал скрипт для массовой загрузки каталогов. Я использую его как базовый репозиторий контента. Я копирую его, чтобы у других людей в моей команде была копия хранилища.

Я заметил, что сохранение каталогов в виде серии файлов, похоже, требует много места для хранения, поэтому вместо этого я загружаю файл .tar.gz, содержащий каталог. Это значительно уменьшает размер документа , но теперь любое изменение каталога требует репликации всего архива.

Я ищу мысли или точку зрения по этому вопросу.

1 Ответ

1 голос
/ 29 ноября 2011

Это действительно зависит от того, чего вы хотите достичь.Я постараюсь предоставить вам несколько вариантов для рассмотрения.

Хранение одного tar.gz сэкономит вам место, но с ним будет сложнее работать.Если вы просто архивируете, это может работать на вас.

Хранение всех вложений в одном документе хорошо работает для couchapps.Рабочий процесс заключается в том, что вы возитесь с вложениями до тех пор, пока не будете готовы выпустить приложение, тогда для репликации не нужно много накладных расходов, поскольку обычно это происходит один раз.Хорошо, что они являются одним документом, потому что все они перемещаются / копируются как один пакет.Недостатки использования этого подхода для системы управления контентом состоят в том, что вы можете получить много исторического багажа, который вам придется спрессовать на местном диване.Кроме того, вы получите много конфликтов во время репликации между кушетками, и кушетка будет держать конфликты вокруг вас для разрешения.Поэтому, если вы выбираете эту модель, вам следует часто сжимать, чтобы уменьшить размер диска.

Для системы управления контентом, я мог бы рекомендовать использовать один документ на вложение.Это дало бы вам меньше конфликтов.Это приведет к небольшим накладным расходам, поскольку каждому документу будет выделено определенное пространство для самого документа, но экономия при необходимости частого сжатия и / или разрешения конфликтов будет лучше.

Надеюсь, это даст вам несколько вариантов для взвешивания.

...