[
https://issues.jboss.org/browse/ISPN-6706?page=com.atlassian.jira.plugin....
]
Krzysztof Sobolewski commented on ISPN-6706:
--------------------------------------------
OK, I'm getting confused :) I too was under impression that the query to purge expired
rows picks one node at a time by "manually" scanning the entire table, but I
looked at the code more closely and the query indeed limits the rows selected to only
those with timestamp in the past, and actually it is a DELETE statement. And indeed the
CREATE TABLE statement doesn't create any indices beside the PK on the ID column.
So it's much clearer now. Should I add another JIRA about the timestamp index?
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)