[infinispan-issues] [JBoss JIRA] (ISPN-6706) Purging cache writers is [mostly] redundant when eviction is disabled and preload is enabled

Krzysztof Sobolewski (JIRA) issues at jboss.org
Wed May 25 09:18:00 EDT 2016


    [ https://issues.jboss.org/browse/ISPN-6706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13242557#comment-13242557 ] 

Krzysztof Sobolewski commented on ISPN-6706:
--------------------------------------------

Well, I think that's the thing: it's IO-bound, and the test is write-heavy (basically I'm trying to initialize the cluster with a large amount of data) so it's IO-bound as well. The result is that the write operations wait on the cache writer until the database connection throws a socket timeout exception.

Now that I think of it, I should give MySQL some bigger buffers so that the database fits into memory. It's not terribly large (~2.5 GB) so this could do it. It's a test machine and I'm not a DBA so it didn't occur to me ;)

> 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)


More information about the infinispan-issues mailing list