Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/5294 to look at the new patch set (#15). Change subject: KUDU-798 (part 3) Replica transactions must start/abort on the consensus update thread ...................................................................... KUDU-798 (part 3) Replica transactions must start/abort on the consensus update thread In order for a consensus replica to safely move "safe" time, it needs to know that all transactions that come before it have at least started. One way to do this is to call transaction_->Start() on transaction_driver_->Init(). We know Init() is called by the thread updating consensus, for non-leader transactions. This should be ok as the leader has already correctly serialized the transactions. However, if transactions are now started on Init() then, in the case they abort (i.e. when transaction_driver_->ReplicationFinished() is called with a non-ok status, again done by the thread updating consensus), we must make sure that the transaction is actually removed from mvcc before that method returns. Otherwise consensus might call Start() on another transaction with the same timestamp before the failed transaction is removed from mvcc. To do this this patch adds a way to release only the mvcc txn, since its the only thing we care about. I ran the new raft_consensus-itest that includes unique/duplicate key workloads and exaclty once semantics in dist-test with asan, slow mode and 1 stress thread. 3/1000 tests failed. This is inline with the baseline from the patch that changed the itest. Results: http://dist-test.cloudera.org//job?job_id=david.alves.1480768100.17891 Change-Id: Ie360e597eea86551c453717d7a1a000848027f4c --- M src/kudu/tablet/transactions/transaction.h M src/kudu/tablet/transactions/transaction_driver.cc M src/kudu/tablet/transactions/transaction_driver.h M src/kudu/tablet/transactions/write_transaction.cc M src/kudu/tablet/transactions/write_transaction.h 5 files changed, 60 insertions(+), 40 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/94/5294/15 -- To view, visit http://gerrit.cloudera.org:8080/5294 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie360e597eea86551c453717d7a1a000848027f4c Gerrit-PatchSet: 15 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: David Ribeiro Alves <dral...@apache.org> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: David Ribeiro Alves <dral...@apache.org> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <mpe...@apache.org> Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <t...@apache.org>