[
https://jira.jboss.org/browse/ISPN-608?page=com.atlassian.jira.plugin.sys...
]
craig bomba commented on ISPN-608:
----------------------------------
@Manik Yes, I see the impl now. I thought the listener contribution would be useful to
some and not all for sure. In case someone is interested to know what is in a queue at a
time a VM is running into trouble it can be useful. As you pointed out it would not be
useful to all. After looking at your pluggable iml, I think there is still a concern I
have. I would be interested in getting the most reliable information from the flush().
As such, I would not want to update my counts until the end of the flush rather than the
beginning. By the time I call my pluggable flush interceptor the LBQ (elements) would
have been drained (i.e. .drainTo called already). That wold mean I can not access the
number of elements that were part of the flush. Perhaps another method that would allow
access to the drainedto object (toReplicate) so that I can get his size().
Additionally (and separate), I discovered another out-of-order vulnerability in the
ReplicationQueue. It will require synchronizing the flush method. For that I can put in
JIRA. Just wanted to point that out to you since it will be on the ReplicationQueueImpl
if I start using that.
Make replication queue implementation pluggable
-----------------------------------------------
Key: ISPN-608
URL:
https://jira.jboss.org/browse/ISPN-608
Project: Infinispan
Issue Type: Feature Request
Components: Core API
Affects Versions: 4.1.0.CR3
Reporter: craig bomba
Assignee: Manik Surtani
Priority: Minor
Fix For: 4.2.0.ALPHA1, 4.2.0.Final
Attachments: infinispan-core-repl-queue.jar
We needed to make the ReplicationQueue listenable. We needed events for adding a command
to and flushing the queue.
org.infinispan.factories.EmptyConstructorNamedCacheFactory
Just added ReplicationQueueNotifier.class to the @DefaultFactoryFor annotation.
org.infinispan.notifications.replicationqueuelistener.ReplicationQueueNotifier
Interface for the ReplicationQueue notifier.
org.infinispan.notifications.replicationqueuelistener.ReplicationQueueNotifierImpl
The ReplicationQueue notifier implementation. Supports events for adding and a command to
and flushing the queue.
org.infinispan.notifications.replicationqueuelistener.annotation.Flush
org.infinispan.notifications.replicationqueuelistener.annotation.ReplicableCommandAdded
The bare annotations to add to ReplicationQueue listeners.
org.infinispan.notifications.replicationqueuelistener.event.Event
The interface for the command added and flush event implementations.
org.infinispan.notifications.replicationqueuelistener.event.FlushEvent
org.infinispan.notifications.replicationqueuelistener.event.ReplicableCommandAddedEvent
The event implementations.
org.infinispan.remoting.ReplicationQueue
Updated to implement listenable.
Throws the command added event AFTER it has been added to the queue. It includes the
size of the queue AFTER the command has been added.
Throws the flush event AFTER the queue has been flushed. It includes the size of the
queue to be flushed.
--
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