[Java Broker] Allow out of order completion of persistent enqueues / dequeues
-----------------------------------------------------------------------------

                 Key: QPID-3774
                 URL: https://issues.apache.org/jira/browse/QPID-3774
             Project: Qpid
          Issue Type: Improvement
          Components: Java Broker, Java Broker BDB Store
    Affects Versions: 0.14
            Reporter: Rob Godfrey
            Assignee: Rob Godfrey
             Fix For: 0.15


Currently each persistent enqueue or dequeue in a non transactional session is 
processed in strict order with a synchronous write occurring for each 
enqueue/dequeue.

In order to improve performance we should make these enqueues/dequeues 
asynchronous and only wait for completion when a sync is requested.

Note that due to the way the IO layer works, we cannot make this truly 
asynchronous as we need to synchronize before control is handed back to the IO 
layer as it then performs a blocking read.  if the client is waiting for the 
completion from the broker it will never send more data on the wire, and since 
the read is blocking the broker cannot check to see if the async write to disk 
has completed.  In practice tests have shown that this does not significantly 
change the maximum possible throughput. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to