在为亲和关键密钥(https://apacheignite.readme.io/docs/affinity-collocation)提供的示例中,建议为不同的人员提供相同的关联密钥(即公司ID),以便与同一公司关联的所有人员都存储在同一节点。我的问题是当有大量具有相同关联键的项目时,它如何扩展。
例如,假设有一家拥有十亿员工的公司。如果您将所有这十亿员工的亲和关键密钥设置为相同的公司ID,这是否会迫使单个节点拥有全部十亿员工,即使他们并非全部适合RAM?如果这是真的,那么这类缩放问题的典型解决方案是什么?
感谢您的帮助! :)
答案 0 :(得分:0)
主机托管背后的主要思想是确保具有相同密钥的所有条目属于同一个Ignite节点,以避免网络往返。
所以,是的,如果你为十亿雇员设置相同的亲和关键密钥,他们所有人都会在同一个节点上结束
在这种情况下,您可以配置Ignite native persistence
同样,可以为公司引入复合密钥,允许按照某些标准对分区公司进行分区,例如
public class CompanyKey {
...
private Long id;
private Long partitioningCriteria;
}