Remove message staging from C++ broker
--------------------------------------
Key: QPID-2509
URL: https://issues.apache.org/jira/browse/QPID-2509
Project: Qpid
Issue Type: Improvement
Components: C++ Broker
Reporter: Kim van der Riet
Assignee: Kim van der Riet
Staging was originally implemented so that a message with content that exceeds
available memory can be handled. The message is sent to disk in parts as it
arrives, and is never fully resident in memory. However, the current
implementation of staging is problematic:
1. The current architecture requires the entire message to be loaded into
memory before it can be delivered. This renders the staging facility
superfluous. In fact, it can lead to a problem where it is possible to enqueue
messages much larger than the available memory, but never be able to dequeue it
again.
2. The current implementation uses a BDB database to save the message. This is
done under a transaction to ensure atomicity of the operation. This results in
two issues:
a) BDB is very slow for large messages, and gets exponentially slower as
the message size grows.
b) The database leaves behind a large number of log files that are not
currently managed and tend to accumulate.
The staging feature is still a valuable one, and the issue of reinstating
staging should be revisited when the fundamental problem (1. above) has been
corrected. The use of BDB is an implementation issue and can easily be changed
for something more suitable.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/jira/secure/Administrators.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]