[ 
https://issues.apache.org/jira/browse/QPID-5748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Moravec resolved QPID-5748.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 0.29

Fixed together with removal of ExpiryPolicy that became obsolete by deprecating 
old active-active clustering and this JIRA removed the latest relevant 
reference / to it.

> [C++ broker] Make Queue::purgeExpired more efficient by calling 
> AbsTime::now() just once
> ----------------------------------------------------------------------------------------
>
>                 Key: QPID-5748
>                 URL: https://issues.apache.org/jira/browse/QPID-5748
>             Project: Qpid
>          Issue Type: Improvement
>          Components: C++ Broker
>    Affects Versions: 0.26
>            Reporter: Pavel Moravec
>            Assignee: Pavel Moravec
>            Priority: Minor
>              Labels: improvement, patch, performance
>             Fix For: 0.29
>
>         Attachments: QPID-5748.patch
>
>
> Queue::purgeExpired method (to remove messages from all queues with TTL 
> expired) currently calls Message::hasExpired() method that calls 
> AbsTime::now() i.e. ::clock_gettime for every individual message with TTL set.
> That system call is redundant to be called in that way. It is enough to call 
> it once before traversing the very first queue and use the value as an 
> argument.
> Proposing a patch (to review also, it's not ideal imho) for that I run a 
> simple performance tests comparison that purged _all_ messages sent there:
> - sending 100k transient messages to each of 300 queues: observed 10% 
> performance improvement (improved purge took 740s and original purge took 
> 807s on my virtual box)
> - sending 10k durable messages to each of 300 durable queues: observed almost 
> no improvement (improved: 114.48s, original: 115.77s i.e. performance gain in 
> 1.1%) - probably disk operations (common to both tests) kill the improvement; 
> if the test won't purge the messages, (linear)store won't take into pla and 
> improvement would be more visible, I guess



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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

Reply via email to