Datomic分区解决了哪些性能问题?

时间:2015-10-24 06:46:05

标签: performance partitioning datomic

我正在尝试为我的Datomic架构规划分区,但我不确定分区会解决哪些问题,哪些不会。

如果分区不正确,怎么会出错?

是关于网络往返的吗?减少对等内存占用?内存中查询性能?

特别是,以下哪种方法无效?

  • “我有很多'网站用户'实体,但是他们的大部分字节权重都在他们的哈希密码和盐中。所以我会把这些属性放在另一个分区的另一个实体中,所以它不会填满我的进行聚合工作时的同行。“
  • “我有几百个实体将参与几乎每个查询,因此我将为那些确保它们始终位于对象缓存中的分区”。
  • “我一起查询的实体往往是同时创建的,所以我将有几个包含相同类型实体的分区,但我将更改每隔3个月保存新实体的实体。 “

1 个答案:

答案 0 :(得分:4)

EAVT索引包含按实体ID排序的数据。分区以这些ID的高位编码。因为分区用于通过为您提供控制数据位置的方法来改进对等缓存。

如果您知道查询通常涉及一组通用属性,则应将所有这些属性放在同一个分区中,以便从存储中提取的段包含尽可能多的有用数据。

要回答您的问题,有效地选择分区将通过利用对等缓存来提高查询性能,即避免额外的网络往返存储。