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

[email protected] commented on QPID-3076:
-----------------------------------------------------


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



/trunk/qpid/cpp/docs/man/qpidd.1
<https://reviews.apache.org/r/512/#comment1216>

    This is probably unintnetional? I suspect it may just be a result of the 
build process changing since you created the diff?



/trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.cpp
<https://reviews.apache.org/r/512/#comment1214>

    Just curious about removing this check... was it required? Is there ever a 
case when the payload is not set? If so are we sure it is safe?



/trunk/qpid/cpp/src/qpid/broker/QueueObserver.h
<https://reviews.apache.org/r/512/#comment1215>

    I'm not hugely keen on these changes to QueueObserver. I fully anticipate 
that the interface will need to be adapted and expanded. However I'd like - if 
possible - to keep cluster specific concerns out of it.
    
    That is a big 'if' however. One suggestion would be to create a sub-class 
of QueueObserver - e.g. StatefulQueueObserver - that included these changes. 
You could then create an instance of that if desired/required. The UpdateClient 
could also then cast to that interface to determine if there was relevant state.
    
    I'd like at some point to move to a queue factory and have a specific 
specialisation of that for clustered brokers that could encapsulate any cluster 
specific shenanigans.


- Gordon


On 2011-04-26 17:04:03, Kenneth Giusti wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/512/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-04-26 17:04:03)
bq.  
bq.  
bq.  Review request for Alan Conway and Gordon Sim.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Hi Alan,
bq.  
bq.  Here's a patch that should give you an idea of the direction I'm going in 
- could be completely wrong here so I don't want to go too far without checking 
with you.
bq.  
bq.  From your notes, I've modified a bit those items I *think* we need to 
replicate based on the changes I've made to increase performance (some items 
have been removed).  Here's what I think we need to cover:
bq.  
bq.  Replicate:
bq.  
bq.      For each Queue:
bq.          If Queue has a QueueFlowLimit configured:
bq.             QueueFlowLimit::flowStoppedCount
bq.             QueueFlowLimit::index set of msg sequence numbers that are 
pending.
bq.  
bq.             For each msg in the QueueFlowLimit::index set:
bq.                 Allocate a SessionState::IncompleteIngressMsgXfer context
bq.                 Attach a SessionState::IncompleteIngressMsgXfer context to 
messsage's AsyncCompletion callback
bq.                 Force AsyncCompletion::completion count to 1 (??? or more 
???)
bq.  
bq.      For each SessionState:
bq.          Replicate the vector of pendingExecutionSyncs SequenceNumbers
bq.          Add an AsyncCommandCompleter context
bq.              Replicate the vector of completedMsgs
bq.              If vector of completedMsgs > 0:
bq.                 Scheduled requestIOProcessing for callback ????
bq.  
bq.  Let me know what you think, thanks.
bq.  
bq.  
bq.  This addresses bug QPID-3076.
bq.      https://issues.apache.org/jira/browse/QPID-3076
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    /trunk/qpid/cpp/docs/man/qpidd.1 1096739 
bq.    /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1096739 
bq.    /trunk/qpid/cpp/src/qpid/broker/Queue.h 1096739 
bq.    /trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1096739 
bq.    /trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.h 1096739 
bq.    /trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.cpp 1096739 
bq.    /trunk/qpid/cpp/src/qpid/broker/QueueObserver.h 1096739 
bq.    /trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp 1096739 
bq.    /trunk/qpid/cpp/src/qpid/cluster/Connection.h 1096739 
bq.    /trunk/qpid/cpp/src/qpid/cluster/Connection.cpp 1096739 
bq.    /trunk/qpid/cpp/src/qpid/cluster/UpdateClient.h 1096739 
bq.    /trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp 1096739 
bq.    /trunk/qpid/cpp/src/tests/QueueFlowLimitTest.cpp 1096739 
bq.    /trunk/qpid/cpp/src/tests/cluster_tests.py 1096739 
bq.    /trunk/qpid/cpp/src/tests/queue_flow_limit_tests.py 1096739 
bq.    /trunk/qpid/cpp/xml/cluster.xml 1096739 
bq.  
bq.  Diff: https://reviews.apache.org/r/512/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  Barely compiles.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Kenneth
bq.  
bq.



> Enable producer flow control (QPID-2935) in a cluster
> -----------------------------------------------------
>
>                 Key: QPID-3076
>                 URL: https://issues.apache.org/jira/browse/QPID-3076
>             Project: Qpid
>          Issue Type: New Feature
>          Components: C++ Clustering
>    Affects Versions: 0.9, 0.10
>            Reporter: Alan Conway
>            Assignee: Ken Giusti
>             Fix For: 0.11
>
>         Attachments: QPID-3076-2.patch
>
>
> QPID-2935 adds  producer flow control to the broker, but it is disabled in a 
> cluster. Flow control adds additional broker state that must be replicated in 
> a cluster in order to maintain cluster consistency. Add this replication and 
> enable flow control in a cluster.

--
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:[email protected]

Reply via email to