Elassandra Поиск реплицированных данных - PullRequest
0 голосов
/ 14 ноября 2018

Как определяется token_range в Elassandra при распространении запроса на узел?

Что происходит, когда данные реплицируются через узлы Elassandra?

Как происходит фильтрация дублированных результатов?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Elassandra распределяет запрос по узлам в соответствии с search_strategy_class целевого индекса.Существует две стратегии: PrimaryFirstSearchStrategy (по умолчанию) и RandomSearchStrategy.

Первичная стратегия первого поиска

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

Стратегия случайного поиска

Когда RF> 1, полное кольцо может быть достигнуто только с подмножеством узлов.Стратегия случайного поиска использует это преимущество путем случайного выбора такого поднабора узлов для повышения эффективности поиска.

Обе стратегии добавляют фильтр token_range к каждому подзапросу в соответствии с поведением, описанным выше.Поэтому фильтрация происходит локально, а не в координатном узле.

0 голосов
/ 01 февраля 2019

Насколько я понимаю, запросы проходят по кластеру аналогично тому, как это делает Кассандра.

Репликация данных не имеет значения для Elasticsearch.Они создают свои собственные таблицы для создания своей поисковой информации, и эти таблицы реплицируются с помощью стандартного механизма Cassandra.Если вы понимаете, как работает репликация Cassandra, то данные Elasticsearch делают то же самое.

Фильтрация происходит потому, что каждому поисковому узлу назначается неперекрывающийся диапазон токенов, который нужно позаботитьсяиз.Другими словами, одному узлу предлагается вернуть результаты для 1, 2, 3, следующему узлу - результаты для 4, 5, 6, а третьему узлу - результаты 7, 8, 9. Поэтому не будет перекрытия ифактическая фильтрация не выполняется.

...