CouchDB Управление версиями / Аудит - PullRequest
1 голос
/ 13 мая 2010

Я пытаюсь использовать CouchDB для системы, которая требует полного аудита всех операций с данными. Из-за встроенной функции отслеживания изменений диван казался идеальным выбором. Но затем я прочитал в учебнике О'Рейли , что «CouchDB не гарантирует, что старые версии будут храниться».

Кажется, я не могу найти намного больше документации по этому вопросу, или как куш имеет внутреннее отслеживание изменений. Есть ли способ настроить кушетку либо на уровне базы данных, либо на уровне документа, чтобы навсегда сохранить все версии? Если так, то как?

Ответы [ 3 ]

8 голосов
/ 13 мая 2010

Ревизии в CouchDB не являются ревизиями того, как вы о них думаете. Они являются артефактом способа добавления обновленных данных в базу данных и очищаются при сжатии. Это распространенное недоразумение.

Вам необходимо внедрить отслеживание версий как часть схемы / документа проекта вашего приложения.

0 голосов
/ 25 июля 2012

Существуют две ситуации, когда предыдущие версии документов в CouchDB удаляются:

  1. Репликация
  2. Сжатие

Таким образом, если вы этого не сделаетехотите хранить много данных, терабайт, то вам, вероятно, не нужно репликация .В любом случае, репликация мастер-мастер в CouchDB - это одна из самых важных функций.Размер CouchDB на диске больше, чем у традиционной базы данных, поэтому, вероятно, в будущем вам потребуется сжатие .

Как упомянуто выше: вам необходимо внедрить отслеживание версий как часть схемы / проекта документа вашего приложения.

0 голосов
/ 13 мая 2010

couch хранит все версии, но если вы нажмете на футон по ссылке «компактная база данных», все предыдущие версии будут удалены. Так что, если в любой момент щелкнуть компактную базу данных, все версии будут сохранены, я думаю:)

...