You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ken Giusti (JIRA)" <ji...@apache.org> on 2011/05/09 23:12:03 UTC
[jira] [Created] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
-----------------------------------------------------------------------------------------------------------------
Key: QPID-3252
URL: https://issues.apache.org/jira/browse/QPID-3252
Project: Qpid
Issue Type: Bug
Components: C++ Broker
Affects Versions: 0.10
Reporter: Ken Giusti
Assignee: Ken Giusti
Fix For: 0.11
In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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
[jira] [Commented] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031145#comment-13031145 ]
jiraposter@reviews.apache.org commented on QPID-3252:
-----------------------------------------------------
bq. On 2011-05-10 08:35:04, Gordon Sim wrote:
bq. > /trunk/qpid/cpp/src/qpid/broker/SessionState.cpp, line 538
bq. > <https://reviews.apache.org/r/701/diff/1/?file=18450#file18450line538>
bq. >
bq. > Maybe use swap() here?
Good point - done!
- Kenneth
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/701/#review653
-----------------------------------------------------------
On 2011-05-09 21:22:38, Kenneth Giusti wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/701/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2011-05-09 21:22:38)
bq.
bq.
bq. Review request for qpid, Alan Conway, Gordon Sim, and Kim van der Riet.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. Broker now issues an explicit flush for each received message that has the sync flag set in the message.transfer command.
bq. Broker also tracks all messages received that do _not_ have the sync flag set, and will flush these messages on receipt of an execution.sync.
bq.
bq.
bq. This addresses bug QPID-3252.
bq. https://issues.apache.org/jira/browse/QPID-3252
bq.
bq.
bq. Diffs
bq. -----
bq.
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.h 1101206
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1101206
bq.
bq. Diff: https://reviews.apache.org/r/701/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq. qpid unit & store unit
bq.
bq.
bq. Thanks,
bq.
bq. Kenneth
bq.
bq.
> Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: QPID-3252
> URL: https://issues.apache.org/jira/browse/QPID-3252
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.10
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: 0.11
>
>
> In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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
[jira] [Commented] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031215#comment-13031215 ]
jiraposter@reviews.apache.org commented on QPID-3252:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/701/#review657
-----------------------------------------------------------
Does this affect performance at all?
Looks ok to me but I'm not up on why we need to flush here.
- Alan
On 2011-05-09 21:22:38, Kenneth Giusti wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/701/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2011-05-09 21:22:38)
bq.
bq.
bq. Review request for qpid, Alan Conway, Gordon Sim, and Kim van der Riet.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. Broker now issues an explicit flush for each received message that has the sync flag set in the message.transfer command.
bq. Broker also tracks all messages received that do _not_ have the sync flag set, and will flush these messages on receipt of an execution.sync.
bq.
bq.
bq. This addresses bug QPID-3252.
bq. https://issues.apache.org/jira/browse/QPID-3252
bq.
bq.
bq. Diffs
bq. -----
bq.
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.h 1101206
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1101206
bq.
bq. Diff: https://reviews.apache.org/r/701/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq. qpid unit & store unit
bq.
bq.
bq. Thanks,
bq.
bq. Kenneth
bq.
bq.
> Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: QPID-3252
> URL: https://issues.apache.org/jira/browse/QPID-3252
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.10
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: 0.11
>
>
> In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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
[jira] [Commented] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031598#comment-13031598 ]
jiraposter@reviews.apache.org commented on QPID-3252:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/701/#review664
-----------------------------------------------------------
Ship it!
- Gordon
On 2011-05-10 21:25:11, Kenneth Giusti wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/701/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2011-05-10 21:25:11)
bq.
bq.
bq. Review request for qpid, Alan Conway, Gordon Sim, and Kim van der Riet.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. Broker now issues an explicit flush for each received message that has the sync flag set in the message.transfer command.
bq. Broker also tracks all messages received that do _not_ have the sync flag set, and will flush these messages on receipt of an execution.sync.
bq.
bq.
bq. This addresses bug QPID-3252.
bq. https://issues.apache.org/jira/browse/QPID-3252
bq.
bq.
bq. Diffs
bq. -----
bq.
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.h 1101542
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1101542
bq.
bq. Diff: https://reviews.apache.org/r/701/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq. qpid unit & store unit
bq.
bq.
bq. Thanks,
bq.
bq. Kenneth
bq.
bq.
> Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: QPID-3252
> URL: https://issues.apache.org/jira/browse/QPID-3252
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.10
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: 0.11
>
>
> In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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
[jira] [Commented] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031384#comment-13031384 ]
jiraposter@reviews.apache.org commented on QPID-3252:
-----------------------------------------------------
bq. On 2011-05-10 14:36:31, Alan Conway wrote:
bq. > Does this affect performance at all?
bq. > Looks ok to me but I'm not up on why we need to flush here.
Performance?
Dang you, Conway! Turns out it does affect the performance of the transient case - about 10% hit.
I've got a refactored patch that avoids any unnecessary overhead in the path where messages complete synchronously. I'll upload that now.
- Kenneth
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/701/#review657
-----------------------------------------------------------
On 2011-05-09 21:22:38, Kenneth Giusti wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/701/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2011-05-09 21:22:38)
bq.
bq.
bq. Review request for qpid, Alan Conway, Gordon Sim, and Kim van der Riet.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. Broker now issues an explicit flush for each received message that has the sync flag set in the message.transfer command.
bq. Broker also tracks all messages received that do _not_ have the sync flag set, and will flush these messages on receipt of an execution.sync.
bq.
bq.
bq. This addresses bug QPID-3252.
bq. https://issues.apache.org/jira/browse/QPID-3252
bq.
bq.
bq. Diffs
bq. -----
bq.
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.h 1101206
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1101206
bq.
bq. Diff: https://reviews.apache.org/r/701/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq. qpid unit & store unit
bq.
bq.
bq. Thanks,
bq.
bq. Kenneth
bq.
bq.
> Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: QPID-3252
> URL: https://issues.apache.org/jira/browse/QPID-3252
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.10
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: 0.11
>
>
> In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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
[jira] [Commented] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031088#comment-13031088 ]
jiraposter@reviews.apache.org commented on QPID-3252:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/701/#review653
-----------------------------------------------------------
/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
<https://reviews.apache.org/r/701/#comment1310>
Maybe use swap() here?
/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
<https://reviews.apache.org/r/701/#comment1311>
Looks good to me
- Gordon
On 2011-05-09 21:22:38, Kenneth Giusti wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/701/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2011-05-09 21:22:38)
bq.
bq.
bq. Review request for qpid, Alan Conway, Gordon Sim, and Kim van der Riet.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. Broker now issues an explicit flush for each received message that has the sync flag set in the message.transfer command.
bq. Broker also tracks all messages received that do _not_ have the sync flag set, and will flush these messages on receipt of an execution.sync.
bq.
bq.
bq. This addresses bug QPID-3252.
bq. https://issues.apache.org/jira/browse/QPID-3252
bq.
bq.
bq. Diffs
bq. -----
bq.
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.h 1101206
bq. /trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1101206
bq.
bq. Diff: https://reviews.apache.org/r/701/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq. qpid unit & store unit
bq.
bq.
bq. Thanks,
bq.
bq. Kenneth
bq.
bq.
> Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: QPID-3252
> URL: https://issues.apache.org/jira/browse/QPID-3252
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.10
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: 0.11
>
>
> In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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
[jira] [Commented] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13030903#comment-13030903 ]
jiraposter@reviews.apache.org commented on QPID-3252:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/701/
-----------------------------------------------------------
Review request for qpid, Alan Conway, Gordon Sim, and Kim van der Riet.
Summary
-------
Broker now issues an explicit flush for each received message that has the sync flag set in the message.transfer command.
Broker also tracks all messages received that do _not_ have the sync flag set, and will flush these messages on receipt of an execution.sync.
This addresses bug QPID-3252.
https://issues.apache.org/jira/browse/QPID-3252
Diffs
-----
/trunk/qpid/cpp/src/qpid/broker/SessionState.h 1101206
/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1101206
Diff: https://reviews.apache.org/r/701/diff
Testing
-------
qpid unit & store unit
Thanks,
Kenneth
> Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: QPID-3252
> URL: https://issues.apache.org/jira/browse/QPID-3252
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.10
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: 0.11
>
>
> In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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
[jira] [Resolved] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Posted by "Ken Giusti (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ken Giusti resolved QPID-3252.
------------------------------
Resolution: Fixed
Fix Version/s: (was: 0.11)
0.13
Fix completed with patch to QPID-3394
> Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: QPID-3252
> URL: https://issues.apache.org/jira/browse/QPID-3252
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.10
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: 0.13
>
>
> In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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
[jira] [Commented] (QPID-3252) Regression: broker no longer
explicitly flushes messages to store on execution.sync or when sync command
bit set.
Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031387#comment-13031387 ]
jiraposter@reviews.apache.org commented on QPID-3252:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/701/
-----------------------------------------------------------
(Updated 2011-05-10 21:25:11.588275)
Review request for qpid, Alan Conway, Gordon Sim, and Kim van der Riet.
Changes
-------
This refactor brings transient traffic performance back to pre-patch levels. I've moved the whole flush-or-save logic into the clone() callback which is invoked only if the message.transfer cannot be completed asynchronously. This removes it from the transient fast-path.
Let me know what you think.
Summary
-------
Broker now issues an explicit flush for each received message that has the sync flag set in the message.transfer command.
Broker also tracks all messages received that do _not_ have the sync flag set, and will flush these messages on receipt of an execution.sync.
This addresses bug QPID-3252.
https://issues.apache.org/jira/browse/QPID-3252
Diffs (updated)
-----
/trunk/qpid/cpp/src/qpid/broker/SessionState.h 1101542
/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1101542
Diff: https://reviews.apache.org/r/701/diff
Testing
-------
qpid unit & store unit
Thanks,
Kenneth
> Regression: broker no longer explicitly flushes messages to store on execution.sync or when sync command bit set.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: QPID-3252
> URL: https://issues.apache.org/jira/browse/QPID-3252
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.10
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Fix For: 0.11
>
>
> In the previous release of the broker, an execution.sync command, or a message.transfer command with a sync flag would cause the broker to explicitly flush the message(s) and pend until the flushes complete. In the new asynchronous model, the broker does not initiate a flush under these scenarios. Without explicitly flushing, the completion of a message.transfer/execution.sync may delay for an unacceptable amount of time (ex. 1sec+) when used with store.
--
This message is automatically generated by JIRA.
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