Hi all,
I have a strange case.
First, I use LoadCache to load 6,000,000 data into a cache named eqt, it takes
about ten minutes.
Second, continuously query eqt cache.
Third, use LoadCache to load another 6,000,000 data into a cache named
eqt_temp.
Forth, continuously query eqt_temp cache and clear eqt cache.
When I execute step three, LoadCache couldn't work normally. It takes much more
time than step one, about half an hour. I use ignitevisor to monitor cache
status and find that there already are 6,000,000 data in eqt_temp cache. But
still, log doesn't show me the signal that LoadCache has already done. In
another word, LogPrint isn't executed immediately in the sixth line of my code.
Besides, no exception or error log appears and memory of computers is big
enough.
Here's my LoadCache code. Step one and step three use the same code.
private void doLoadData(String sql){
LogPrint.LOADER_BASE_INFO_LOGGER.info("DataLoaderTaskAdapter started
,cacheName:" + cacheName + ",sql:" + sql);
IgniteCache<?, ?> cache = ignitePublicService.getCache(cacheName);
long startTime = new Date().getTime();
cache.loadCache(null, loadKey, sql);
LogPrint.LOADER_BASE_INFO_LOGGER.info("load cache use time:" + (new
Date().getTime() - startTime) + "ms, size=" +
cache.size()+",cacheName="+cacheName + ",sql:" + sql);
}
I want to know the reason.
Regards,
Zhou.