使用CacheStore通过Ignite的缓存从持久性存储中提取对象时,不会创建其备份副本。
有人可以告诉我上述情况下Ignite的备份是如何工作的吗?
我的配置:
cacheConfig.setWriteThrough(true);
cacheConfig.setReadThrough(true);
cacheConfig.setBackups(1);
cacheConfig.setWriteBehindEnabled(true);
cacheConfig.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_ASYNC);
cacheConfig.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
cacheConfig.setCacheStoreFactory(FactoryBuilder.factoryOf(ObjectLoader.class));
答案 0 :(得分:0)
使用配置的缓存存储创建缓存时,缓存以缓冲方式执行数据加载。在您的配置中,您启用了直读,因此只会从缓存存储中加载您实际读取的值。
如果您想确保您的缓存有备份副本,您可以选择以下几个选项:
预加载数据(例如,在loadCache的帮助下或从中读取一些值),然后check cache size加BACKUP peek mode。它将显示存储在备份节点上的许多密钥。
在备份节点上使用localPeek评估BACKUP peek mode。如果当前节点存储缓存的备份副本,它将返回非空值。