You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by to...@apache.org on 2016/12/05 01:58:23 UTC
[3/7] kudu git commit: KUDU-625 - Make write transactions abort in
mvcc, by default
KUDU-625 - Make write transactions abort in mvcc, by default
This patch addresses a long standing TODO where we would commit
transactions on the WriteTransactionState dctor instead of
aborting them, if they hadn't been explicitly
committed/aborted.
Besides changing WriteTransactionState::Reset() to call
CommitOrAbort(Transaction::ABORTED) this also required a change
to TabletBootstrap to explicitly call
tx_state.CommitOrAbort(Transaction::COMMITTED) in
PlayWriteRequest().
I ran raft_consensus-itest and exactly_once_writes-itest in slow
mode, asan, for 1000 loops on dist-test. No failures.
Results:
exactly_once_writes-itest: http://dist-test.cloudera.org//job?job_id=david.alves.1480657298.6678
raft_consensus-itest : http://dist-test.cloudera.org//job?job_id=david.alves.1480657298.6678
Change-Id: I22be773081ca3f3b1eab029e847a21e3182c64c9
Reviewed-on: http://gerrit.cloudera.org:8080/5320
Reviewed-by: Alexey Serbin <as...@cloudera.com>
Reviewed-by: Todd Lipcon <to...@apache.org>
Tested-by: Kudu Jenkins
Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/7e3071e3
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/7e3071e3
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/7e3071e3
Branch: refs/heads/master
Commit: 7e3071e3ce92aa15ea4f21d891e1e366ff421b4e
Parents: fffe576
Author: David Alves <dr...@apache.org>
Authored: Thu Dec 1 16:24:15 2016 -0800
Committer: David Ribeiro Alves <dr...@apache.org>
Committed: Sat Dec 3 01:25:35 2016 +0000
----------------------------------------------------------------------
src/kudu/tablet/tablet_bootstrap.cc | 2 ++
src/kudu/tablet/transactions/write_transaction.cc | 3 +--
2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kudu/blob/7e3071e3/src/kudu/tablet/tablet_bootstrap.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_bootstrap.cc b/src/kudu/tablet/tablet_bootstrap.cc
index 55a76d2..95a167e 100644
--- a/src/kudu/tablet/tablet_bootstrap.cc
+++ b/src/kudu/tablet/tablet_bootstrap.cc
@@ -1274,6 +1274,8 @@ Status TabletBootstrap::PlayWriteRequest(ReplicateMsg* replicate_msg,
tx_state.ReleaseTxResultPB(commit->mutable_result());
}
+ tx_state.CommitOrAbort(Transaction::COMMITTED);
+
RETURN_NOT_OK(log_->Append(&commit_entry));
return Status::OK();
http://git-wip-us.apache.org/repos/asf/kudu/blob/7e3071e3/src/kudu/tablet/transactions/write_transaction.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/write_transaction.cc b/src/kudu/tablet/transactions/write_transaction.cc
index 6387fb1..d2207fc 100644
--- a/src/kudu/tablet/transactions/write_transaction.cc
+++ b/src/kudu/tablet/transactions/write_transaction.cc
@@ -325,8 +325,7 @@ WriteTransactionState::~WriteTransactionState() {
}
void WriteTransactionState::Reset() {
- // We likely shouldn't Commit() here. See KUDU-625.
- CommitOrAbort(Transaction::COMMITTED);
+ CommitOrAbort(Transaction::ABORTED);
tx_metrics_.Reset();
timestamp_ = Timestamp::kInvalidTimestamp;
tablet_components_ = nullptr;