qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway" <acon...@redhat.com>
Subject Re: Review Request: WIP: Misc fixes to cluster TTL
Date Wed, 08 Jun 2011 17:47:17 GMT

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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message