You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alan Conway <ac...@redhat.com> on 2011/06/08 19:47:17 UTC
Re: Review Request: WIP: Misc fixes to cluster TTL
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/791/
-----------------------------------------------------------
(Updated 2011-06-08 17:47:17.142625)
Review request for qpid, Andrew Stitcher, Alan Conway, Gordon Sim, and Andy Goldstein.
Changes
-------
I've made a couple more fixes and rebased to latest trunk. There are 2 issues with the patch:
- in repeated runs (5-6) I've seen test_ttl_failover and test_failover fail with a broker exiting with nothing abnormal in the logs and no core file.
- performance is about 15% better for messages with TTL, but 10% worse for messages without TTL.
I'm a bit stuck on the test failures, any help appreciated. I think we probably have to optimize the non-TTL case a bit more.
Summary (updated)
-------
WIP: Misc fixes to cluster TTL
- Fix issue with empty message-properties being added to messages.
- Remove queue cleaner use of system clock
- Fix test bugs
WIP: Use atomic counter and period in place of RateTracker for QueueCleaner.
RateTracker was using the non-cluster clock to decide to run purges or not.
This is a clock-free solution that gives the same result and is safe in cluster.
WIP: agoldste's expiration replication fix.
QPID-3280: Fixed extra failover update messages on brokers joining the cluster.
QPID-3280: 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.
Replaced the complicated message expirly logic in the cluster with a simpler "cluster clock" for expiry of messages with TTL.
Diffs (updated)
-----
/trunk/qpid/cpp/include/qpid/framing/FieldTable.h 1133166
/trunk/qpid/cpp/src/CMakeLists.txt 1133166
/trunk/qpid/cpp/src/Makefile.am 1133166
/trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1133166
/trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.h 1133166
/trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.cpp 1133166
/trunk/qpid/cpp/src/qpid/broker/Message.h 1133166
/trunk/qpid/cpp/src/qpid/broker/Message.cpp 1133166
/trunk/qpid/cpp/src/qpid/broker/Queue.h 1133166
/trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1133166
/trunk/qpid/cpp/src/qpid/broker/QueueCleaner.h 1133166
/trunk/qpid/cpp/src/qpid/broker/QueueCleaner.cpp 1133166
/trunk/qpid/cpp/src/qpid/broker/RateTracker.h 1133166
/trunk/qpid/cpp/src/qpid/broker/RateTracker.cpp 1133166
/trunk/qpid/cpp/src/qpid/cluster/Cluster.h 1133166
/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp 1133166
/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp 1133166
/trunk/qpid/cpp/src/qpid/cluster/ClusterSettings.h 1133166
/trunk/qpid/cpp/src/qpid/cluster/ClusterTimer.cpp 1133166
/trunk/qpid/cpp/src/qpid/cluster/Connection.h 1133166
/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp 1133166
/trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h 1133166
/trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp 1133166
/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h 1133166
/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.cpp 1133166
/trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp 1133166
/trunk/qpid/cpp/src/qpid/framing/AMQHeaderBody.h 1133166
/trunk/qpid/cpp/src/qpid/sys/Timer.h 1133166
/trunk/qpid/cpp/src/qpid/sys/Timer.cpp 1133166
/trunk/qpid/cpp/src/tests/QueueTest.cpp 1133166
/trunk/qpid/cpp/src/tests/cluster_test_logs.py 1133166
/trunk/qpid/cpp/src/tests/cluster_tests.py 1133166
/trunk/qpid/cpp/xml/cluster.xml 1133166
Diff: https://reviews.apache.org/r/791/diff
Testing
-------
Thanks,
Alan
Re: Review Request: QPID-3280: Performance problem with TTL messages.
Posted by Alan Conway <ac...@redhat.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/791/
-----------------------------------------------------------
(Updated 2011-06-10 21:18:44.812882)
Review request for qpid, Andrew Stitcher, Alan Conway, Gordon Sim, and Andy Goldstein.
Changes
-------
Hopefully the last patch in this series.
Summary (updated)
-------
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.
Diffs (updated)
-----
/trunk/qpid/cpp/include/qpid/framing/FieldTable.h 1134238
/trunk/qpid/cpp/src/CMakeLists.txt 1134238
/trunk/qpid/cpp/src/Makefile.am 1134238
/trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1134238
/trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.h 1134238
/trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.cpp 1134238
/trunk/qpid/cpp/src/qpid/broker/Message.h 1134238
/trunk/qpid/cpp/src/qpid/broker/Message.cpp 1134238
/trunk/qpid/cpp/src/qpid/broker/Queue.h 1134238
/trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1134238
/trunk/qpid/cpp/src/qpid/broker/QueueCleaner.h 1134238
/trunk/qpid/cpp/src/qpid/broker/QueueCleaner.cpp 1134238
/trunk/qpid/cpp/src/qpid/broker/RateTracker.h 1134238
/trunk/qpid/cpp/src/qpid/broker/RateTracker.cpp 1134238
/trunk/qpid/cpp/src/qpid/cluster/Cluster.h 1134238
/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp 1134238
/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp 1134238
/trunk/qpid/cpp/src/qpid/cluster/ClusterSettings.h 1134238
/trunk/qpid/cpp/src/qpid/cluster/ClusterTimer.cpp 1134238
/trunk/qpid/cpp/src/qpid/cluster/Connection.h 1134238
/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp 1134238
/trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h 1134238
/trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp 1134238
/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h 1134238
/trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.cpp 1134238
/trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp 1134238
/trunk/qpid/cpp/src/qpid/framing/AMQHeaderBody.h 1134238
/trunk/qpid/cpp/src/qpid/sys/Timer.h 1134238
/trunk/qpid/cpp/src/qpid/sys/Timer.cpp 1134238
/trunk/qpid/cpp/src/tests/QueueTest.cpp 1134238
/trunk/qpid/cpp/src/tests/cluster_test_logs.py 1134238
/trunk/qpid/cpp/src/tests/cluster_tests.py 1134238
/trunk/qpid/cpp/xml/cluster.xml 1134238
Diff: https://reviews.apache.org/r/791/diff
Testing
-------
Thanks,
Alan