> On 2011-05-26 21:42:18, Andrew Stitcher wrote: > > /trunk/qpid/cpp/src/qpid/sys/Timer.cpp, line 39 > > <https://reviews.apache.org/r/791/diff/1/?file=19676#file19676line39> > > > > I don't understand the purpose of fired: > > > > It looks like fired could only be set true by fireTask() and that will > > only happen if readyToFire() would return true. > > > > I can't see a way for fired to be set true until nextFireTime <= now(). > > > > So it looks like in the test in line 65 > > (readToFire() || fired) || fired is superfluous.
See my comment above, but basically it's to cover the condition where the cluster timer in the elder forces a non elder task to fire "prematurely" (premature in the sense that the non-elder node thinks it should fire later). By setting fired to true in fireTask(), we guarantee that setupNextFire() will succeed in this case. - Andy ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/791/#review723 ----------------------------------------------------------- On 2011-05-26 20:53:00, Alan Conway wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/791/ > ----------------------------------------------------------- > > (Updated 2011-05-26 20:53:00) > > > Review request for qpid, Andrew Stitcher, Alan Conway, and Gordon Sim. > > > 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. > > Patch supplied by Andy Goldstein <[email protected]>. > > > Diffs > ----- > > /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1128002 > /trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.h 1128002 > /trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.cpp 1128002 > /trunk/qpid/cpp/src/qpid/broker/Message.cpp 1128002 > /trunk/qpid/cpp/src/qpid/broker/QueueCleaner.h 1128002 > /trunk/qpid/cpp/src/qpid/broker/QueueCleaner.cpp 1128002 > /trunk/qpid/cpp/src/qpid/cluster/Cluster.h 1128002 > /trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp 1128002 > /trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp 1128002 > /trunk/qpid/cpp/src/qpid/cluster/ClusterSettings.h 1128002 > /trunk/qpid/cpp/src/qpid/cluster/Connection.h 1128002 > /trunk/qpid/cpp/src/qpid/cluster/Connection.cpp 1128002 > /trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h 1128002 > /trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp 1128002 > /trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp 1128002 > /trunk/qpid/cpp/src/qpid/sys/Timer.h 1128002 > /trunk/qpid/cpp/src/qpid/sys/Timer.cpp 1128002 > /trunk/qpid/cpp/xml/cluster.xml 1128002 > /trunk/qpid/python/examples/api/spout 1128002 > > Diff: https://reviews.apache.org/r/791/diff > > > Testing > ------- > > > Thanks, > > Alan > >
