You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Kenneth Giusti <kg...@apache.org> on 2012/02/29 19:42:59 UTC

Review Request: Provide direct access to all per-thread statistics counters

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

Review request for qpid, Andrew Stitcher, Gordon Sim, and Ted Ross.


Summary
-------

For each message received or sent, the broker needs to increment at least 4 statistic counters - # of received/send messages, and # of received/sent bytes.  For each counter accessed, a call to thread-local storage is made.  This patch reduces the number of calls to thread local storage by allowing direct access to the full complement of per thread counters.

On my cpu-challenged laptop, this resulted in a minor speedup in msgs/sec across a shared queue (2 senders, 1 receiver):

TRUNK
msg/sec
Sender1  :  Sender2  :  Receiver
25825    :  25359    :  43805
25251    :  25159    :  43379
24564    :  24211    :  38836

PATCHED
msg/sec
Sender1  :  Sender2  :  Receiver
26015    :  25849    :  44473
26197    :  25765    :  44291
25826    :  25476    :  43904


This addresses bug qpid-3875.
    https://issues.apache.org/jira/browse/qpid-3875


Diffs
-----

  /trunk/qpid/cpp/src/qpid/broker/Exchange.cpp 1295123 
  /trunk/qpid/cpp/src/qpid/broker/Queue.h 1295123 
  /trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1295123 
  /trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h 1295123 
  /trunk/qpid/cpp/src/qpid/broker/Connection.cpp 1295123 

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


Testing
-------

make check


Thanks,

Kenneth


Re: Review Request: Provide direct access to all per-thread statistics counters

Posted by Gordon Sim <gs...@redhat.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4107/#review5463
-----------------------------------------------------------

Ship it!


(For consistency it might be nice to have the txn stats (txnMsgEnqueues/Dequeues) use the same mechanism?)

- Gordon


On 2012-02-29 18:42:59, Kenneth Giusti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4107/
> -----------------------------------------------------------
> 
> (Updated 2012-02-29 18:42:59)
> 
> 
> Review request for qpid, Andrew Stitcher, Gordon Sim, and Ted Ross.
> 
> 
> Summary
> -------
> 
> For each message received or sent, the broker needs to increment at least 4 statistic counters - # of received/send messages, and # of received/sent bytes.  For each counter accessed, a call to thread-local storage is made.  This patch reduces the number of calls to thread local storage by allowing direct access to the full complement of per thread counters.
> 
> On my cpu-challenged laptop, this resulted in a minor speedup in msgs/sec across a shared queue (2 senders, 1 receiver):
> 
> TRUNK
> msg/sec
> Sender1  :  Sender2  :  Receiver
> 25825    :  25359    :  43805
> 25251    :  25159    :  43379
> 24564    :  24211    :  38836
> 
> PATCHED
> msg/sec
> Sender1  :  Sender2  :  Receiver
> 26015    :  25849    :  44473
> 26197    :  25765    :  44291
> 25826    :  25476    :  43904
> 
> 
> This addresses bug qpid-3875.
>     https://issues.apache.org/jira/browse/qpid-3875
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/src/qpid/broker/Exchange.cpp 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Queue.h 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1295123 
>   /trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Connection.cpp 1295123 
> 
> Diff: https://reviews.apache.org/r/4107/diff
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Kenneth
> 
>


Re: Review Request: Provide direct access to all per-thread statistics counters

Posted by Andrew Stitcher <as...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4107/#review5465
-----------------------------------------------------------

Ship it!


- Andrew


On 2012-02-29 18:42:59, Kenneth Giusti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4107/
> -----------------------------------------------------------
> 
> (Updated 2012-02-29 18:42:59)
> 
> 
> Review request for qpid, Andrew Stitcher, Gordon Sim, and Ted Ross.
> 
> 
> Summary
> -------
> 
> For each message received or sent, the broker needs to increment at least 4 statistic counters - # of received/send messages, and # of received/sent bytes.  For each counter accessed, a call to thread-local storage is made.  This patch reduces the number of calls to thread local storage by allowing direct access to the full complement of per thread counters.
> 
> On my cpu-challenged laptop, this resulted in a minor speedup in msgs/sec across a shared queue (2 senders, 1 receiver):
> 
> TRUNK
> msg/sec
> Sender1  :  Sender2  :  Receiver
> 25825    :  25359    :  43805
> 25251    :  25159    :  43379
> 24564    :  24211    :  38836
> 
> PATCHED
> msg/sec
> Sender1  :  Sender2  :  Receiver
> 26015    :  25849    :  44473
> 26197    :  25765    :  44291
> 25826    :  25476    :  43904
> 
> 
> This addresses bug qpid-3875.
>     https://issues.apache.org/jira/browse/qpid-3875
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/src/qpid/broker/Exchange.cpp 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Queue.h 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1295123 
>   /trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Connection.cpp 1295123 
> 
> Diff: https://reviews.apache.org/r/4107/diff
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Kenneth
> 
>


Re: Review Request: Provide direct access to all per-thread statistics counters

Posted by Ted Ross <tr...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4107/#review5464
-----------------------------------------------------------

Ship it!


I don't love this because it bypasses the "api" for management objects.  But... I can't think of anything better.  And because we're implementing and instrumenting a fast-path, it is in some cases appropriate to design a "layer-violation" such as this for the sake of performance.

- Ted


On 2012-02-29 18:42:59, Kenneth Giusti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4107/
> -----------------------------------------------------------
> 
> (Updated 2012-02-29 18:42:59)
> 
> 
> Review request for qpid, Andrew Stitcher, Gordon Sim, and Ted Ross.
> 
> 
> Summary
> -------
> 
> For each message received or sent, the broker needs to increment at least 4 statistic counters - # of received/send messages, and # of received/sent bytes.  For each counter accessed, a call to thread-local storage is made.  This patch reduces the number of calls to thread local storage by allowing direct access to the full complement of per thread counters.
> 
> On my cpu-challenged laptop, this resulted in a minor speedup in msgs/sec across a shared queue (2 senders, 1 receiver):
> 
> TRUNK
> msg/sec
> Sender1  :  Sender2  :  Receiver
> 25825    :  25359    :  43805
> 25251    :  25159    :  43379
> 24564    :  24211    :  38836
> 
> PATCHED
> msg/sec
> Sender1  :  Sender2  :  Receiver
> 26015    :  25849    :  44473
> 26197    :  25765    :  44291
> 25826    :  25476    :  43904
> 
> 
> This addresses bug qpid-3875.
>     https://issues.apache.org/jira/browse/qpid-3875
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/src/qpid/broker/Exchange.cpp 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Queue.h 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1295123 
>   /trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h 1295123 
>   /trunk/qpid/cpp/src/qpid/broker/Connection.cpp 1295123 
> 
> Diff: https://reviews.apache.org/r/4107/diff
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Kenneth
> 
>