qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway" <acon...@redhat.com>
Subject Re: Review Request: QPID-4555: HA Add QueueSettings::declaredExclusive for exclusive queues.
Date Thu, 07 Feb 2013 18:50:13 GMT

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

(Updated Feb. 7, 2013, 6:50 p.m.)


Review request for qpid, Gordon Sim, Kenneth Giusti, and Ted Ross.


Changes
-------

This is a new tack: instead of relying the same calculation yielding the same result (where
have I heard that before?) The primary now decides whether a queue is replicated or not, and
adds an explicit qpid.replicate to the arguments. The backup just does what it says in qpid.replicate.
I added QueueSettings::declaredExclusive to provide a reliable indication, set before ConfigurationObserver::queueCreate.
It had some ripples but I think it's healthier now. If you want you can just focus on the
changes I made under broker to make sure I don't break something.


Summary (updated)
-----------------

QPID-4555: HA Add QueueSettings::declaredExclusive for exclusive queues.


Description (updated)
-------

QPID-4555: HA Add QueueSettings::declaredExclusive for exclusive queues.

This is set when the queue is created, before calling
ConfigurationObserver::queueCreate, and does not change thereafter.

The existing Queue::owner not set until after ConfigurationObserver::queueCreate
and does change as ownership can be released and acquired.

QPID-4555: HA Primary sets explicit qpid.replicate in Queue and Exchange arguments.

Previously both Primary and Backup would calculate the qpid.replicate value
independently, assuming the result would be the same. In the case of exclusive
queues, the exclusivity can change over time so its possible that primary and
backup won't agree.

Now only Primary does the calculation with exclusive, auto-delete etc. and puts
an explicity qpid.replicate in the queue or event arguments. Backup uses the
value set by primary.

QPID-4555: HA Check for backup ready when new backup joins.

This test was missing so if there were no backed-up queues the backup would
never be marked ready. It was workig because of a separte bug:
auto-delete/exclusive queues were being replicated incorrectly so there were
always replicated queues (temp queues created by qpid-ha)

QPID-4555: HA Don't shut down on deleting an exchange that is in use as an alternate.

Previously threw an exception in this case which shut down the broker.
Log warning instead, this is not a fatal event.


Diffs (updated)
-----

  /trunk/qpid/cpp/src/qpid/broker/QueueSettings.h 1441163 
  /trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp 1441163 
  /trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp 1441163 
  /trunk/qpid/cpp/src/qpid/ha/Backup.cpp 1441163 
  /trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.h 1441163 
  /trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp 1441163 
  /trunk/qpid/cpp/src/qpid/ha/HaBroker.h 1441163 
  /trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp 1441163 
  /trunk/qpid/cpp/src/qpid/ha/Primary.h 1441163 
  /trunk/qpid/cpp/src/qpid/ha/Primary.cpp 1441163 
  /trunk/qpid/cpp/src/qpid/ha/RemoteBackup.h 1441163 
  /trunk/qpid/cpp/src/qpid/ha/RemoteBackup.cpp 1441163 
  /trunk/qpid/cpp/src/qpid/ha/ReplicationTest.h 1441163 
  /trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp 1441163 
  /trunk/qpid/cpp/src/tests/ha_tests.py 1441163 

Diff: https://reviews.apache.org/r/9258/diff/


Testing
-------

make check
ha tests running 2  hours now without failure.


Thanks,

Alan Conway


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message