[
https://issues.apache.org/jira/browse/QPID-6255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14244643#comment-14244643
]
Ken Giusti commented on QPID-6255:
----------------------------------
I've scaled back the patch a bit:
https://github.com/kgiusti/qpid/commit/73ead9f5144ef38d647fcb8ee5d623a08531189e
It now merely replaces the iterative endpoint state and delivery state
processing with the corresponding event-based approach. FLOW events are
ignored in Connection::process() - the same old codepath
(Connection::dispatch()) is used for checking available credit on sender links.
There's still a bit of a perf hit (even though we discard all other events),
but we're still in the 1-2% range.
The only other significant change was to Connection::doOutput() - I noticed
that the original version would skip generating output if the transport didn't
already have some output buffered. That didn't seem correct - I've modified it
to allow an initially empty buffer (and to stop when either capacity or the
transport buffer is full). Does that make sense?
> [amqp1.0] Migrate to the new Proton event API
> ---------------------------------------------
>
> Key: QPID-6255
> URL: https://issues.apache.org/jira/browse/QPID-6255
> Project: Qpid
> Issue Type: Improvement
> Components: C++ Broker
> Affects Versions: 0.30
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: Future
>
>
> Proton version 0.8 introduced an event-based API. The Qpid broker currently
> uses the older API which requires a linear search of deliveries, links, and
> sessions during event processing. Migrating to the new API _should_ optimize
> event processing, especially as the number of object instances scale.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]