Andrew Wong has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/17217


Change subject: KUDU-2612: allow ABORT_TXN or FINALIZE_COMMIT when transaction 
hasn't been started
......................................................................

KUDU-2612: allow ABORT_TXN or FINALIZE_COMMIT when transaction hasn't been 
started

This patch makes allows ABORT_TXN to proceed even if the participant
hasn't yet replicated a BEGIN_TXN op.

The primary motivator for this is the following case:
- A write request is served by participant P1 of transaction T1.
- P1's TxnOpDispatcher successfully makes the RegisterParticipant call
  for T1.
- P1 fails to replicate its BEGIN_TXN op for T1.
- The write request times out (no further retries happen).
- T1 is aborted, and ABORT_TXN ops are sent to all registered
  participants, including P1.
- Since the BEGIN_TXN op wasn't successul on P1, its ABORT_TXN op is
  also unsuccessful, causing the abort task to halt.

Change-Id: Ibf85e0724ee579cb20dac642b82e3228faf90935
---
M src/kudu/client/batcher.cc
M src/kudu/integration-tests/txn_write_ops-itest.cc
M src/kudu/tablet/lock_manager.h
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet_metadata.cc
M src/kudu/tablet/tablet_replica.cc
M src/kudu/tablet/txn_participant-test.cc
M src/kudu/tablet/txn_participant.h
M src/kudu/transactions/txn_status_manager.cc
9 files changed, 40 insertions(+), 33 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/17/17217/1
--
To view, visit http://gerrit.cloudera.org:8080/17217
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibf85e0724ee579cb20dac642b82e3228faf90935
Gerrit-Change-Number: 17217
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Wong <[email protected]>

Reply via email to