[JBoss JIRA] Updated: (ISPN-61) Transaction 2-phase protocol optimizations
by Manik Surtani (JIRA)
[ https://jira.jboss.org/jira/browse/ISPN-61?page=com.atlassian.jira.plugin... ]
Manik Surtani updated ISPN-61:
------------------------------
Summary: Transaction 2-phase protocol optimizations (was: Tx optimisations)
Fix Version/s: 5.0.0.BETA1
5.0.0.Final
(was: 4.1.0.BETA1)
(was: 4.1.0.Final)
Complexity: High
> Transaction 2-phase protocol optimizations
> ------------------------------------------
>
> Key: ISPN-61
> URL: https://jira.jboss.org/jira/browse/ISPN-61
> Project: Infinispan
> Issue Type: Feature Request
> Affects Versions: 4.0.0.ALPHA4
> Reporter: Mircea Markus
> Assignee: Mircea Markus
> Fix For: 5.0.0.BETA1, 5.0.0.Final
>
>
> Following 2 optimizations might be implemented with respect to transactions.
> 1) From an email on infinispan-dev (horizon-dev actually):
> if there are only two members int the cluster always use an 1PC. If the 1st phase fails remotely, then also rollback locally. This would reduce one network roundtrip.
> While this is an interesting thought, it does raise the potential for race conditions - since this decision will have to be taken in the TxInterceptor in the beforeCompletion phase of a transaction, and by the time the call gets to the interceptor for replication, the topology may have changed such that you need to replicate to 2 instead of 1 other peer. Which would mean a 2PC again. So it does need some thought.
> 2) when asked to prepare, a participant might return a value indicating that no changes were made (read-only participant), so this one won't need an commit message, so less roundtrip.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (ISPN-369) InvalidateL1Command should not be invoked if the keys are local
by Manik Surtani (JIRA)
InvalidateL1Command should not be invoked if the keys are local
---------------------------------------------------------------
Key: ISPN-369
URL: https://jira.jboss.org/jira/browse/ISPN-369
Project: Infinispan
Issue Type: Task
Components: Distributed Cache
Affects Versions: 4.0.0.Final
Reporter: Manik Surtani
Assignee: Manik Surtani
Fix For: 4.1.0.ALPHA1, 4.1.0.Final
InvalidateL1Command currently is broadcast cluster-wide (multicast) for the sake of efficiency. This means that even other owners will receive this command. The command's perform() method will prevent such owners from evicting the keys though, so this does not affect correctness.
However it does affect performance since the command is still passed up the interceptor stack and, crucially, locks are acquired for the keys in question.
A better solution would be for ReplicableCommand to expose a boolean shouldInvoke() method. By default this always returns true, but in the case of the InvalidateL1Command, the ownership of keys is checked here. The InboundInvocationHandler can then choose whether to invoke the command or not.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (ISPN-311) CacheLoader.loadKeys(), and performance improvements when rehashing from a cache store
by Manik Surtani (JIRA)
CacheLoader.loadKeys(), and performance improvements when rehashing from a cache store
--------------------------------------------------------------------------------------
Key: ISPN-311
URL: https://jira.jboss.org/jira/browse/ISPN-311
Project: Infinispan
Issue Type: Feature Request
Components: Distributed Cache, Loaders and Stores
Reporter: Manik Surtani
Assignee: Manik Surtani
Fix For: 4.1.0.BETA1, 4.1.0.GA
Rehashing can be improved a bit, specifically with the addition of something like CacheLoader.loadKeys(Set<Object> excludes). This will allow the rehash code to load just the necessary keys, excluding keys already considered from the data container directly, and then inspect each key to test if the key needs to be rehashed elsewhere. If so, the value could be loaded using load(), considering that as cluster sizes increase, rehashing would only affect a smaller percentage of overall data.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month