Насколько я уверен, что это условие всегда верно:
Допустим, у меня есть 3 таблицы, которые содержат 1000, 2000, 3000 записей.
И мне нужно загрузить все эти записи в кеш, но я хочу убедиться, что все данные находятся в кеше, прежде чем клиент использует этот кеш.
Обратите внимание, что режим кэширования реплицируется.
У Apache Ignite есть это будущее?
Вот что я планирую сделать:
Я установлю "atomicityMode" в "TRANSACTIONAL"
Я создам класс для cacheStoreFactory
Этот класс содержит метод loadCache, расширяемый от CacheStoreAdapter.
вот псевдокод:
public void loadCache(IgniteBiInClosure<K, V> clo, Object... args) {
// Connect the all databases
/*while true:
try(Transaction transaction = Ignition.ignite().transactions().txStart(TransactionConcurrency.OPTIMISTIC, TransactionIsolation.SERIALIZABLE)){
PreparedStatement for all databases such as "select * from persons"
then take the all ResultSet from all databases
then create the corresponding object from the results and put the "clo.apply(objectID, object);"
before transaction.commit()
if there is way, find the total records number from all databases (maybe find before starting try block)
then, again if there is way, compare the cache size and total records
If 2 numbers are equals -> transaction.commmit() & break
else -> continue;
}
*/
}