----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/15273/#review28562 -----------------------------------------------------------
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.) - Alan Conway 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 > >
