[infinispan-issues] [JBoss JIRA] (ISPN-3293) Putting entries with memcached is ignoring the queue-flush-interval parameter

Tristan Tarrant (JIRA) jira-events at lists.jboss.org
Fri Jul 26 08:43:06 EDT 2013


    [ https://issues.jboss.org/browse/ISPN-3293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12793178#comment-12793178 ] 

Tristan Tarrant commented on ISPN-3293:
---------------------------------------

This issue is caused by the new "distribution-based replication" algorithm in Infinispan: a key's primary owner might not be the local node, so a synchronous put operation is sent to the key owner, thus overriding the async queue. The fact that the test works for HotRod is probably because the encoding of the key differs. The actual solution to this problem will be solved by ISPN-3371
                
> Putting entries with memcached is ignoring the queue-flush-interval parameter
> -----------------------------------------------------------------------------
>
>                 Key: ISPN-3293
>                 URL: https://issues.jboss.org/browse/ISPN-3293
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Server
>            Reporter: Jakub Markos
>            Assignee: Tristan Tarrant
>         Attachments: server1.log, server2.log
>
>
> I have a cluster of 2 nodes with the following configuration:
> {code:xml}
> <replicated-cache name="memcachedCache"
>     start="EAGER"
>     mode="ASYNC"
>     batching="false"                    
>     queue-size="1000"
>     queue-flush-interval="15000">
> </replicated-cache>
> {code} 
> The following code (MemcachedHelper is a memcached client)
> {code}
> mc1 = new MemcachedHelper(server1.getMemcachedEndpoint().getInetAddress().getHostName(), server1.getMemcachedEndpoint().getPort());
> mc2 = new MemcachedHelper(server2.getMemcachedEndpoint().getInetAddress().getHostName(), server2.getMemcachedEndpoint().getPort());
> mc1.set("key1", "value1");
> assertTrue(null != mc1.get("key1"));
> assertTrue(null == mc2.get("key1"));
> {code}
> fails on the 2nd assert, because the entry is retrieved.
> According to logs (attached), the replication queue is correctly flushed after 15 seconds with 1 element (and happens after the gets).
> Works correctly with hotrod (entry is replicated only after the flush happens).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the infinispan-issues mailing list