2016-12-13 14 views
2

Я часто просматриваю представления Couchbase (каждую минуту - прокручивать поток) с помощью Java 2.1 SDK с параметром Stale как FALSE. Когда-то я видел, как индексирование застряло долгое время. Должен ли я удалить устаревший параметр из кода или уменьшить частоту доступа к представлениям? Кстати, на каждую минуту нет вставки/обновления. Я прилагаю скриншот enter image description hereCouchbase Indexing Views слишком часто

ответ

2

Прежде всего, я думаю, вы должны решить, что ваш запрос действительно нужен Консистенция. Потому что stale=false заставляет Couchbase восстанавливать индекс все время всякий раз, когда приходит запрос.

from "Learning Couchbase"

Когда клиенты используют ложное значение в несвежем параметре, он указует Couchbase, что он хочет мнение быть перестроено перед подачей запроса, только в случае, если есть какое-либо изменение или добавление документов в ведро. Однако имейте в виду, что это задержит запрос на обслуживание, так как Couchbase должен перестроить индекс перед ответом на запрос. Вы можете использовать эту опцию, если вам требуется актуальная информация все время, когда документы извлекаются из ведра с помощью представлений. Например, если вы хотите найти максимальный объем продаж в определенный день из документов, содержащих продажи в каждом магазине. В этом случае нам нужно учитывать все документы, созданные в ведре, в том числе тот, который находится в ОЗУ, но все же выливается на диск.

from couchbase doc

обновление индекса может быть сложен, если несколько клиентов запрашивать мнению обновляться до информации возвращается (несвежая = ложью). Несколько клиентов, обновляющих и запрашивающие данные индекса, могут каждый раз получать обновленный документ и версию представления. Для запросов stale = update_after нет стекирования, поскольку все обновления возникают после обращения к запросу.

1

В зависимости от того, как вы на самом деле использовать данные (и более конкретно - как часто новые данные записаны в couchbase), возможно, было бы лучше, чтобы превратить «несвежий» флаг выключен (как это было предложено CodeDreamer в другой ответ) И, кроме того, убедитесь, что представление пересчитывается после каждой вставки (в отличие от того, что было до самого вытягивания).

Вы можете достичь этого путем искусственного запроса данных с помощью stale = true после каждой вставки (но только тогда). Конечным результатом будет результат согласования с большей частью, особенно если у вас мало записей, которые извлекаются относительно быстро (потому что в большинстве случаев представление уже было проиндексировано).

+0

ОК, но иногда индексирование длится долгое время, поэтому доступ к данным с клиентскими SDK невозможен – Sivailango

 Смежные вопросы

  • Нет связанных вопросов^_^