Пространственное индексирование в Apache Ignite - PullRequest
0 голосов
/ 02 ноября 2018

Я знаю пространственное индексирование R-дерева из H2, используя Apache Ignite. Я хочу знать, как этот индекс создается среди узлов кластера. Это глобально? Я имею в виду, создает ли оно единое R-дерево для всех данных среди узлов кластера? Или это создает отдельное R-дерево для каждого узла кластера? Если R-дерево отдельно для каждого узла, то как оно выполняет пространственное соединение между узлами. Мой последний вопрос, какова цель B + -дерева здесь. Я видел в документе; дерево B + управляет индексами и данными. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 05 ноября 2018

Это глобально? Я имею в виду, создает ли оно единое R-дерево для всех данных среди узлов кластера? Или это создает отдельное R-дерево для каждого узла кластера?

Отдельные деревья, по одному на узел.

Если R-дерево отдельно для каждого узла, то как оно выполняет пространственное соединение между узлами.

Полагаю, те же правила, что и для непространственных запросов. Если вы размещаете данные так, что строки, которые должны быть объединены, хранятся на одном и том же узле, тогда вы просто делаете локальные объединения. Если вы не размещаете данные вместе, вы должны использовать setDistributedJoins(true) - это приведет к тому, что Ignite отправит все строки, которые проходят фильтры одной таблицы WHERE, на узел запроса, а затем выполнит соединение там. См. на этой странице для получения подробной информации о размещенных и распределенных объединениях.

Мой последний вопрос, какова цель дерева B + здесь.

Первичный индекс и обычные вторичные индексы в Ignite являются B + -деревьями. Пространственные вторичные индексы - это R-деревья.

...