Я хочу удалить около 30L (30,00,000) записей данных из моего кэша, и я использовал
igniteCache.removeAll(listOfKeys)
Здесь я выбираю ключи и передаю метод removeAll из ignite и работаетхорошо.Но чтобы сохранить последовательность и избежать частичного удаления, я решил использовать транзакции поверх моих операций.Но проблема в том, что удаление занимает много времени, и в основном мой сервер воспламенения останавливается.
IgniteTransactions transactions = IgniteConfig.getIgnite().transactions();
tx = transactions.txStart();
IgniteCache<String, myCache> igniteCache =
IgniteConfig.getIgniteCache();
FieldsQueryCursor<List<?>> deletedKeys = igniteCache.query("select id from
mytable where timeId=xxxx");
Set<String> listOfKeys = new HashSet<>();
List<List<?>> allData = deletedKeys.getAll();
for (List keys : allData) {
listOfKeys.add(String.valueOf(keys.get(0)));
}
igniteCache.removeAll(listOfKeys);
tx.commit();