diff options
author | Alan Conway <aconway@apache.org> | 2011-06-15 20:15:51 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2011-06-15 20:15:51 +0000 |
commit | 4cdf746f5bb38db60821047c3393f89f15b26f1e (patch) | |
tree | 610a404288b464a2225668c128fa77a84020ea62 /cpp/src/qpid/sys/Timer.cpp | |
parent | 8034affaba71c0d991bfe1fff5de537f73d0f404 (diff) | |
download | qpid-python-4cdf746f5bb38db60821047c3393f89f15b26f1e.tar.gz |
QPID-3280: Performance problem with TTL messages.
When sending a large number of messages with nonzero TTLs to a
cluster, overall message throughput drops by around 20-30% compared to
messages with TTL 0.
The previous approach to TTL in the cluster is replaced with a simpler
"cluster clock". Also QueueCleaner is executed in the cluster timer,
and modified to be deterministic in a cluster.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1136170 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/Timer.cpp')
-rw-r--r-- | cpp/src/qpid/sys/Timer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/cpp/src/qpid/sys/Timer.cpp b/cpp/src/qpid/sys/Timer.cpp index fdb2e8c6bb..47752e4584 100644 --- a/cpp/src/qpid/sys/Timer.cpp +++ b/cpp/src/qpid/sys/Timer.cpp @@ -75,6 +75,12 @@ void TimerTask::cancel() { cancelled = true; } +void TimerTask::setFired() { + // Set nextFireTime to just before now, making readyToFire() true. + nextFireTime = AbsTime(sys::now(), Duration(-1)); +} + + Timer::Timer() : active(false), late(50 * TIME_MSEC), |