> On July 11, 2013, 10:04 a.m., Gordon Sim wrote:
> > /trunk/qpid/cpp/src/qpid/broker/TransactionObserver.h, line 59
> > <https://reviews.apache.org/r/12289/diff/4/?file=320029#file320029line59>
> >
> >     Is there a reason not to have QueuePtr and Message as the two arguments 
> > for dequeue as well as enqueue (and I do prefer those names as I think they 
> > are clearer in the transactional context).
> >     
> >     The Message would allow access to either sequence or replication id (or 
> > any other aspect that may be necessary).
> 
> Alan Conway wrote:
>     Yes, I'm driving this from the TxBuffer and TxOps. The TxAccept op 
> doesn't have message pointers, just DeliveryRecords. We can get the queue 
> position and replication ID from those. We could use that to look up the 
> message in the queue but in the case of HA that would be wasted effort since 
> HA only needs to know the replication ID.
>     
>     The names follow the same pattern as the TxOps, but I've no objection to 
> changing them.

Looking good from fairly cursory inspection. I'm much happier with the observer 
interfaces now.


- Gordon


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


On July 31, 2013, 1:34 p.m., Alan Conway wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/12289/
> -----------------------------------------------------------
> 
> (Updated July 31, 2013, 1:34 p.m.)
> 
> 
> Review request for qpid, Andrew Stitcher and Gordon Sim.
> 
> 
> Bugs: QPID-4327
>     https://issues.apache.org/jira/browse/QPID-4327
> 
> 
> Repository: qpid
> 
> 
> Description
> -------
> 
> QPID-4327: HA TX transactions: basic replication.
> 
> On primary a PrimaryTxObserver observes a transaction's TxBuffer and generates
> transaction events on a tx-replication-queue. On the backup a TxReplicator
> receives the events and constructs a TxBuffer equivalent to the one in the
> primary.
> 
> Unfinished:
> - Primary does not wait for backups to prepare() before committing.
> - All connected backups are assumed to be in the transaction, there are race
>   conditions around brokers joining/leavinv where this assumption is invalid.
> - Need more tests.
> 
> QPID-4327: HA get rid of Primary::get() singleton.
> 
> 
> QPID-4327: Added TransactionObserver interface.
> 
> Added TransactionObserver interface, called at each point in a transaction's
> lifecycle. Currently only a single observer can be associated with a
> transaction.
> 
> Added startTx, startDtx to BrokerObserver so plugins can observe transactions
> starting and set a TransactionObserver.
> 
> QPID-4327: Renamed ConfigurationObserver as BrokerObserver.
> 
> This class really was intended as a observer for broker-level events which
> includes configuration but may in future include other non-configuration 
> events
> such as transactions.
> 
> QPID-4327: Refactor to simplify TxAccept.
> 
> Removed un-necessary RangeOps layers.
> 
> QPID-4327: Optimize brokertest.ready() to improve test runtimes.
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/include/qpid/framing/BufferTypes.h PRE-CREATION 
>   /trunk/qpid/cpp/src/CMakeLists.txt 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/Broker.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/BrokerObserver.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/BrokerObservers.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/ConfigurationObserver.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/ConfigurationObservers.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/DtxAck.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/MessageStoreModule.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/MessageStoreModule.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/Queue.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/QueueRegistry.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/RecoveredDequeue.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/RecoveredEnqueue.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/TransactionObserver.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/TxAccept.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/TxAccept.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/TxBuffer.h 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/TxBuffer.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/broker/TxOp.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/Backup.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/Event.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/ha/Event.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/ha/FailoverExchange.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/HaBroker.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/Membership.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/Membership.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/Primary.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/Primary.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/ha/QueueReplicator.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/QueueSnapshots.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/RemoteBackup.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/RemoteBackup.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/ReplicatingSubscription.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/ReplicatingSubscription.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/StatusCheck.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/TxReplicator.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/ha/TxReplicator.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/ha/makeMessage.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/makeMessage.cpp 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/types.h 1508523 
>   /trunk/qpid/cpp/src/qpid/ha/types.cpp 1508523 
>   /trunk/qpid/cpp/src/tests/BrokerFixture.h 1508523 
>   /trunk/qpid/cpp/src/tests/CMakeLists.txt 1508523 
>   /trunk/qpid/cpp/src/tests/MessagingFixture.h 1508523 
>   /trunk/qpid/cpp/src/tests/TransactionObserverTest.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/tests/TxMocks.h 1508523 
>   /trunk/qpid/cpp/src/tests/brokertest.py 1508523 
>   /trunk/qpid/cpp/src/tests/cluster_test.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/tests/ha_test.py 1508523 
>   /trunk/qpid/cpp/src/tests/ha_tests.py 1508523 
>   /trunk/qpid/cpp/src/tests/test_env.sh.in 1508523 
>   /trunk/qpid/cpp/src/tests/test_store.cpp 1508523 
>   /trunk/qpid/cpp/src/tests/test_tools.h 1508523 
> 
> Diff: https://reviews.apache.org/r/12289/diff/
> 
> 
> Testing
> -------
> 
> Basic tx replication appears to be working, used temporary log statements to 
> prove the messages were being processed by the TxBuffer on the backup and not 
> just being sent by the normal means.
> 
> 
> Thanks,
> 
> Alan Conway
> 
>

Reply via email to