Подтвердить что ты не робот

Как вы планируете обновление индексов в CouchDB

Насколько я понимаю, индексы CouchDB обновляются при просмотре представления. Предполагая, что есть больше чтений, чем пишет, разве это не плохо для масштабирования? Как настроить CouchDB для обновления индексов при записи или, еще лучше, в расписании?

4b9b3361

Ответ 1

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

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

Пример script для выполнения именно того, что доступно на вики CouchDB в [1].

[1] http://wiki.apache.org/couchdb/RegeneratingViewsOnUpdate

Ответ 2

a) "Масштабирование" является таким перегруженным термином. К какому "виду" масштабирования вы относитесь? (В любом случае, я не вижу, как это негативно влияет на вас).

b) Обновление при записи: просто запросите свой просмотр после записи. Обратите внимание, что добавление буфера данных в индекс более дружелюбен к ресурсам (что не относится к CouchDB). Таким образом, вы можете запускать свое представление каждый N пишет.

c) Запланировано: настройте cronjob, который запрашивает ваше представление каждые M минут.

d) Подождите, пока CouchDB будет развиваться, чтобы предоставить вам инфраструктуру, которая позволяет вам настроить ее с помощью параметра конфигурации.

e) (ЛУЧШИЙ ВАРИАНТ). Потрогайте руки и помогите нам полировать CouchDB! Любые вклады очень ценятся.

d) RTFM (blink:)

Ответ 3

Вы не можете, а также, зачем вам это нужно?

Подумайте об этом так:

  • Когда вы импортируете данные в MySQL, вы можете включать индексы, потому что более дорого обновлять индекс для каждой вставляемой строки, чем обновлять индекс для 100 операций записи (или сколько угодно строк) за один проход.
  • Вот почему CouchDB обновляет индекс при чтении, потому что менее дорого интегрировать эти 100 изменений в одно и то же время, после чего каждый изменяется при его написании.

Это одно из преимуществ CouchDB!:) Я не говорю, что это функция CouchDB, но она просто умна, чтобы делать это при чтении.

Одна вещь, которую вы можете сделать, - читать с помощью update = false, которая является грязной и может не возвращать то, что вы ожидаете. Если вы всегда это делаете, вы можете запланировать "регулярное" чтение через cronjob и обновить свой индекс. Я просто не думаю, что это имеет смысл.