You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by jd...@apache.org on 2016/02/03 00:42:46 UTC

incubator-kudu git commit: [c++ client] - Make fault tolerant scans set READ_AT_SNAPSHOT read mode implicitly

Repository: incubator-kudu
Updated Branches:
  refs/heads/master 744138a5e -> fd6d805fa


[c++ client] - Make fault tolerant scans set READ_AT_SNAPSHOT read mode implicitly

Fault tolerant scans, a.k.a. ordered scans when hash partitioning is not
being used, require READ_AT_SNAPSHOT read mode or KuduScanner::Open() will fail.
However we're unnecessarily requiring the user to separately call SetReadMode().

This patch just makes it so that SetFaultTolerant() also sets the correct
read mode, thus making client usage for fault tolerant scans require one less
call in the common case.

Change-Id: I146a94f9e140a1b7985c807f825acbf9a0fe4667
Reviewed-on: http://gerrit.cloudera.org:8080/1992
Reviewed-by: David Ribeiro Alves <da...@cloudera.com>
Tested-by: David Ribeiro Alves <da...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/fd6d805f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/fd6d805f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/fd6d805f

Branch: refs/heads/master
Commit: fd6d805fa4f86a4ff0decd7890e3766c3d0cd7ca
Parents: 744138a
Author: David Alves <da...@cloudera.com>
Authored: Tue Feb 2 01:49:29 2016 -0800
Committer: David Ribeiro Alves <da...@cloudera.com>
Committed: Tue Feb 2 22:23:21 2016 +0000

----------------------------------------------------------------------
 src/kudu/client/client-test.cc | 1 -
 src/kudu/client/client.cc      | 1 +
 src/kudu/client/client.h       | 3 ++-
 3 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/fd6d805f/src/kudu/client/client-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test.cc b/src/kudu/client/client-test.cc
index fba4e00..c02b6a9 100644
--- a/src/kudu/client/client-test.cc
+++ b/src/kudu/client/client-test.cc
@@ -897,7 +897,6 @@ static void DoScanWithCallback(KuduTable* table,
   // Initialize fault-tolerant snapshot scanner.
   KuduScanner scanner(table);
   ASSERT_OK(scanner.SetFaultTolerant());
-  ASSERT_OK(scanner.SetReadMode(KuduScanner::READ_AT_SNAPSHOT));
   // Set a small batch size so it reads in multiple batches.
   ASSERT_OK(scanner.SetBatchSizeBytes(1));
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/fd6d805f/src/kudu/client/client.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client.cc b/src/kudu/client/client.cc
index 1fbfb83..fc47110 100644
--- a/src/kudu/client/client.cc
+++ b/src/kudu/client/client.cc
@@ -912,6 +912,7 @@ Status KuduScanner::SetFaultTolerant() {
   if (data_->open_) {
     return Status::IllegalState("Fault-tolerance must be set before Open()");
   }
+  RETURN_NOT_OK(SetReadMode(READ_AT_SNAPSHOT));
   data_->is_fault_tolerant_ = true;
   return Status::OK();
 }

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/fd6d805f/src/kudu/client/client.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client.h b/src/kudu/client/client.h
index 1fce8b0..d6493d5 100644
--- a/src/kudu/client/client.h
+++ b/src/kudu/client/client.h
@@ -1010,7 +1010,8 @@ class KUDU_EXPORT KuduScanner {
   // in the case of failure.
   //
   // Fault tolerant scans typically have lower throughput than non
-  // fault-tolerant scans. Fault tolerant scans must use READ_AT_SNAPSHOT mode.
+  // fault-tolerant scans. Fault tolerant scans use READ_AT_SNAPSHOT mode,
+  // if no snapshot timestamp is provided, the server will pick one.
   Status SetFaultTolerant() WARN_UNUSED_RESULT;
 
   // Sets the snapshot timestamp, in microseconds since the epoch, for scans in