[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]