qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jiraposter@reviews.apache.org (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-3602) Fix Consumer message credit issues in 0-10 codepath
Date Thu, 17 Nov 2011 22:51:53 GMT

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

jiraposter@reviews.apache.org commented on QPID-3602:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2853/#review3330
-----------------------------------------------------------


Also forgot to mention earlier, I think that you will need to consider clearing the contents
of your completions list during failover. When Keith and I made the changes we did, we had
to update the patch to ensure that it didnt try completing messages after failover that had
been received from the old broker and so would now be considered to have invalid command IDs
based on the tracking the Session does.

- Robbie


On 2011-11-16 18:31:12, rajith attapattu wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/2853/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-11-16 18:31:12)
bq.  
bq.  
bq.  Review request for qpid, Gordon Sim, Robbie Gemmell, Weston Price, Keith Wall, and Oleksandr
Rudyy.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  This patch is for both QPID-3612 & QPID-3613. Please note QPID-3602 is the main JIRA
for credit related issues.
bq.  
bq.  Message completions are now handled independent of the Message acks.
bq.  
bq.  1. The consumer now keeps track of credits on a per subscription basis using the RangeSet
"completions" and sends completions,
bq.     if the unCompletedCount >= _capacity/2
bq.     For capacity = 0 or capacity = 1, we use the flag "sendCompleteForEveryMsg" to send
a completion for each message.
bq.  
bq.  2. Cleanedup the acking process in AMQSession_0_10.java to make acking independent of
completions.
bq.     2.1 For AUTO_ACK we send an ack after every message.
bq.     2.1 For DUPS_OK we ack if,
bq.            maxAckDelay <= 0 OR
bq.            unackedCount >= ackBatchingThreshold, where ackBatchingThreshold == prefetch/2
bq.  
bq.  
bq.  This addresses bug QPID-3602.
bq.      https://issues.apache.org/jira/browse/QPID-3602
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
1202779 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java
1202779 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/prefetch/PrefetchBehaviourTest.java
1202779 
bq.  
bq.  Diff: https://reviews.apache.org/r/2853/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  Added two basic test cases (transacted and client-ack modes) to ensure completions are
sent in time to ensure credits don't dry up.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  rajith
bq.  
bq.


                
> Fix Consumer message credit issues in 0-10 codepath
> ---------------------------------------------------
>
>                 Key: QPID-3602
>                 URL: https://issues.apache.org/jira/browse/QPID-3602
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.14
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.15
>
>
> Currently there are several issues related to message credits.
> 1. QPID-2604 - Getting more messages than required by the prefetch value.
> 2. QPID-3604 - If connection is started and stopped, the client *may* get more messages
than required by the prefetch value.
> 3. QPID-3562 - Prefetch=1 case doesn't work properly.
> 4. Prefetch-0 case doesn't work properly (well completely broken).
> 5. QPID-3612 -Message credits are affected by Command Completions and not message-acks.
However these two are intertwined in the logic causing some issues. For example when in client-ack
mode or using transactions, if the client has exhausted the credits, but is waiting for more
messages to come before it acks or commits a transaction, then the client will appear hung
(This issue is currently masked due to some of the above bugs). 
> 6. QPID-3613 Credit should be managed on a per subscription basis than on a per session
basis.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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


Mime
View raw message