----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/791/#review743 -----------------------------------------------------------
/trunk/qpid/cpp/src/qpid/broker/Message.cpp <https://reviews.apache.org/r/791/#comment1518> Not saying this is wrong, but perhaps a fraction safer if the TTL is always adjusted and the expiry policy is tested only in order to determine if it should be used to get the current time. I.e. if (props->getTtl()) { sys::Mutex::ScopedLock l(lock); if (expiration < FAR_FUTURE) { sys::Duration current = expiryPolicy ? expiryPolicy->getCurrentTime() : sys::AbsTime::now(); sys::Duration d(current, getExpiration()); props->setTtl(...) } } - Gordon On 2011-05-31 21:37:57, Alan Conway wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/791/ > ----------------------------------------------------------- > > (Updated 2011-05-31 21:37:57) > > > Review request for qpid, Andrew Stitcher, Alan Conway, Gordon Sim, and Andy > Goldstein. > > > Summary > ------- > > 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 > ----- > > /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1128070 > /trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.h 1128070 > /trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.cpp 1128070 > /trunk/qpid/cpp/src/qpid/broker/Message.cpp 1128070 > /trunk/qpid/cpp/src/qpid/broker/QueueCleaner.h 1128070 > /trunk/qpid/cpp/src/qpid/broker/QueueCleaner.cpp 1128070 > /trunk/qpid/cpp/src/qpid/cluster/Cluster.h 1128070 > /trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp 1128070 > /trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp 1128070 > /trunk/qpid/cpp/src/qpid/cluster/ClusterSettings.h 1128070 > /trunk/qpid/cpp/src/qpid/cluster/ClusterTimer.cpp 1128070 > /trunk/qpid/cpp/src/qpid/cluster/Connection.h 1128070 > /trunk/qpid/cpp/src/qpid/cluster/Connection.cpp 1128070 > /trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h 1128070 > /trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp 1128070 > /trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp 1128070 > /trunk/qpid/cpp/src/qpid/sys/Timer.h 1128070 > /trunk/qpid/cpp/src/qpid/sys/Timer.cpp 1128070 > /trunk/qpid/cpp/src/tests/QueueTest.cpp 1128070 > /trunk/qpid/cpp/src/tests/cluster_tests.py 1128070 > /trunk/qpid/cpp/xml/cluster.xml 1128070 > > Diff: https://reviews.apache.org/r/791/diff > > > Testing > ------- > > > Thanks, > > Alan > >
