Todd Lipcon has posted comments on this change. Change subject: KUDU-2027 retry scan RPC if negotiation times out ......................................................................
Patch Set 3: (4 comments) http://gerrit.cloudera.org:8080/#/c/7037/3/src/kudu/client/scanner-internal.cc File src/kudu/client/scanner-internal.cc: PS3, Line 423: ScanRpcStatus scan_status = SendScanRpc(deadline, configuration_.is_fault_tolerant()); on the 'Open()' RPC, we should be able to fail-over the scan even if it's not fault-tolerant. ie if we haven't yet returned any rows from the tablet, then it's safe to keep trying to open the scanner on other replicas. http://gerrit.cloudera.org:8080/#/c/7037/3/src/kudu/integration-tests/client-negotiation-failover-itest.cc File src/kudu/integration-tests/client-negotiation-failover-itest.cc: PS3, Line 152: hopefully hrm, I think you are being pretty optimistic here. If you assume hashing produces a random distribution, then I think there is only a 22% chance that they all end up in different partitions (3!/3^3 = 6/27 = 2/9). Does that affect the correctness of the test? Line 191: ASSERT_OK(ScanToStrings(&scanner, &row_strings)); shouldn't this still be assertable like the above, given we set READ_AT_SNAPSHOT? The replica should block until that snapshot is safe, if it isn't safe yet. Line 196: SCOPED_TRACE(Substitute("snapshot read at closest replica, iteration $0", i)); this should say "read-latest" not "snapshot" right? -- To view, visit http://gerrit.cloudera.org:8080/7037 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I05a3c38cc07c9b6edd1ae773d9850e92645f3b14 Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey Serbin <[email protected]> Gerrit-Reviewer: Alexey Serbin <[email protected]> Gerrit-Reviewer: David Ribeiro Alves <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <[email protected]> Gerrit-HasComments: Yes
