You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "jiraposter@reviews.apache.org (Commented) (JIRA)" <ji...@apache.org> on 2012/02/29 19:43:58 UTC

[jira] [Commented] (QPID-3875) Reduce processing overhead when updating multiple statistic counters

    [ https://issues.apache.org/jira/browse/QPID-3875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13219402#comment-13219402 ] 

jiraposter@reviews.apache.org commented on QPID-3875:
-----------------------------------------------------


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


                
> Reduce processing overhead when updating multiple statistic counters
> --------------------------------------------------------------------
>
>                 Key: QPID-3875
>                 URL: https://issues.apache.org/jira/browse/QPID-3875
>             Project: Qpid
>          Issue Type: Improvement
>          Components: C++ Broker
>    Affects Versions: 0.16
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Trivial
>             Fix For: Future
>
>         Attachments: CG-statspatch.tgz
>
>
> While running cachegrind analysis of a simple traffic flow across the broker, I noticed that fetching the per-thread statistics had an overall instruction cost that is surprisingly long.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org