[JBoss JIRA] (ISPN-1540) Refactor distribution interceptor
by Mircea Markus (Created) (JIRA)
Refactor distribution interceptor
---------------------------------
Key: ISPN-1540
URL: https://issues.jboss.org/browse/ISPN-1540
Project: Infinispan
Issue Type: Feature Request
Components: Distributed Cache
Reporter: Mircea Markus
Assignee: Mircea Markus
DistributionInterceptor, as it looks now is unnecessary complex. Before adding more functionality on top of it (i.e. ISPN-1539) it should be refactored:
- extract L1 logic into a different interceptor
- this would require moving the StateTransferLock logic into another interceptor as well
- now that we have separation between tx and non-tx caches, we can extract the remaining logic into TransactionalDistributionInterceptor and NonTransactional...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years
[JBoss JIRA] (ISPN-1466) Async configuration tag affects communication between cache and HotRod client
by Martin Gencur (Created) (JIRA)
Async configuration tag affects communication between cache and HotRod client
-----------------------------------------------------------------------------
Key: ISPN-1466
URL: https://issues.jboss.org/browse/ISPN-1466
Project: Infinispan
Issue Type: Bug
Affects Versions: 5.1.0.ALPHA1
Reporter: Martin Gencur
Assignee: Manik Surtani
When using a REPL (replicated) cache with configuration tag <async useReplQueue="true" replQueueMaxElements="3" replQueueInterval="1000" />, HotRod client cannot see a cache entry which was just stored into a cache. The entry is visible not before the replication queue is flushed (either because of MaxElements limit or QueueInterval). I'll attach a testcase but here's a test snippet that fails at first assert:
{code}
@Test
public void testQueueSize() throws Exception {
RemoteCache<String, String> asyncCache1 = rcm1.getCache(asyncCacheSize);
RemoteCache<String, String> asyncCache2 = rcm2.getCache(asyncCacheSize);
asyncCache1.clear();
asyncCache1.put("k1", "v1");
assertTrue(null != asyncCache1.get("k1"));
assertTrue(null == asyncCache2.get("k2"));
asyncCache1.put("k2", "v2");
//k3 fills up the queue -> flush
asyncCache1.put("k3", "v3");
Thread.sleep(1000); //wait for the queue to be flushed
assertTrue(null != asyncCache1.get("k1"));
assertTrue(null != asyncCache2.get("k2"));
}
{code}
IMO when I have cache A and B in a cluster and the cache entry is stored into the cache A, it should be visible at A and not in B. After flushing the queue it should be visible also at B.
Here's the test:
https://svn.devel.redhat.com/repos/jboss-qa/edg/infinispan-functional-tes...
(to run it, one has to install infinispan-arquillian-container into local maven repository, set ISPN_HOME pointing to Infinispan distribution and run "mvn clean verify")
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month