qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "mick goulish" <m...@redhat.com>
Subject Review Request 23125: reduction of throughput regression
Date Fri, 27 Jun 2014 10:44:59 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/23125/
-----------------------------------------------------------

Review request for qpid, Alan Conway and Gordon Sim.


Repository: qpid


Description
-------

This is the diff for trunk - not previous versions.

This diff is *not* quite the same as the recent diffs I have sent you (Gordon and Alan). 
It has one additional change.

Code outside of MessageTransfer no longer needs to worry about when to call getRequiredCredit
or computeRequiredCredit.    Outside code always calls getRequiredCredit.  That fn calls computeRequiredCredit
and caches the result, thereafter using only the cached result.  

This eliminates problems where get() was being called before compute() -- but I felt that
was a problem that code outside of MessageTransfer should not have to worry about.

I was not able to remove the const-ness of getRequiredCredit without causing a vast cataclysm
of deconstification, so I left it const, but made mutable the two variables that it needs
to change.


Change list for people who have not seen previous versions:

  * replace frame.map_if with purpose-written loop.  This reduced throughput regression by
about half.

  * small change in SessionState to make sure requiredCredit gets calculated before routing
is done.

  * all code outside of MessageTransfer now only calls getRequiredCredit.  If the number has
not
    yet been calculated -- that problem is encapsulated within MessageTransfer.


Diffs
-----

  trunk/qpid/cpp/src/qpid/broker/MessageBuilder.cpp 1605215 
  trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1605215 
  trunk/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.h 1605215 
  trunk/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp 1605215 
  trunk/qpid/cpp/src/qpid/framing/FrameSet.h 1605215 
  trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp 1605215 

Diff: https://reviews.apache.org/r/23125/diff/


Testing
-------

make check, throughput testing  (see graph)

Hey.  how do I attach things?!?  dang it.  ok -- I will attach pretty graph to BZ https://bugzilla.redhat.com/show_bug.cgi?id=1011221


Thanks,

mick goulish


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