Ignite Transactional с помощью addData объекта DataStream.возможный? - PullRequest
0 голосов
/ 10 декабря 2018

мы хотим загрузить объемные данные в кеш воспламенения, поэтому мы использовали стример данных (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 голосов
/ 10 декабря 2018

Я не думаю, что можно заставить DataStreamer использовать транзакцию таким образом.Весь смысл DataStreamer состоит в том, чтобы отправлять данные навалом, а не одной записью.

Почему вы хотите, чтобы эта операция была транзакционной?Я думаю, что StreamReceiver или allowOverwrite лучше подойдет вашим потребностям.

...