[
https://issues.jboss.org/browse/ISPN-6706?page=com.atlassian.jira.plugin....
]
William Burns commented on ISPN-6706:
-------------------------------------
Unfortunately due to consistency we have to make sure the in memory container and store
are updated at the same time, so we can't do a DELETE to remove only the expired
entries in one shot. They are removed 1 by 1, but purge is not a time sensitive operation
so it should be fine. But having the index shouldn't cause the DB to read the entire
table from disk which hopefully is the main cause of killing your DB response times. Also
the purge should return much faster in general, limiting its effect on other operations.
Purging cache writers is [mostly] redundant when eviction is disabled
and preload is enabled
--------------------------------------------------------------------------------------------
Key: ISPN-6706
URL:
https://issues.jboss.org/browse/ISPN-6706
Project: Infinispan
Issue Type: Enhancement
Components: Loaders and Stores
Affects Versions: 8.2.2.Final
Reporter: Krzysztof Sobolewski
This issue arised when I was testing a cluster with about 16 million entries. Our
configuration is that all the data is also kept in memory, so eviction is disabled in this
cache. But expiration is enabled. During the test I noticed pauses that started small but
increased while the test was progressing, reaching more than 20 seconds at one point.
After ruling out maintenance tasks in MySQL that could interfere, I discovered that the
pause is caused by the expiration thread purging the database for expired entries. This
was a huge and unnecessary drag so I hacked Infinispan to skip the purge of persistent
state in cases when it's likely to be redundant with purging the transient state. I
say "likely" because entries evicted maually via the evict() call poke a huge
hole in the underlying assumptions :) Anyway, our cluster no longer regularly pauses for
half a minute, so here's something for your consideration.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)