[infinispan-issues] [JBoss JIRA] (ISPN-5575) Shared write-behind store can read stale entries on joiner
Dan Berindei (JIRA)
issues at jboss.org
Thu Jun 25 05:51:02 EDT 2015
[ https://issues.jboss.org/browse/ISPN-5575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083694#comment-13083694 ]
Dan Berindei commented on ISPN-5575:
------------------------------------
One possible fix would be to delay the end of state transfer until the modifications that have not reached the joiner (i.e. with an old topology id) are actually written to the shared store.
AsyncCacheWriter could have a new method {{CompletableFuture<Object> getSyncFuture()}}, and when the returned future completes, the current state of AsyncCacheWriter is guaranteed to be written to the store OR overwritten by a newer update. The state provider would call this method when starting an outbound transfer, and wait on the future before sending the last state chunk.
To avoid concurrency issues, we may also have to hold StateTransferLock's exclusive topology lock while calling getSyncFuture(), and its shared topology lock while calling AsyncCacheWriter.store().
> Shared write-behind store can read stale entries on joiner
> ----------------------------------------------------------
>
> Key: ISPN-5575
> URL: https://issues.jboss.org/browse/ISPN-5575
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Loaders and Stores
> Affects Versions: 8.0.0.Alpha2, 7.2.3.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Fix For: 8.0.0.Final
>
>
> The AsyncCacheWriter modification queue is not sent with state transfer when the store is shared. A joiner can then read from the shared store a stale version of entries that have updates in the modification queue but are no longer in memory (because they were either removed explicitly, or evicted).
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
More information about the infinispan-issues
mailing list