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

ASF GitHub Bot commented on DISPATCH-760:
-----------------------------------------

GitHub user ChugR opened a pull request:

    https://github.com/apache/qpid-dispatch/pull/171

    DISPATCH-760: Message annotation handling improvements

    This PR replaces existing annotation handling with a more efficient 
version. It is fully compatible with 0.8.x.
    
    A comparison with 0.8.x has run on a single laptop. A sender sends a short 
message with a varying number of 10-byte user annotations to an ingress router 
A. Router A sends the messages to egress router B. A single client is attached 
to router B. This comparison is not rigorous and at the 
50-annotation-per-message level the producer started to be the limiting factor. 
    
    Messages per second. Number of annotations, Nanno, vs router code version, 
0.8.x or new.
    
    | Nanno |   0.8.x   |  new |
    |----------|-----------|--------|
    | 0         |    26500 | 33700 |
    | 1         |   24000  | 33100 |
    | 5         |    18000 | 31300 |
    | 10       |    14200 | 29700 |
    | 20      |    8200    | 25200 |
    | 50     |    3500 |  11700 |
    


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ChugR/qpid-dispatch crolke-DISPATCH-760-2

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/qpid-dispatch/pull/171.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #171
    
----
commit 3e2809f36130f210d0baa8391ca8d3ab4a3d6851
Author: Chuck Rolke <[email protected]>
Date:   2017-06-30T15:04:17Z

    DISPATCH-760: accessor for connection status: interrouter vs user

commit f3707789d7fa5c598bc564b47d47f1893f74c495
Author: Chuck Rolke <[email protected]>
Date:   2017-06-30T15:46:43Z

    DISPATCH-760: add opaque compose map item insertion functions

commit f24bf97d5a90f278a7f1700bc0c0d109094fbc06
Author: Chuck Rolke <[email protected]>
Date:   2017-06-30T15:56:08Z

    DISPATCH-760: promote pointer_t to public qd_iterator_pointer_t

commit a9d0aff33a7416d9bf6640abce11a3b4080758ec
Author: Chuck Rolke <[email protected]>
Date:   2017-06-30T16:30:35Z

    DISPATCH-760: Add prefix search functions that use iterator pointers

commit 4698f2fe226506d78d39bb31cfbfa853d876ad9a
Author: Chuck Rolke <[email protected]>
Date:   2017-06-30T20:57:17Z

    DISPATCH-760: Add new annotation parser

commit feaf1ce1bf5ba69bed4c59c9928e19415da28577
Author: Chuck Rolke <[email protected]>
Date:   2017-07-01T19:01:56Z

    DISPATCH-760: Message handling uses new scheme

commit 6de0c999cc00affe57cd82410692ab2f824acf02
Author: Chuck Rolke <[email protected]>
Date:   2017-07-01T19:51:00Z

    DISPATCH-760: compare key names using strcmp not iter_equal

commit 162ae8db5c434017181c13c009a2c18fcd653d0a
Author: Chuck Rolke <[email protected]>
Date:   2017-07-03T15:23:39Z

    DISPATCH-760: Get self tests going
    
    Get rid of is_interrouter flag in favor of existing strip_annotations flags.
    Pass strip_annotations_in through message to parse function.

commit aaeb03006d136d3dc09e004b07cb2285906e8f3c
Author: Chuck Rolke <[email protected]>
Date:   2017-07-03T16:05:36Z

    DISPATCH-760: Fix inbound annotation stripping

----


> Inefficiencies handling message annotations
> -------------------------------------------
>
>                 Key: DISPATCH-760
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-760
>             Project: Qpid Dispatch
>          Issue Type: Bug
>    Affects Versions: 0.8.0
>         Environment: Fedora 25 laptop
> Single router, 8 worker threads, single receiver, single sender. Messages 
> have 200 100-byte annotations.
>            Reporter: Chuck Rolke
>            Assignee: Chuck Rolke
>         Attachments: DISPATCH-760-ALL-WORKERS.svg, 
> DISPATCH-760-core-thread.svg
>
>
> The router as a whole spends a lot of time managing annotations. With routers 
> and other intermediaries adding and stripping annotations, improvements in 
> this area could be valuable.
> Testing a stand-alone router gets these results.
> ||N 100-byte annotations || msg/S throughput||
> |    0 | 30,000 |
> |    1 | 22,500 |
> |    2 | 20,500 |
> |    5 | 15,500 |
> |  10 | 10,000 |
> |  20 |  5,500 |
> |  50 |  2,400 |
> | 100 | 1,200 |
> | 200 |    500 |
> Application 'perf' provides some visibility into where the threads are 
> spending their time. View the attached .svg files to see what the core thread 
> and an aggregation of the remaining threads are busy doing.
> The worker threads are spending ~85% of their time composing messages while 
> the core thread is spending 90+% of its time deleting deliveries with a 
> majority of its time in qd_parse_free().
> A 'top' thread snapshot shows several worker threads completely idle. The 
> core thread has tid=32631.
> {noformat}
>   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
> 32633 chug      20   0  858376 137708   8484 R 26.7  0.9   0:33.99 qdrouterd
> 32632 chug      20   0  858376 137708   8484 S 20.0  0.9   0:34.63 qdrouterd
> 32631 chug      20   0  858376 137708   8484 S 13.3  0.9   0:30.13 qdrouterd
> 32635 chug      20   0  858376 137708   8484 R 13.3  0.9   0:34.26 qdrouterd
> 32636 chug      20   0  858376 137708   8484 S 13.3  0.9   0:34.80 qdrouterd
> 32638 chug      20   0  858376 137708   8484 S 13.3  0.9   0:34.34 qdrouterd
> 32616 chug      20   0  858376 137708   8484 S  6.7  0.9   0:35.48 qdrouterd
> 32634 chug      20   0  858376 137708   8484 S  6.7  0.9   0:34.09 qdrouterd
> 32637 chug      20   0  858376 137708   8484 S  6.7  0.9   0:34.42 qdrouterd
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to