[jboss-jira] [JBoss JIRA] Updated: (JBCACHE-326) Create the concept of a "priority queue" to speed execution of certain remote method invocations
Vladimir Blagojevic (JIRA)
jira-events at jboss.com
Fri Jan 12 15:12:56 EST 2007
[ http://jira.jboss.com/jira/browse/JBCACHE-326?page=all ]
Vladimir Blagojevic updated JBCACHE-326:
----------------------------------------
Fix Version/s: 2.1.0.GA
(was: 2.0.0.GA)
Brian said:
That should definitely be pushed out of 2.0.0. Maybe we should keep the JIRA open for a while, as it still may be a useful concept. Maybe not though; if you can't think of any situation where one message from a sender would block execution of another message from the *same* sender, then the JIRA probably serves no purpose. The case that led to the JIRA was:
1) prepare from server A acquires locks on B.
2) prepare from server C blocks up_thread on B waiting for locks.
3) commit/rollback from server A stuck in queue behind prepare from server C.
ConcurrentStack solves that problem.
Bela and I had a brief discussion on the JG dev list shortly before Xmas about adding the ability to execute RpcDispatcher calls using a thread pool / Executor. If we ever did implement JBCACHE-326, I'm sure it would be built on top of that feature.
> Create the concept of a "priority queue" to speed execution of certain remote method invocations
> ------------------------------------------------------------------------------------------------
>
> Key: JBCACHE-326
> URL: http://jira.jboss.com/jira/browse/JBCACHE-326
> Project: JBoss Cache
> Issue Type: Task
> Security Level: Public(Everyone can see)
> Reporter: Brian Stansberry
> Assigned To: Vladimir Blagojevic
> Fix For: 2.1.0.GA
>
>
> Change the handling of requests in JBossCache (another interceptor on top of ReplicationInterceptor):
> - Create 2 queues (of MethodCall objects), one thread for each queue
> - The regular MethodCalls like put(), remove() etc go into the default queue (A), where they are processed according to order (FIFO)
> - The special calls like block(), _getState(), commit() or acks for PREPARE/COMMIT calls go into the other (priority) queue (B), these calls *CAN* be received out of sequence
> - This way, an _getState() would always be processed and would be able to (1) stop the processing of queue A and (2) force- release any locks held
> by on the tree.
> _ This way commit() calls can promptly release locks, without having to wait behind other prepare calls.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list