使用DataStream的addData点燃事务性。可能?

时间:2018-12-10 14:18:25

标签: apache transactions ignite

我们想将大量数据加载到点火缓存中,因此我们使用了数据流处理程序(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 

1 个答案:

答案 0 :(得分:0)

我认为不可能以这种方式使DataStreamer使用事务。 DataStreamer的重点是批量发送数据,而不是一次发送。

您为什么希望此操作具有事务性?我认为StreamReceiverallowOverwrite会更适合您的需求。