阿帕奇点燃。使用 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
的工作方式。
我使用配置创建缓存,其中有 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
的工作方式。