[infinispan-issues] [JBoss JIRA] (ISPN-11256) Context entries should always be MvccEntries
Tristan Tarrant (Jira)
issues at jboss.org
Mon Jun 15 03:56:12 EDT 2020
[ https://issues.redhat.com/browse/ISPN-11256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tristan Tarrant updated ISPN-11256:
-----------------------------------
Fix Version/s: 12.0.0.Final
(was: 11.0.0.Final)
> Context entries should always be MvccEntries
> --------------------------------------------
>
> Key: ISPN-11256
> URL: https://issues.redhat.com/browse/ISPN-11256
> Project: Infinispan
> Issue Type: Enhancement
> Components: Core
> Affects Versions: 10.1.1.Final
> Reporter: Dan Berindei
> Priority: Major
> Fix For: 12.0.0.Final
>
>
> We optimize reads by storing {{InternalCacheEntry}} instances directly in the {{InvocationContext}}, instead of creating a {{ReadCommittedEntry}} or a {{RepeatableReadEntry}}.
> This helps {{READ_COMMITTED}} behave like users expect it to, at least in local mode with OBJECT storage: since the context has a reference to the entry in the data container, the transaction sees external updates automatically. I also see this as a negative, though, becase it's practically impossible to extend it to work with distributed caches or with off-heap storage.
> The downside is that reading from the entry in the context is racy, so we need {{synchronized}} blocks everywhere, and me may even be missing {{synchronized}} in some places.
> It also means that things like {{ReadCommittedEntry.isLoaded()}} don't if the command that triggered the load from the store was a read, because there is no {{ReadCommittedEntry}}.
> I suggest always wrapping the entry in a {{MvccEntry}}, and making {{READ_COMMITTED}} caches re-fetch the entry on every read to see external updates (maybe guarded by a flag/configuration attribute). {{SingleKeyNonTxInvocationContext}} may avoid the extra allocation by implementing {{MvccEntry}} itself.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the infinispan-issues
mailing list