diff options
| author | Alan Conway <aconway@apache.org> | 2012-11-09 16:56:44 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2012-11-09 16:56:44 +0000 |
| commit | bfa04f15c4596adec3dc59124e752f022e052e89 (patch) | |
| tree | 58fde6435e574a2abd092600d3e45f26f2edd024 /cpp/src/qpid/sys/AggregateOutput.h | |
| parent | 6c3def115e0e74d7d7025664146cee25099f58f0 (diff) | |
| download | qpid-python-bfa04f15c4596adec3dc59124e752f022e052e89.tar.gz | |
QPID-4430: HA QMF queue events do not propagate to backups under load (Jason Dillaman)
In a stress tests QMF events were not being propagated to backups. Discovered
that the inter-broker link had hundreds of thousands of enqueued OutputTasks --
representing only a few unique consumers. There should only be only a single
output task for a given consumer. This appears to have stalled the delivery of
QMF messages to the backup broker
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1407543 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/AggregateOutput.h')
| -rw-r--r-- | cpp/src/qpid/sys/AggregateOutput.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/cpp/src/qpid/sys/AggregateOutput.h b/cpp/src/qpid/sys/AggregateOutput.h index d7c0ff29e3..802722ad26 100644 --- a/cpp/src/qpid/sys/AggregateOutput.h +++ b/cpp/src/qpid/sys/AggregateOutput.h @@ -28,6 +28,7 @@ #include <algorithm> #include <deque> +#include <set> namespace qpid { namespace sys { @@ -44,9 +45,11 @@ namespace sys { class QPID_COMMON_CLASS_EXTERN AggregateOutput : public OutputTask, public OutputControl { typedef std::deque<OutputTask*> TaskList; + typedef std::set<OutputTask*> TaskSet; Monitor lock; TaskList tasks; + TaskSet taskSet; bool busy; OutputControl& control; |
