我们想将大量数据加载到点火缓存中,因此我们使用了数据流处理程序(stmr.addData)而不是cache.put(比较慢)。现在要在我的大容量加载操作上应用事务。在我的数据流化器情况下发生了这种情况,而cache.put操作也是如此。
我的代码:
CacheConfiguration<String, Person> cacheConfiguration = new
CacheConfiguration<>("PersonCache");
cacheConfiguration.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
IgniteTransactions transactions = ignite.transactions();
Transaction tx = transactions.txStart();
while (resultSet.next()) {
Persion person = new Persion();
persion.setName(name);
persion.setAge(age);
dataStreamer.addData(personKey, person);
}
tx.commit();
//while cache.put(personKey, person) is giving me transnational output
答案 0 :(得分:0)
我认为不可能以这种方式使DataStreamer使用事务。 DataStreamer的重点是批量发送数据,而不是一次发送。
您为什么希望此操作具有事务性?我认为StreamReceiver
或allowOverwrite
会更适合您的需求。