1

Datomic 允许我们使用多个输入,即多个 datomic 服务器。

由于查询是在对等方本地执行的,因此使用对等方内部的实际数据库索引,似乎运行连接来自多个 datomic 服务器的数据的查询可能几乎,如果没有在单个 datomic 服务器上执行类似的连接那么快。

是这种情况还是在使用多个来源时查询引擎的工作方式存在质的差异?

(如果没有,我们可以绕过这样一个事实,即数据服务器中的所有写入都必须通过单个事务处理,通过进行分片以任意扩展写入性能。与 RDBMS 分片相比的好处是在加入时查询性能和效率)

编辑:

事实证明,即使在单个 datomic 服务器内,也不是所有查询都同样快

您经常查询的实体(例如示例数据中与社区相关的实体)应位于同一分区中以提高查询性能

所以让我换个说法:跨数据服务器的查询是否与跨单个数据服务器上的分区查询大致一样快速和高效(内存、cpu 使用、网络) ?

4

1 回答 1

3

Datomic 的查询引擎不关心底层索引段的来源,因此与使用来自单个系统的索引的查询相比,使用来自多个不同系统的索引的查询不会付出任何代价。

也就是说,您必须以这样一种方式组织您的数据,以便有有用的属性可以跨 N 个系统连接以做任何有趣的事情。这可能会对性能产生影响,例如选择比简单实体 ID 更大的值类型会减少可以放入缓存的数据量。

于 2014-05-10T23:04:15.197 回答