当许多项目具有相同的亲和力键时,Ignite 如何处理亲和力

How does Ignite handle affinity when lots of items have the same affinity keys

在关联键 (https://apacheignite.readme.io/docs/affinity-collocation) 的示例中,建议为不同的人提供相同的关联键(即公司 ID),以便存储与同一公司关联的所有个人在同一个节点上。我的问题是当有大量项目具有相同的关联键时,它如何扩展。

例如,假设有一家公司拥有 10 亿名员工。如果您将所有这十亿员工的关联键设置为同一个公司 ID,这是否会强制单个节点拥有所有十亿员工,即使他们并不都适合 RAM?如果这是真的,那么针对此类缩放问题的一些典型解决方案是什么?

感谢您的帮助! :)

托管背后的主要思想是确保具有相同密钥的所有条目都属于同一个 Ignite 节点,以避免网络往返。
所以,是的,如果您为 10 亿名员工设置相同的亲和力键,所有这些员工最终都会在同一个节点上。
在这种情况下,您可以配置 Ignite native persistence.
同样,可以为 Company 引入复合键,允许按某些标准对公司进行分区,例如

public class CompanyKey {
    ...
    private Long id;
    private Long partitioningCriteria;
}