Upgrading & configuring Infinispan 5.2.3 -> 5.3.0 for better 2-phase commit support. 69/869/1
authorMadhu Venugopal <vmadhu@cisco.com>
Wed, 14 Aug 2013 04:21:45 +0000 (21:21 -0700)
committerMadhu Venugopal <vmadhu@cisco.com>
Wed, 14 Aug 2013 04:21:45 +0000 (21:21 -0700)
commit24eac152c37605ee8aec5ec44b812bc2314795cc
treea7e6c6554d482abdfb7fb4bb74b057bb4b8d734d
parent92d65efa7b1f42cc0f24546c3b33c28159197176
Upgrading & configuring Infinispan 5.2.3 -> 5.3.0 for better 2-phase commit support.
This follows the recent change from DummyTransactionManager to JBossTransactionManager.

ConnectionManager depends on the Consistency guarantee honored by the Clustering Services in order to
provide consistent Connection Management Services. Existing Infinispan 5.2.3 carries a few issues
(Refer : ISPN-3366 and ISPN-3357) which makes putIfAbsent not atomic even for TRANSACTIONAL caches.
Also, Since we are using NON-TRANSACTIONAL Caches, Infinispan doesnt provide any Atomicity guarantee
for the Cache Syncs. This is the first commit in the controller repo to convert an existing cache
from NON-TRASACTIONAL to TRANSACTIONAL. Few more caches that needs Atomicity guarantee will be
converted soon.
In addition, Infinispan configurations must be tweaked to make the transaction commits synchronous
(Currently it is inadvertently configured as Async).
With these changes, the Connection manager NodeConnections cache is made TRANSACTIONAL and the
cache syncs are guaranteed to be atomic.

NOTE: There are still few issues with Infinispan cache sync (ISPN-2719)

Change-Id: I97037ac7d6413f5b988496a03fb05bd88bbbce3f
Signed-off-by: Madhu Venugopal <vmadhu@cisco.com>
opendaylight/clustering/services_implementation/pom.xml
opendaylight/clustering/services_implementation/src/main/resources/config/infinispan-config.xml
opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/SimpleClient.java
opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/Activator.java
opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionManager.java
opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/AbstractScheme.java