Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11070 )

Change subject: WIP: Atomicize OpId and Timestamp assignment
......................................................................


Patch Set 8:

(1 comment)

Noting the root of our timeouts.

http://gerrit.cloudera.org:8080/#/c/11070/8/src/kudu/tablet/transactions/transaction_driver.cc
File src/kudu/tablet/transactions/transaction_driver.cc:

http://gerrit.cloudera.org:8080/#/c/11070/8/src/kudu/tablet/transactions/transaction_driver.cc@354
PS8, Line 354: return s;
The changes from PS6 to PS8 are due to the fact that:
- returning any sort of error will have HandleFailure called on it externally 
by the TransactionDriver::ExecuteAsync()
- if the ReplicationFinished() callback is called between Replicate() and L372, 
the replication state copy may be REPLICATED, in which case ApplyAsync applies 
the txn, or REPLICATION_FAILED (eg because the tablet is shutting down), in 
which case ApplyAsync handles the error, unregistering the txn from the tracker

This meant that if ReplicationFinished() was called but set the replication 
state to REPLICATION_FAILED, we were left with a transaction on the transaction 
tracker, and upon waiting for all transactions to finish (e.g. when stopping / 
deleting the tablet), we would wait forever.



--
To view, visit http://gerrit.cloudera.org:8080/11070
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0d369423dd5c96b653b424c29744507edd874357
Gerrit-Change-Number: 11070
Gerrit-PatchSet: 8
Gerrit-Owner: David Ribeiro Alves <davidral...@gmail.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Comment-Date: Wed, 01 Aug 2018 00:19:54 +0000
Gerrit-HasComments: Yes

Reply via email to