Apache Ignite 中的空间索引

Spatial Indexing in Apache Ignite

我知道在 Apache Ignite 中使用 H2 的 R 树空间索引。我想知道这个索引是如何在集群的节点之间创建的。它是全球性的吗?我的意思是它是否在集群节点之间的所有数据上创建一个单一的 R 树?或者它为集群的每个节点创建单独的 R 树?如果 R 树对于每个节点都是独立的,那么它如何在节点之间执行空间连接。我的最后一个问题,这里的 B+-tree 的目的是什么。我在文档中看到; B+树管理索引和数据。任何帮助将不胜感激。

Is it global? I mean does it create one single R-tree over all the data among the nodes of a cluster? Or it creates separate R-tree for each node of a cluster?

单独的树,每个节点一个。

If the R-tree's are separate for each node, then how it performs spatial-join among the nodes.

我相信与非空间查询的规则相同。如果您并置数据以便应连接的行存储在同一节点上,那么您只需进行本地连接。如果你不配置数据,你必须使用 setDistributedJoins(true) - 它会导致 Ignite 将所有通过 single-table WHERE 过滤器的行发送到查询节点,然后执行加入那里。有关并置连接与分布式连接的详细信息,请参阅 this page

My final question, what's the purpose of B+-tree here.

Ignite 中的主索引和常规二级索引都是B+树。空间二级索引是 R 树。