是否有可能丢失数据或Ignite Cache中不同的密钥上存在不同的数据?

时间:2018-07-03 05:32:04

标签: java apache caching ignite

我正在3个Ignite节点上使用Ignite群集。其中,正在运行的缓存将CacheAtomicityMode设置为Atomic,将CacheMode设置为PARTITIONED

是否有可能丢失数据或使用其他密钥上存在的其他数据?

注意:数据加载发生在服务器端。带有多个对象的相同数据可能会同时加载到所有服务器上

缓存配置:

CacheConfiguration<String, JsonObject> cacheConfig = new CacheConfiguration<>();
cacheConfig.setName("CACHE");
cacheConfig.setCacheMode(CacheMode.PARTITIONED);
cacheConfig.setAtomicityMode(CacheAtomicityMode.ATOMIC );
cacheConfig.setReadThrough(true);
cacheConfig.setBackups(2);
cacheConfig.setCacheStoreFactory(FactoryBuilder.factoryOf(ObjectLoader.class));
cacheConfig.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_ASYNC);
IgniteCache<String, JsonObject> cache = ignite.getOrCreateCache(cacheConfig);

1 个答案:

答案 0 :(得分:0)

如果两个节点在完成将数据复制到两个备份之前发生故障,则可能会丢失一些数据。您可以使用FULL_SYNC写同步模式来更改它。

(还要注意:如果要在所有节点上存储所有数据,则可以使用REPLICATED Cache Mode。)