[ 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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org