Много ли проектных документов увязло в Couchdb? - PullRequest
4 голосов
/ 21 января 2012

Моя компания использует CouchDB, и мне скоро придется с ней взаимодействовать, поэтому я получаю ускоренный курс по ней, и, когда я читал различные учебные пособия и примеры, я наткнулся на один, который сделал Интересно: много ли дизайнерских документов увязло в CouchDB?

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

Но не означает ли это, что в лучшем случае (с точки зрения бизнеса) у вас будет тысяч проектных документов? Мне приходит в голову, что, поскольку каждый из этих проектных документов должен быть запущен для каждой вставки, хотя бы для того, чтобы ничего не излучать, это в конечном итоге стало бы чрезмерной нагрузкой на сервер.

Я упускаю что-то важное в дизайне CouchDB, что делает это проблемой? Или есть более разумный способ справиться с этим?

Ответы [ 2 ]

7 голосов
/ 21 января 2012

Я, вероятно, не рекомендовал бы такой подход.Давайте рассмотрим некоторые случаи:

Новый клиент

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

Новая запись / или изменение записи

Любое другое изменение документа будет проходить через все функции просмотра конструкторского документа.

Альтернатива

Создание базы данныхдля каждого клиента.Один дизайн документа в каждой БД.Иметь основную базу данных для агрегации, на которую реплицируются все базы данных клиента.

3 голосов
/ 21 января 2012

AFAIK CouchDB обновляет представления только при первом запросе результатов (поэтому у них есть опция «устаревшие представления»).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...