Я использую IgniteCache.loadCache
для загрузки данных из Oracle в Ignite Cache с RDMS и Ignite интеграции (https://apacheignite-mix.readme.io/v1.7/docs/automatic-persistence)Сравнение производительности между различными использования IgniteCache.loadCache
Мой главный класс начнет режим клиента Ignite и запишет данные к клану Ignite из 3 узлов.
Ниже приводится SQL массив, который будет запрашивать ту же таблицу с различным состоянием
String[] sqlArray = new String[]{
"select * from PERSON where id >=0 and id < 10000",
"select * from PERSON where id >=10000 and id < 20000",
..
"select * from PERSON where id >=10000000 and id < 10010000",
}
Есть два варианта для запуска этих SQLs:
Первый вариант с использованием пула потоков себе:
for (int i = 0; i< sqlArray.length; i++) { //submit the load through thread pool ThreadPool.submit(new Runnable() { cache.loadCache(null, Integer.class.getName(), sqlArray[i]) } }
Второй вариант:
cache.loadCache(null, sqlArray)
Я хотел бы спросить, с точки зрения на производительность, которая одна будет быстрее, или они не будут иметь существенную разницу в производительности?
Спасибо @Taras. Спасибо за напоминание об использовании API. Из моего наблюдения вариант 2 быстрее, чем вариант 1, мне просто интересно, почему это могло произойти за сценой. – Tom