Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/5240 to look at the new patch set (#22). Change subject: WIP: KUDU-798 (part 5) Safe time advancement in the absence of writes ...................................................................... WIP: KUDU-798 (part 5) Safe time advancement in the absence of writes This plugs the new TimeManager through consensus and wherever else it's needed and integrates with with transactions, tablet service and consensus. Noteworthy: - Safe time advances as before _except_ in the absense of writes. That is safe time is still advanced in Mvcc by the transaction driver and only up to the committed transaction's timestamp. When there are no writes to send the leader sends its last safe time to the replica, which updates itself and unblocks waiters. - Mvcc's safe time is a more conservative version of "global" safe time. Mvcc does not get updated with safe time heartbeats from the leader. The clean snapshot must stay "clean" otherwise a lot of things would break. - Mvcc's WaitForCleanSnapshot() method was removed. There is no longer a guarantee that the "clean" timestamp will move to the present. It might not, in the absense of writes. This patch introduces a new method that allows to wait for all "known" transactions before a timestamp to be committed. WIP workign on a thorough integration test to be merged with this. This should be good to be reviewed. Change-Id: I8532fdb069c8bee7f3e08ffe74cab0273885cc8e --- M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java M src/kudu/client/client-test.cc M src/kudu/consensus/consensus.h M src/kudu/consensus/consensus.proto M src/kudu/consensus/consensus_peers-test.cc M src/kudu/consensus/consensus_queue-test.cc M src/kudu/consensus/consensus_queue.cc M src/kudu/consensus/consensus_queue.h M src/kudu/consensus/raft_consensus.cc M src/kudu/consensus/raft_consensus.h M src/kudu/consensus/raft_consensus_quorum-test.cc M src/kudu/consensus/raft_consensus_state.cc M src/kudu/consensus/raft_consensus_state.h M src/kudu/integration-tests/alter_table-test.cc M src/kudu/integration-tests/raft_consensus-itest.cc M src/kudu/tablet/mvcc-test.cc M src/kudu/tablet/mvcc.cc M src/kudu/tablet/mvcc.h M src/kudu/tablet/tablet.cc M src/kudu/tablet/tablet_bootstrap.cc M src/kudu/tablet/tablet_peer.cc M src/kudu/tablet/tablet_peer.h M src/kudu/tablet/tablet_peer_mm_ops.cc M src/kudu/tablet/transactions/alter_schema_transaction.cc M src/kudu/tablet/transactions/transaction_driver.cc M src/kudu/tablet/transactions/transaction_driver.h M src/kudu/tablet/transactions/transaction_tracker-test.cc M src/kudu/tablet/transactions/transaction_tracker.cc M src/kudu/tablet/transactions/write_transaction.cc M src/kudu/tablet/transactions/write_transaction.h M src/kudu/tserver/tablet_service.cc M src/kudu/tserver/tablet_service.h 32 files changed, 214 insertions(+), 148 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/40/5240/22 -- To view, visit http://gerrit.cloudera.org:8080/5240 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I8532fdb069c8bee7f3e08ffe74cab0273885cc8e Gerrit-PatchSet: 22 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: Tidy Bot Gerrit-Reviewer: Todd Lipcon <t...@apache.org>