[infinispan-issues] [JBoss JIRA] Updated: (ISPN-835) State transfer should not force all invocations to be synchronous
Manik Surtani (JIRA)
jira-events at lists.jboss.org
Mon Jan 17 08:43:49 EST 2011
[ https://issues.jboss.org/browse/ISPN-835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Manik Surtani updated ISPN-835:
-------------------------------
Fix Version/s: (was: 4.2.1.Final)
Workaround Description:
Workaround #1:
Disable state transfer - and use a ClusteredCacheLoader to lazily lookup remote state as and when needed. It might require some code changes to make the code efficient, for example:
If put() method's return value is not needed, pass Flag.SKIP_CACHE_LOAD so that clustered cache loader is not queried for previous value.
Workaround #2:
Enable state transfer and REPL_SYNC. Use the Async API (e.g., cache.putAsync(k, v)) to actieve 'fire-and-forget' capabilities.
Workaround #3:
Enable state transfer and REPL_ASYNC. All RPCs end up becoming sync, but client threads *will not* be held up if you enable a replication queue (which is recommended for async mode anyway).
was:
Disable state transfer - and use a ClusteredCacheLoader to lazily lookup remote state as and when needed.
It might require some code changes to make the code efficient, for example:
If put() method's return value is not needed, pass Flag.SKIP_CACHE_LOAD so that clustered cache loader is not queried for previous value.
Priority: Major (was: Critical)
De-prioritising due to the large number of options as workarounds.
> State transfer should not force all invocations to be synchronous
> -----------------------------------------------------------------
>
> Key: ISPN-835
> URL: https://issues.jboss.org/browse/ISPN-835
> Project: Infinispan
> Issue Type: Bug
> Components: RPC, State transfer
> Affects Versions: 4.1.0.Final, 4.2.0.CR4
> Reporter: Galder Zamarreño
> Assignee: Manik Surtani
> Fix For: 5.0.0.BETA1, 5.0.0.Final
>
>
> Enabling state transfer is forcing even asynchronous caches to become synchronous.
> A better way is needed to make sure state transfer works correctly (sync calls needed here) while normal replication calls remain asynchronous.
> See https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java#L254 where the response mode is overridden based on whether replay is supported. And replay support is always on when state transfer is enabled:
> https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/remoting/rpc/RpcManagerImpl.java#L101
> Need to explore whether a joiner flag can be maintained based on a view change, and replay only supported when a joiner is still "joining", and not otherwise.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list