阿帕奇点燃。使用 CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT 初始化缓存

Apache Ignite. Initialize Cache with CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT

我使用配置创建缓存,其中有 CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT 和 CacheStore,覆盖了

org.apache.ignite.cache.store.CacheStoreAdapter#loadCache

当我尝试调用 loadCache 时出现异常:

java.lang.UnsupportedOperationException: Load operations are not supported on transactional caches when MVCC is enabled.

但我不明白为什么,如果我可以在这个缓存上调用 putAll(),有什么区别?

据我所知,我应该将初始化逻辑放在其他地方,但它看起来像个拐杖。也许这是一种错误的方式,因为不是徒劳的点燃阻止了这种行为?

长话短说:不要使用 TRANSACTIONAL_SNAPSHOT。如果需要交易,使用TRANSACTIONAL.

目前,MVCC 是“测试质量”。

loadCache 的工作方式不同,因为它只会在所有节点上填充本地数据(主要和备份)。 putAll 只会通过网络发送数据。 loadCache 只有在操作完成时才一致,这不是 TRANSACTIONAL_SNAPSHOT 的工作方式。