Насколько я понимаю, индексы CouchDB обновляются при просмотре представления. Предполагая, что есть больше чтений, чем пишет, разве это не плохо для масштабирования? Как настроить CouchDB для обновления индексов при записи или, еще лучше, по расписанию?Как вы планируете обновление индексов в CouchDB
ответ
CouchDB восстанавливает представления при обновлении, но только на том, что изменилось с момента последнего доступа к просмотру. Предполагая, что ваш объем чтения значительно перевешивает ваш объем записи, это не должно быть проблемой.
Когда вы меняете большое количество документов одновременно, это может привести к тому, что первые запросы на чтение займет заметное количество времени. Чтобы облегчить это, было предложено несколько разных возможностей. Большинство полагается на регистрацию с уведомлением об обновлении и запуском обновлений CouchDB.
Пример сценария для выполнения именно того, что доступно на вики CouchDB в [1].
[1] http://wiki.apache.org/couchdb/RegeneratingViewsOnUpdate
Вы не можете, а также, почему вы хотите этого?
Подумайте об этом так:
- При импорте данных в MySQL вы можете превратить из indizes, потому что это более дорогой для обновления индекса для каждой строки при вставке, чем обновлять индекс для 100 записывает (или сколько угодно строк) в один проход.
- Именно поэтому CouchDB обновляет индекс при чтении, потому что менее затратно интегрировать эти 100 изменений в одно и то же время, а затем каждый изменяется, когда он написан.
Это одно из преимуществ CouchDB! :) Я не говорю, что это только функция CouchDB, но это просто умно, чтобы делать это при чтении.
Одна вещь, которую вы можете сделать, это прочитать с помощью update = false, который является грязным и может не возвращать то, что вы ожидаете. Если вы всегда это делаете, вы можете запланировать «регулярное» чтение через cronjob и обновить свой индекс. Я просто не думаю, что это имеет смысл.
a) «Масштабирование» является таким перегруженным термином. К какому «виду» масштабирования вы относитесь? (В любом случае, я не вижу, как это негативно влияет на вас).
b) Обновление при записи: просто запросите свой вид после записи. Обратите внимание, что добавление буфера данных в индекс более дружелюбен к ресурсам (что не относится к CouchDB). Таким образом, вы можете запускать свое представление каждый N записи.
c) Запланировано: настроить крону, которая запрашивает ваш просмотр каждые M минут.
d) Подождите, пока CouchDB будет развиваться, чтобы предоставить вам инфраструктуру, которая позволит вам установить ее с помощью параметра конфигурации.
e) (ЛУЧШИЙ ВАРИАНТ). Потрогайте руки и помогите нам полировать CouchDB! Любые вклады высоко оценены.
- 1. Как вы планируете в Джире, как TFS
- 2. Как вы планируете приложение BPM в asp.net?
- 3. Как вы планируете синхронизировать события в Flask?
- 4. Что вы планируете использовать JavaScript?
- 5. ATTACH - Планируете ли вы заплатить?
- 6. Scrum/Agile: Как вы планируете внутренние улучшения?
- 7. Как вы планируете свое приложение Rails?
- 8. Как вы организуете/планируете свои тестовые скрипты
- 9. Как вы планируете выполнение рабочего процесса Windows?
- 10. Как вы планируете установить модульные вкладки clojure?
- 11. Как вы планируете небольшие результаты работы?
- 12. Как вы планируете создавать новую веб-систему?
- 13. Что вы планируете использовать в Perl RESTful?
- 14. Сколько вы планируете, прежде чем начинать код?
- 15. Как вы планируете размещать страницу в VS2010 без использования таблиц?
- 16. Как вы планируете включать файлы в проект C?
- 17. Как вы планируете ежедневный запуск сценария в Windows XP?
- 18. Как обрабатывать ветвление, когда вы планируете переписывать в будущем?
- 19. Как вы выходите из couchdb?
- 20. CouchDB: автоматическое обновление полей
- 21. Обновление документа CouchDB в nano
- 22. обновление DOC CouchDB
- 23. CouchDB дизайн обновление док
- 24. CouchDB объект обновление безопасности
- 25. Обновление одного поля в CouchDB
- 26. Массовое обновление записей в CouchDB
- 27. Как вы планируете строить сборку TFS 2008 каждый час?
- 28. Как вы планируете выполнение блока на следующей итерации цикла запуска?
- 29. MS Azure Pay Как вы планируете Платить арендодателю хостинга
- 30. Как вы планируете параметризованный тип с помощью JAX-WS/JAXB?
Есть ли способ, чтобы распространить расчет индекса на несколько машин или это делается автоматически при репликации установлена? – 2012-10-02 11:01:43
@ThomasFankhauser: sharding?см. BigCouch – OrangeDog 2012-10-30 10:13:27