Andrew Wong has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/11428 )
Change subject: KUDU-2463 pt 3: don't scan if MVCC hasn't moved ...................................................................... KUDU-2463 pt 3: don't scan if MVCC hasn't moved In cases when a tablet bootstrap yields an MvccManager whose safe time has not been advanced (e.g. if there are no write ops in the WAL), and the tablet has otherwise not bumped its MVCC timestamps (e.g. if it has not yet elected a leader), a scan (whose correctness depends on the MvccManager to determine what transactions have been applied) will return incorrect results. In the same way that we prevent compactions from occuring if MVCC's timestamps have not been moved, this patch prevents incorrect results from being returend from a scan by returning an error that can be retried elsewhere. New tests are added to attempt to scan in this state, verifying that we get an error. A couple of tests that use the mock clock are also updated so the initial timestamp assigned to a no-op is a more organic, non-zero timestamp. Change-Id: Idc0f77673e1f04a34ab1f5c1930bbaa2498b39bf Reviewed-on: http://gerrit.cloudera.org:8080/11428 Reviewed-by: Mike Percy <mpe...@apache.org> Tested-by: Kudu Jenkins --- M src/kudu/integration-tests/consistency-itest.cc M src/kudu/integration-tests/tablet_history_gc-itest.cc M src/kudu/integration-tests/timestamp_advancement-itest.cc M src/kudu/mini-cluster/external_mini_cluster.cc M src/kudu/mini-cluster/external_mini_cluster.h M src/kudu/mini-cluster/internal_mini_cluster.cc M src/kudu/mini-cluster/internal_mini_cluster.h M src/kudu/mini-cluster/mini_cluster.h M src/kudu/tablet/mvcc.cc M src/kudu/tablet/mvcc.h M src/kudu/tools/kudu-ts-cli-test.cc M src/kudu/tserver/tablet_service.cc 12 files changed, 231 insertions(+), 62 deletions(-) Approvals: Mike Percy: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/11428 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idc0f77673e1f04a34ab1f5c1930bbaa2498b39bf Gerrit-Change-Number: 11428 Gerrit-PatchSet: 14 Gerrit-Owner: Andrew Wong <aw...@cloudera.com> Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <mpe...@apache.org> Gerrit-Reviewer: Tidy Bot