> On Nov. 8, 2013, 7:21 p.m., Alan Conway wrote:
> > This needs a bit more of HA work. 
> > 
> > Need to keep exchange it in memory on the backup until deleted by primary 
> > or backup is promoted. See markInUse/releaseFromUse in 
> > QueueReplicator::QueueReplicator BrokerReplicator::disconnectedExchange to 
> > see how this was done for Queues. The issue is:
> > - Prevent race conditions: backup must not auto-delete before primary does.
> > - Re-enable auto-delete semantics when the backup is disconnected from 
> > primary.
> > (disconnectExchange is badly named - should be disconnectQueueReplicator as 
> > in this context its secondary that QRs are also exchanges.)
> 
> Gordon Sim wrote:
>     Unlike an autodeleted queue, there are no messages associated with an 
> autodeleted exchange. I think this means that there is no real issue if the 
> backup deletes the exchange first. Provided the QMF event for deletion on the 
> primary doesn't cause anything to break - which it doesn't as the 
> BrokerReplicator tests to see if the exchange exists or not - I think it is 
> safe(?). Am I missing anything?

No, you are correct, this is fine. Ship It. Maybe add a comment noting why 
exchanges don't need the measures that queues do so I don't come back in 2 
weeks and go "oh no! we need to fix autodelete for exchanges!"


- Alan


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


On Nov. 6, 2013, 5:50 p.m., Gordon Sim wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15273/
> -----------------------------------------------------------
> 
> (Updated Nov. 6, 2013, 5:50 p.m.)
> 
> 
> Review request for qpid.
> 
> 
> Bugs: QPID-5301
>     https://issues.apache.org/jira/browse/QPID-5301
> 
> 
> Repository: qpid
> 
> 
> Description
> -------
> 
> Exchanges can now be set to be autodeleted. For 0-10 this means they are 
> deleted as soon as the binding count drops to 0 (this does mean that an 
> existing sender to that exchange will  get an error on the next message they 
> try to send, but this is as the spec dictates and there is no good way to 
> track a sender in 0-10). For 1.0 there is an additional constraint that there 
> are no active sender links to the exchange.
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/src/qpid/broker/Broker.h 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/DirectExchange.h 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/Exchange.h 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/Exchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/FanOutExchange.h 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/HeadersExchange.h 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/Link.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/TopicExchange.h 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/NodeProperties.h 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.h 1538754 
>   /trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/ha/FailoverExchange.h 1538754 
>   /trunk/qpid/cpp/src/qpid/ha/FailoverExchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/ha/QueueReplicator.h 1538754 
>   /trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/management/ManagementDirectExchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/management/ManagementTopicExchange.h 1538754 
>   /trunk/qpid/cpp/src/qpid/management/ManagementTopicExchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/xml/XmlExchange.h 1538754 
>   /trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp 1538754 
>   /trunk/qpid/cpp/src/qpid/xml/XmlExchangePlugin.cpp 1538754 
>   /trunk/qpid/cpp/src/tests/ExchangeTest.cpp 1538754 
>   /trunk/qpid/cpp/src/tests/legacystore/SimpleTest.cpp 1538754 
>   /trunk/qpid/cpp/src/tests/misc.py 1538754 
>   /trunk/qpid/java/test-profiles/python_tests/Java010PythonExcludes 1538754 
>   /trunk/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py 1538754 
> 
> Diff: https://reviews.apache.org/r/15273/diff/
> 
> 
> Testing
> -------
> 
> Added tests for autodelete and all existing tests pass.
> 
> 
> Thanks,
> 
> Gordon Sim
> 
>

Reply via email to