[infinispan-issues] [JBoss JIRA] Commented: (ISPN-608) Make replication queue implementation pluggable
craig bomba (JIRA)
jira-events at lists.jboss.org
Thu Sep 23 10:05:28 EDT 2010
[ https://jira.jboss.org/browse/ISPN-608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12552722#action_12552722 ]
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
More information about the infinispan-issues
mailing list