确定如何在GridGain群集上对备份密钥进行分区

时间:2014-10-30 16:53:07

标签: partitioning gridgain

从GridGain文档中我可以看到,通过注释@GridCacheAffinityKeyMapped,我可以将缓存条目与@GridCacheAffinityKeyMapped标记的相同字段并置,例如同一用户的所有记录。

1)例如,如果我使用@GridCacheAffinityKeyMapped注释“String username”并且我有一个群集使得每个节点只能保存X记录,但我选择使用相同的用户名字段存储Z记录,会发生什么。驱逐策略(假设我有一个简单的FIFO策略限制每个节点保存X记录)会导致我丢失(Z - X)记录,从而在同一节点上存储具有相同用户名的所有记录,或者是否将记录分区两个不同的节点?

2)我有办法指定备份的映射位置吗?出于弹性目的,我想控制备份的位置。

1 个答案:

答案 0 :(得分:0)

  1. 除非您配置synchronized evictions,否则驱逐策略对每个节点都是本地策略。因此,在您的示例中,(Z - X)记录将被逐出。顺便说一下,@GridCacheAffinityKeyMapped注释在这里没有区别。

  2. 是的,您可以通过在缓存配置中提供自己的GridCacheAffinityFunction来覆盖关联映射。但是,请查看GridCacheConsistentHashAffinityFunction.setBackupFilter(...)GridCacheRendezvousAffinityFunction.setBackupFilter(...)方法。这些方法允许您控制将哪些节点映射到备份。