diff options
| author | Alan Conway <aconway@apache.org> | 2013-07-05 19:22:45 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2013-07-05 19:22:45 +0000 |
| commit | 74573aa8abb9f52961fb0b2d75860760e8baddb3 (patch) | |
| tree | d07b89123bb35fddd70e06d18768f86334986f52 /cpp | |
| parent | 73e6cd4a2e917ec74056074db547301f87d53f6a (diff) | |
| download | qpid-python-74573aa8abb9f52961fb0b2d75860760e8baddb3.tar.gz | |
QPID-4327: Minor edits to ha-transactions.md
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1500107 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
| -rw-r--r-- | cpp/design_docs/ha-transactions.md | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/cpp/design_docs/ha-transactions.md b/cpp/design_docs/ha-transactions.md index a5b952398f..ab4b1c6925 100644 --- a/cpp/design_docs/ha-transactions.md +++ b/cpp/design_docs/ha-transactions.md @@ -1,4 +1,3 @@ - # Design note: HA with Transactions. Clients can use transactions (TX or DTX) with the current HA module but: @@ -127,14 +126,14 @@ Backups abort all open tx if the primary fails. ## Atomicity Keep tx atomic when backups catch up while a tx is in progress. -A `ready` backup should never contain a subset of messages in a transaction. +A `ready` backup should never contain a proper subset of messages in a transaction. Scenario: - Guard placed on Q for an expected backup. - Transaction with messages A,B,C on Q is prepared, tx-queue is closed. - Expected backup connects and is declared ready due to guard. -- Transaction commits, primary adds A, B to Q and crashes before adding C. +- Transaction commits, primary publishes A, B to Q and crashes before adding C. - Backup is ready so promoted to new primary with a partial transaction A,B. *TODO*: Not happy with the following solution. @@ -167,9 +166,13 @@ NOTE: needs thougthful locking to correctly handle ## Testing -*TODO* +New tests: + +- TX transaction tests in python. +- TX failover stress test (c.f. `test_failover_send_receive`) + +Existing tests: + +- JMS transaction tests (DTX & TX) +- `qpid/tests/src/py/qpid_tests/broker_0_10/dtx.py,tx.py` run against HA broker. -- JMS tests -- Port old cluster_tests.py Dtx & Tx tests to HA. -- tests/src/py/qpid_tests/broker_0_10/dtx.py,tx.py (run all python tests against HA broker?) -- new tests with messaging API tx |
