[
https://jira.jboss.org/browse/ISPN-691?page=com.atlassian.jira.plugin.sys...
]
Galder Zamarreño commented on ISPN-691:
---------------------------------------
Craig, there's something I don't understand about the logs. The background timer
thread should, by default, be named as: "Scheduled-replicationQueue-thread-*",
but in your logs I see none of that. All I see is "pool-*" threads. So, what
configuration changes or code changes are you applying in your system? And, if all threads
are called "pool-*", how do u figure out which is the background thread and
which the worker thread?
Another thing I don't get is the fact that you have configured replication queue like
this:
jgroups-infinispan-MyInfispanLooperMaster.log:34:2010-09-03 11:48:45,610 3919 TRACE
[org.infinispan.remoting.ReplicationQueue] (main:) Starting replication queue, with
interval 100000 and maxElements 500
So, it means that replication queue should be flushed, every 100.000 ms which is 100s and
max elements of queue is 500.
However, when I look at the logs, I see plenty of flushes happening when the queue is 100
elements:
2010-09-03 11:49:43,244 61553 TRACE [org.infinispan.remoting.ReplicationQueue]
(pool-5-thread-2:) flush(): flushing repl queue (num elements=100)
2010-09-03 11:49:43,244 61553 TRACE [org.infinispan.remoting.ReplicationQueue]
(pool-5-thread-2:) Flushing 100 elements
...
2010-09-03 11:49:43,255 61564 TRACE [org.infinispan.remoting.ReplicationQueue]
(pool-5-thread-9:) flush(): flushing repl queue (num elements=100)
2010-09-03 11:49:43,256 61565 TRACE [org.infinispan.remoting.ReplicationQueue]
(pool-5-thread-9:) Flushing 100 elements
It seems like these flushes are based on number of elements rather than time, but they do
not match the configuration settings.
ReplicationQueue has an out-of-order issue
------------------------------------------
Key: ISPN-691
URL:
https://jira.jboss.org/browse/ISPN-691
Project: Infinispan
Issue Type: Bug
Components: Core API
Affects Versions: 4.0.0.Final, 4.1.0.Final, 4.2.0.ALPHA3
Reporter: craig bomba
Assignee: Galder Zamarreño
Fix For: 4.2.0.BETA1, 4.2.0.Final
Attachments: ReplicationQueueImpl.java
The ReplicationQueue has an exposure to distributing items out of order. The
ReplicationQueue may flush items in either of 2 ways. One way is the background thread
provided by a ThreadPoolExecutor flushing on a timer. The other is via the current thread
that does a put (which calls ReplicationQueue.add). In the case of the call to add if it
hits the max size (set in the config by replQueueMaxElements) then items may get flushed
to other nodes out of order. This is not evident when a test case only includes puts (new
items or updated items in a cache). Your test must include removals to expose this
concern.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira