[kudu-CR] webserver: update to latest squeasel build

2019-06-25 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13728 )

Change subject: webserver: update to latest squeasel build
..


Patch Set 1: Code-Review+2

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13728/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13728/1//COMMIT_MSG@17
PS1, Line 17: d237491 Don't log EAGAIN when reading
:)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iab0ba2e4ae5fbd0e0c1ed688b9706c4e4423b179
Gerrit-Change-Number: 13728
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 25 Jun 2019 22:15:32 +
Gerrit-HasComments: Yes


[kudu-CR] [backup] Deflake TestKuduBackup.testRandomBackupAndRestore

2019-06-20 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13693 )

Change subject: [backup] Deflake TestKuduBackup.testRandomBackupAndRestore
..

[backup] Deflake TestKuduBackup.testRandomBackupAndRestore

TestKuduBackup.testRandomBackupAndRestore creates a random table with
random partitions. In a run with TSAN binaries, I saw the following
partition schema:

partition_schema {
  hash_bucket_schemas {
columns {
  name: "int160"
}
num_buckets: 8
seed: 395460932
  }
  hash_bucket_schemas {
columns {
  name: "int321"
}
num_buckets: 6
   seed: 2072428334
  }
  hash_bucket_schemas {
columns {
  name: "int82"
}
num_buckets: 9
seed: 138096156
  }
}

So there were 8 * 6 * 9 = 432 tablets being created on a 3-tserver
minicluster running TSAN. As a result, the test timed out waiting for
the table to finish creating.

To prevent creating tables with too many tablets, this patch reduces the
maximum number of hash buckets to 3 and it reduces the maximum nesting of
hash partitioning to 2. Combined with the existing maximum of 8 range
partitions, this means no table will consist of more than 9 * 8 = 72
tablets. Hopefully this is few enough that create table will always
finish in a timely manner.

Change-Id: Id937f4513bb0ebaf6dec345a141ed9aef2c44388
Reviewed-on: http://gerrit.cloudera.org:8080/13693
Reviewed-by: Grant Henke 
Tested-by: Kudu Jenkins
---
M java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java
1 file changed, 2 insertions(+), 2 deletions(-)

Approvals:
  Grant Henke: Looks good to me, approved
  Kudu Jenkins: Verified

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Id937f4513bb0ebaf6dec345a141ed9aef2c44388
Gerrit-Change-Number: 13693
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [backup] Deflake TestKuduBackup.testRandomBackupAndRestore

2019-06-20 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13693


Change subject: [backup] Deflake TestKuduBackup.testRandomBackupAndRestore
..

[backup] Deflake TestKuduBackup.testRandomBackupAndRestore

TestKuduBackup.testRandomBackupAndRestore creates a random table with
random partitions. In a run with TSAN binaries, I saw the following
partition schema:

partition_schema {
  hash_bucket_schemas {
columns {
  name: "int160"
}
num_buckets: 8
seed: 395460932
  }
  hash_bucket_schemas {
columns {
  name: "int321"
}
num_buckets: 6
   seed: 2072428334
  }
  hash_bucket_schemas {
columns {
  name: "int82"
}
num_buckets: 9
seed: 138096156
  }
}

So there were 8 * 6 * 9 = 432 tablets being created on a 3-tserver
minicluster running TSAN. As a result, the test timed out waiting for
the table to finish creating.

To prevent creating tables with too many tablets, this patch reduces the
maximum number of hash buckets to 3 and it reduces the maximum nesting of
hash partitioning to 2. Combined with the existing maximum of 8 range
partitions, this means no table will consist of more than 9 * 8 = 72
tablets. Hopefully this is few enough that create table will always
finish in a timely manner.

Change-Id: Id937f4513bb0ebaf6dec345a141ed9aef2c44388
---
M java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java
1 file changed, 2 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/93/13693/1
--
To view, visit http://gerrit.cloudera.org:8080/13693
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id937f4513bb0ebaf6dec345a141ed9aef2c44388
Gerrit-Change-Number: 13693
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR](branch-1.10.x) Optimize and sort imports

2019-06-14 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13654 )

Change subject: Optimize and sort imports
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: branch-1.10.x
Gerrit-MessageType: comment
Gerrit-Change-Id: Ida7cbcee5b40888ee2f78ded06206a2c51c5eed7
Gerrit-Change-Number: 13654
Gerrit-PatchSet: 1
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 14 Jun 2019 20:03:48 +
Gerrit-HasComments: No


[kudu-CR] Optimize and sort imports

2019-06-14 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13642 )

Change subject: Optimize and sort imports
..


Patch Set 3: Verified+1

Unrelated failures in C++ tests. Something funny is going on with Jenkins.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ida7cbcee5b40888ee2f78ded06206a2c51c5eed7
Gerrit-Change-Number: 13642
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 14 Jun 2019 18:47:59 +
Gerrit-HasComments: No


[kudu-CR] Optimize and sort imports

2019-06-14 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13642 )

Change subject: Optimize and sort imports
..

Optimize and sort imports

I ran IntelliJ's "Optimize imports" function on the kudu-client module
after noticing how many violations of our import sorting rules were
reported by checkstyle.

Change-Id: Ida7cbcee5b40888ee2f78ded06206a2c51c5eed7
Reviewed-on: http://gerrit.cloudera.org:8080/13642
Reviewed-by: Grant Henke 
Tested-by: Will Berkeley 
---
M java/kudu-client/src/main/java/org/apache/kudu/Schema.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AuthzTokenCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Batch.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToCluster.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/HiveMetastoreConfig.java
M java/kudu-client/src/main/java/org/apache/kudu/client/HostAndPort.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPartitioner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPredicate.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScannerIterator.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTablesRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Operation.java
M java/kudu-client/src/main/java/org/apache/kudu/client/PartialRow.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RowResult.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RpcProxy.java
M java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
M java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java
M java/kudu-client/src/main/java/org/apache/kudu/util/DecimalUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/NetUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java
M java/kudu-client/src/main/java/org/apache/kudu/util/SecurityUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/TimestampUtil.java
M java/kudu-client/src/test/java/org/apache/kudu/TestColumnSchema.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthzTokenCache.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestBytes.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestColumnRangePredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduPartitioner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduScanner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/cli

[kudu-CR] Optimize and sort imports

2019-06-14 Thread Will Berkeley (Code Review)
Will Berkeley has removed a vote on this change.

Change subject: Optimize and sort imports
..


Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/13642
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: Ida7cbcee5b40888ee2f78ded06206a2c51c5eed7
Gerrit-Change-Number: 13642
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR](branch-1.10.x) KUDU-2846 (part 2): optimize IS [NOT] NULL predicates

2019-06-14 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13650 )

Change subject: KUDU-2846 (part 2): optimize IS [NOT] NULL predicates
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: branch-1.10.x
Gerrit-MessageType: comment
Gerrit-Change-Id: I14fb75c7c330e2415fd7a877186f7ed41a1accce
Gerrit-Change-Number: 13650
Gerrit-PatchSet: 1
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 14 Jun 2019 16:46:43 +
Gerrit-HasComments: No


[kudu-CR](branch-1.10.x) [java] Add unit tests demonstrating good behavior of scan tokens when range partitions are dropped

2019-06-14 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13643 )

Change subject: [java] Add unit tests demonstrating good behavior of scan 
tokens when range partitions are dropped
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: branch-1.10.x
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
Gerrit-Change-Number: 13643
Gerrit-PatchSet: 2
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 14 Jun 2019 16:43:49 +
Gerrit-HasComments: No


[kudu-CR](branch-1.10.x) [java] Favor column ids over column names in scan tokens

2019-06-14 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13646 )

Change subject: [java] Favor column ids over column names in scan tokens
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: branch-1.10.x
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13646
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 14 Jun 2019 16:43:40 +
Gerrit-HasComments: No


[kudu-CR] Optimize and sort imports

2019-06-14 Thread Will Berkeley (Code Review)
Hello Kudu Jenkins, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13642

to look at the new patch set (#3).

Change subject: Optimize and sort imports
..

Optimize and sort imports

I ran IntelliJ's "Optimize imports" function on the kudu-client module
after noticing how many violations of our import sorting rules were
reported by checkstyle.

Change-Id: Ida7cbcee5b40888ee2f78ded06206a2c51c5eed7
---
M java/kudu-client/src/main/java/org/apache/kudu/Schema.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AuthzTokenCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Batch.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToCluster.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/HiveMetastoreConfig.java
M java/kudu-client/src/main/java/org/apache/kudu/client/HostAndPort.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPartitioner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPredicate.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScannerIterator.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTablesRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Operation.java
M java/kudu-client/src/main/java/org/apache/kudu/client/PartialRow.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RowResult.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RpcProxy.java
M java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
M java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java
M java/kudu-client/src/main/java/org/apache/kudu/util/DecimalUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/NetUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java
M java/kudu-client/src/main/java/org/apache/kudu/util/SecurityUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/TimestampUtil.java
M java/kudu-client/src/test/java/org/apache/kudu/TestColumnSchema.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthzTokenCache.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestBytes.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestColumnRangePredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduPartitioner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduScanner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-cli

[kudu-CR] Optimize and sort imports

2019-06-13 Thread Will Berkeley (Code Review)
Hello Kudu Jenkins, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13642

to look at the new patch set (#2).

Change subject: Optimize and sort imports
..

Optimize and sort imports

I ran IntelliJ's "Optimize imports" function on the kudu-client module
after noticing how many violations of our import sorting rules were
reported by checkstyle.

Change-Id: Ida7cbcee5b40888ee2f78ded06206a2c51c5eed7
---
M java/kudu-client/src/main/java/org/apache/kudu/Schema.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AuthzTokenCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Batch.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToCluster.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/HiveMetastoreConfig.java
M java/kudu-client/src/main/java/org/apache/kudu/client/HostAndPort.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPartitioner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPredicate.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScannerIterator.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTablesRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Operation.java
M java/kudu-client/src/main/java/org/apache/kudu/client/PartialRow.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RowResult.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RpcProxy.java
M java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
M java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java
M java/kudu-client/src/main/java/org/apache/kudu/util/DecimalUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/NetUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java
M java/kudu-client/src/main/java/org/apache/kudu/util/SecurityUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/TimestampUtil.java
M java/kudu-client/src/test/java/org/apache/kudu/TestColumnSchema.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthzTokenCache.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestBytes.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestColumnRangePredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduPartitioner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduScanner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/s

[kudu-CR] Optimize and sort imports

2019-06-13 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13642


Change subject: Optimize and sort imports
..

Optimize and sort imports

I ran IntelliJ's "Optimize imports" function on the kudu-client module
after noticing how many violations of our import sorting rules were
reported by checkstyle.

Change-Id: Ida7cbcee5b40888ee2f78ded06206a2c51c5eed7
---
M java/kudu-client/src/main/java/org/apache/kudu/Schema.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AuthzTokenCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Batch.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToCluster.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/HiveMetastoreConfig.java
M java/kudu-client/src/main/java/org/apache/kudu/client/HostAndPort.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPartitioner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPredicate.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScannerIterator.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTablesRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Operation.java
M java/kudu-client/src/main/java/org/apache/kudu/client/PartialRow.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RowResult.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RpcProxy.java
M java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
M java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java
M java/kudu-client/src/main/java/org/apache/kudu/util/DecimalUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/NetUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/SchemaGenerator.java
M java/kudu-client/src/main/java/org/apache/kudu/util/SecurityUtil.java
M java/kudu-client/src/main/java/org/apache/kudu/util/TimestampUtil.java
M java/kudu-client/src/test/java/org/apache/kudu/TestColumnSchema.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthzTokenCache.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestBytes.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestColumnRangePredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduPartitioner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduScanner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/ku

[kudu-CR] [java] Add unit tests demonstrating good behavior of scan tokens when range partitions are dropped

2019-06-13 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13565 )

Change subject: [java] Add unit tests demonstrating good behavior of scan 
tokens when range partitions are dropped
..

[java] Add unit tests demonstrating good behavior of scan tokens when range 
partitions are dropped

It turns out that scan tokens in the Java client behave nicely with
respect to dropping range partitions- one can drop a range partition
anytime after creating the tokens and the tokens can still be used.
There is a case where some tablets in the dropped partition will still
return rows, while others don't, but that can be looked at as a
manifestation of the fact that tablet alters aren't linearizable in Kudu
(yet?).

Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
Reviewed-on: http://gerrit.cloudera.org:8080/13565
Reviewed-by: Adar Dembo 
Reviewed-by: Grant Henke 
Tested-by: Kudu Jenkins
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
1 file changed, 67 insertions(+), 1 deletion(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Grant Henke: Looks good to me, approved
  Kudu Jenkins: Verified

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
Gerrit-Change-Number: 13565
Gerrit-PatchSet: 4
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-13 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13562

to look at the new patch set (#5).

Change subject: [java] Favor column ids over column names in scan tokens
..

[java] Favor column ids over column names in scan tokens

Previously, a scan token would use column name to map a column in its
projection to a column in the target table's current schema.
Therefore, a scan token couldn't be used if a column were renamed
between when the token is cut and when it is rehydrated into a scanner.
This adjusts the Java client to prefer ids to names, to fix this
behavior. Since this involves including column ids when serializing
columns to PBs as part of scan tokens, but the server does not permit
clients to send column ids in most cases, this patch adds a new
serialization option that includes column ids.

Note that this patch does not make _scanners_ resistant to column name
changes. If a scanner is opened against a table and a column name
changes on a replica before the scanner opens a server-side scanner on
it, the scan will fail if the column is in the projection.

A follow-up will add similar capability to the C++ client.

Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java
M java/kudu-client/src/main/java/org/apache/kudu/client/CreateTableRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Operation.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
7 files changed, 230 insertions(+), 67 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/62/13562/5
--
To view, visit http://gerrit.cloudera.org:8080/13562
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 5
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-13 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13562 )

Change subject: [java] Favor column ids over column names in scan tokens
..


Patch Set 4:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13562/4/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java:

http://gerrit.cloudera.org:8080/#/c/13562/4/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java@50
PS4, Line 50: SCHEMA_PB_WITH_ID
> My argument is one of consistency with the existing schema PB conversion fl
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 4
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 13 Jun 2019 18:06:32 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Add unit tests demonstrating good behavior of scan tokens when range partitions are dropped

2019-06-13 Thread Will Berkeley (Code Review)
Hello Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13565

to look at the new patch set (#3).

Change subject: [java] Add unit tests demonstrating good behavior of scan 
tokens when range partitions are dropped
..

[java] Add unit tests demonstrating good behavior of scan tokens when range 
partitions are dropped

It turns out that scan tokens in the Java client behave nicely with
respect to dropping range partitions- one can drop a range partition
anytime after creating the tokens and the tokens can still be used.
There is a case where some tablets in the dropped partition will still
return rows, while others don't, but that can be looked at as a
manifestation of the fact that tablet alters aren't linearizable in Kudu
(yet?).

Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
1 file changed, 67 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/65/13565/3
--
To view, visit http://gerrit.cloudera.org:8080/13565
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
Gerrit-Change-Number: 13565
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-13 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13562 )

Change subject: [java] Favor column ids over column names in scan tokens
..


Patch Set 4:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/13562/4//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13562/4//COMMIT_MSG@19
PS4, Line 19: Note that this patch does not make _scanners_ resistant to column 
name
: changes. If a scanner is opened against a table and a column name
: changes on a replica before the scanner opens a server-side 
scanner on
: it, the scan will fail if the column is in the projection.
> Do you think we should address that too (separately)? Seems like unexpected
Yep.


http://gerrit.cloudera.org:8080/#/c/13562/4/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
File java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java:

http://gerrit.cloudera.org:8080/#/c/13562/4/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@373
PS4, Line 373: schema.hasColumnIds() ? 
schema.getColumnId(columnName) : -1,
> Hmm, under what circumstances would the schema not have column IDs?
At these callsite? Probably none because the schema comes from the table we 
just opened. I still think it's nice to handle it.


http://gerrit.cloudera.org:8080/#/c/13562/4/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java:

http://gerrit.cloudera.org:8080/#/c/13562/4/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java@50
PS4, Line 50: SCHEMA_PB_WITH_ID
> This is confusing; could you also make this WITHOUT and update the "default
I'm not sure how I feel about that. The name makes it clear what the flag 
does-- it's not as if true means include and false means exclude for comments 
and the opposite for IDs. This minimizing the extent of the changes and so 
minimizes the risk from them. Accidentally including the id can cause 
server-side RPC failures when the server rejects client schemas with ids.

If you/others still feel strongly about it I can change it.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 4
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 13 Jun 2019 16:53:59 +
Gerrit-HasComments: Yes


[kudu-CR] Modernize AsyncKuduClient

2019-06-11 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13589 )

Change subject: Modernize AsyncKuduClient
..

Modernize AsyncKuduClient

Lambdas, etc.

There are no functional changes in this patch.

Change-Id: I046971bf84c48d380c950c988a64c2effcab6f5e
Reviewed-on: http://gerrit.cloudera.org:8080/13589
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
1 file changed, 212 insertions(+), 289 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Adar Dembo: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I046971bf84c48d380c950c988a64c2effcab6f5e
Gerrit-Change-Number: 13589
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] Modernize AsyncKuduClient

2019-06-11 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13589


Change subject: Modernize AsyncKuduClient
..

Modernize AsyncKuduClient

Lambdas, etc.

There are no functional changes in this patch.

Change-Id: I046971bf84c48d380c950c988a64c2effcab6f5e
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
1 file changed, 212 insertions(+), 289 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/89/13589/1
--
To view, visit http://gerrit.cloudera.org:8080/13589
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I046971bf84c48d380c950c988a64c2effcab6f5e
Gerrit-Change-Number: 13589
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-11 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13562

to look at the new patch set (#4).

Change subject: [java] Favor column ids over column names in scan tokens
..

[java] Favor column ids over column names in scan tokens

Previously, a scan token would use column name to map a column in its
projection to a column in the target table's current schema.
Therefore, a scan token couldn't be used if a column were renamed
between when the token is cut and when it is rehydrated into a scanner.
This adjusts the Java client to prefer ids to names, to fix this
behavior. Since this involves including column ids when serializing
columns to PBs as part of scan tokens, but the server does not permit
clients to send column ids in most cases, this patch adds a new
serialization option that includes column ids.

Note that this patch does not make _scanners_ resistant to column name
changes. If a scanner is opened against a table and a column name
changes on a replica before the scanner opens a server-side scanner on
it, the scan will fail if the column is in the projection.

A follow-up will add similar capability to the C++ client.

Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
---
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
3 files changed, 213 insertions(+), 60 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/62/13562/4
--
To view, visit http://gerrit.cloudera.org:8080/13562
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 4
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-11 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13562

to look at the new patch set (#3).

Change subject: [java] Favor column ids over column names in scan tokens
..

[java] Favor column ids over column names in scan tokens

Previously, a scan token would use column name to map a column in its
projection to a column in the target table's current schema.
Therefore, a scan token couldn't be used if a column were renamed
between when the token is cut and when it is rehydrated into a scanner.
This adjusts the Java client to prefer ids to names, to fix this
behavior.

A follow-up will add similar capability to the C++ client.

Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
---
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
3 files changed, 101 insertions(+), 59 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/62/13562/3
--
To view, visit http://gerrit.cloudera.org:8080/13562
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-11 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13562 )

Change subject: [java] Favor column ids over column names in scan tokens
..


Patch Set 3:

The current revision has a known defect that will be addressed in a follow-up 
revision.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 11 Jun 2019 20:09:03 +
Gerrit-HasComments: No


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13562 )

Change subject: [java] Favor column ids over column names in scan tokens
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13562/1/src/kudu/client/client.proto
File src/kudu/client/client.proto:

http://gerrit.cloudera.org:8080/#/c/13562/1/src/kudu/client/client.proto@58
PS1, Line 58:   repeated uint32 projected_column_ids = 21;
> So the C++ and Java Schema/ColumnSchema code agree on this:
Yeah that's probably a better way to do it. Im gonna have to plumb through all 
the SCHEMA_PB_{WITH|WITHOUT}_IDS stuff everywhere.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Sat, 08 Jun 2019 02:11:20 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Add unit tests demonstrating good behavior of scan tokens when range partitions are dropped

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13565 )

Change subject: [java] Add unit tests demonstrating good behavior of scan 
tokens when range partitions are dropped
..


Patch Set 2:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/13565/2/java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
File java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java:

http://gerrit.cloudera.org:8080/#/c/13565/2/java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java@340
PS2, Line 340: Dehydrate
> Technically you're hydrating them.
Oops.


http://gerrit.cloudera.org:8080/#/c/13565/2/java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java@351
PS2, Line 351: // Check the scanners work. The scanners for the tablets in 
the range [10, 20) definitely won't
 : // see any rows. The scanners for the tablets in the range 
[20, 30) might see rows.
> Have you looked into why this is? I would have expected a TABLET_NOT_FOUND
That's recoverable- it'll check for another replica. Once it checks for all 
replicas, it refreshes the cache from the master, and then realizes there's no 
tablet for that part of partition key space, and apparently returns 0 results 
for the scan.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
Gerrit-Change-Number: 13565
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Sat, 08 Jun 2019 02:06:46 +
Gerrit-HasComments: Yes


[kudu-CR] [c++] Support table rename between scan token creation and rehydration

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13521 )

Change subject: [c++] Support table rename between scan token creation and 
rehydration
..

[c++] Support table rename between scan token creation and rehydration

Previously, if a scan token was created against table 'foo', and table
'foo' was renamed to table 'bar', rehydrating the scan token into a
scanner would either
- fail if there is no longer a table 'foo', or
- attempt to scan another table if that table had been renamed to 'foo'.
This patch alters how the C++ client manages scan tokens. It prefers to
use the table id to identify a table, rather than a table name. This
eliminates the above two problems.

This is a follow up to the Java client patch for the same (and that
patch includes the necessary protobuf changes).

Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Reviewed-on: http://gerrit.cloudera.org:8080/13521
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
Reviewed-by: Mike Percy 
---
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/client.cc
M src/kudu/client/scan_token-internal.cc
M src/kudu/client/scan_token-test.cc
5 files changed, 132 insertions(+), 31 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified
  Mike Percy: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Gerrit-Change-Number: 13521
Gerrit-PatchSet: 5
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Add unit tests demonstrating good behavior of scan tokens when range partitions are dropped

2019-06-07 Thread Will Berkeley (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13565

to look at the new patch set (#2).

Change subject: [java] Add unit tests demonstrating good behavior of scan 
tokens when range partitions are dropped
..

[java] Add unit tests demonstrating good behavior of scan tokens when range 
partitions are dropped

It turns out that scan tokens in the Java client behave nicely with
respect to dropping range partitions- one can drop a range partition
anytime after creating the tokens and the tokens can still be used.
There is a case where some tablets in the dropped partition will still
return rows, while others don't, but that can be looked at as a
manifestation of the fact that tablet alters aren't linearizable in Kudu
(yet?).

Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
1 file changed, 67 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/65/13565/2
--
To view, visit http://gerrit.cloudera.org:8080/13565
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
Gerrit-Change-Number: 13565
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] foo

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has abandoned this change. ( 
http://gerrit.cloudera.org:8080/13564 )

Change subject: foo
..


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: abandon
Gerrit-Change-Id: Icea1d2487210d54485715cdb059e5cd2f41561c2
Gerrit-Change-Number: 13564
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] foo

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13564


Change subject: foo
..

foo

Change-Id: Icea1d2487210d54485715cdb059e5cd2f41561c2
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
1 file changed, 51 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/64/13564/1
--
To view, visit http://gerrit.cloudera.org:8080/13564
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icea1d2487210d54485715cdb059e5cd2f41561c2
Gerrit-Change-Number: 13564
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Add unit tests demonstrating good behavior of scan tokens when range partitions are dropped

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13565


Change subject: [java] Add unit tests demonstrating good behavior of scan 
tokens when range partitions are dropped
..

[java] Add unit tests demonstrating good behavior of scan tokens when range 
partitions are dropped

It turns out that scan tokens in the Java client behave nicely with
respect to dropping range partitions- one can drop a range partition
anytime after creating the tokens and the tokens can still be used.
There is a case where some tablets in the dropped partition will still
return rows, while others don't, but that can be looked at as a
manifestation of the fact that tablet alters aren't linearizable in Kudu
(yet?).

Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
1 file changed, 41 insertions(+), 26 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/65/13565/1
--
To view, visit http://gerrit.cloudera.org:8080/13565
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib25ea2b62321934313c9c8852f0bc00b28bf7f2b
Gerrit-Change-Number: 13565
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [backup] Make KuduBackupCLI executable

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13551 )

Change subject: [backup] Make KuduBackupCLI executable
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I15e0270a94844ffb7cb804a182dcf9699dd12ec7
Gerrit-Change-Number: 13551
Gerrit-PatchSet: 2
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 07 Jun 2019 22:24:05 +
Gerrit-HasComments: No


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-07 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13562

to look at the new patch set (#2).

Change subject: [java] Favor column ids over column names in scan tokens
..

[java] Favor column ids over column names in scan tokens

Previously, a scan token would use column name to map a column in its
projection to a column in the target table's current schema.
Therefore, a scan token couldn't be used if a column were renamed
between when the token is cut and when it is rehydrated into a scanner.
This changes scan tokens in the Java client to hold column ids, if they
are available, and to use them when being rehydrated into a scanner, if
they are available. The original by-name behavior is the fallback if ids
are not available.

A follow-up will add similar capability to the C++ client.

Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
---
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M src/kudu/client/client.proto
3 files changed, 86 insertions(+), 47 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/62/13562/2
--
To view, visit http://gerrit.cloudera.org:8080/13562
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13562 )

Change subject: [java] Favor column ids over column names in scan tokens
..


Patch Set 1:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/13562/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
File java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java:

http://gerrit.cloudera.org:8080/#/c/13562/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@162
PS1, Line 162:
> Extra space here.
Done


http://gerrit.cloudera.org:8080/#/c/13562/1/src/kudu/client/client.proto
File src/kudu/client/client.proto:

http://gerrit.cloudera.org:8080/#/c/13562/1/src/kudu/client/client.proto@58
PS1, Line 58:   repeated uint32 projected_column_ids = 21;
> ColumnSchemaPB already has an id field; why can't we just fill it?
Because a ColumnSchema doesn't have an id field, and the only purpose of adding 
an optional one would be its use in scan tokens (right now). ColumnSchemas 
don't always have ids associated with them- like when the Schema is built 
client side. Also, in the Schema class itself, the ids are a separate (possibly 
null) collection, so this mirrors that setup.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 07 Jun 2019 22:14:11 +
Gerrit-HasComments: Yes


[kudu-CR] [c++] Support table rename between scan token creation and rehydration

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13521 )

Change subject: [c++] Support table rename between scan token creation and 
rehydration
..


Patch Set 4:

(7 comments)

http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/client-internal.h
File src/kudu/client/client-internal.h:

http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/client-internal.h@148
PS3, Line 148:   // 'table_id_or_name' should contain a table id or name as 
'identifier_type'
 :   // is ID or NAME, respectively.
 :   Status GetTableSchema(KuduClien
> Update this.
Done


http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/client-internal.h@156
PS3, Line 156: std::string* table_name,
 : int* num_replicas);
> You could also make the contract such that 'table' is both IN and OUT, and
Negatory.


http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/client-internal.cc
File src/kudu/client/client-internal.cc:

http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/client-internal.cc@457
PS3, Line 457:const TableIdentifierPB& 
table_identifier,
> warning: the parameter 'table_identifier' is copied for each invocation but
Done


http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/client-internal.cc@457
PS3, Line 457:const TableIdentifierPB& 
table_identifier,
> Agreed with clang-tidy here (and below).
Done


http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/client-internal.cc@497
PS3, Line 497: const TableIdentifierPB& 
table,
> warning: the parameter 'table' is copied for each invocation but only used
Done


http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/scan_token-internal.cc
File src/kudu/client/scan_token-internal.cc:

http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/scan_token-internal.cc@48
PS3, Line 48: #include "kudu/gutil/ref_counted.h"
> And this too.
Done


http://gerrit.cloudera.org:8080/#/c/13521/3/src/kudu/client/scan_token-internal.cc@48
PS3, Line 48: #include "kudu/gutil/ref_counted.h"
> warning: #includes are not sorted properly [llvm-include-order]
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Gerrit-Change-Number: 13521
Gerrit-PatchSet: 4
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 07 Jun 2019 21:11:23 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Support table rename between scan token creation and rehydration

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13518 )

Change subject: [java] Support table rename between scan token creation and 
rehydration
..

[java] Support table rename between scan token creation and rehydration

Previously, if a scan token was created against table 'foo', and table
'foo' was renamed to table 'bar', rehydrating the scan token into a
scanner would either
- fail if there is no longer a table 'foo', or
- attempt to scan another table if that table had been renamed to 'foo'.
This patch alters how the Java client manages scan tokens. It prefers to
use the table id to identify a table, rather than a table name. This
eliminates the above two problems. The table id has been added to the
scan token PB to enable this.

A follow-up will add support for the same in the C++ client.

Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
Reviewed-on: http://gerrit.cloudera.org:8080/13518
Reviewed-by: Mike Percy 
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M src/kudu/client/client.proto
7 files changed, 90 insertions(+), 13 deletions(-)

Approvals:
  Mike Percy: Looks good to me, approved
  Kudu Jenkins: Verified
  Adar Dembo: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
Gerrit-Change-Number: 13518
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [c++] Support table rename between scan token creation and rehydration

2019-06-07 Thread Will Berkeley (Code Review)
Hello Tidy Bot, Mike Percy, Kudu Jenkins, Adar Dembo,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13521

to look at the new patch set (#4).

Change subject: [c++] Support table rename between scan token creation and 
rehydration
..

[c++] Support table rename between scan token creation and rehydration

Previously, if a scan token was created against table 'foo', and table
'foo' was renamed to table 'bar', rehydrating the scan token into a
scanner would either
- fail if there is no longer a table 'foo', or
- attempt to scan another table if that table had been renamed to 'foo'.
This patch alters how the C++ client manages scan tokens. It prefers to
use the table id to identify a table, rather than a table name. This
eliminates the above two problems.

This is a follow up to the Java client patch for the same (and that
patch includes the necessary protobuf changes).

Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
---
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/client.cc
M src/kudu/client/scan_token-internal.cc
M src/kudu/client/scan_token-test.cc
5 files changed, 132 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/21/13521/4
--
To view, visit http://gerrit.cloudera.org:8080/13521
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Gerrit-Change-Number: 13521
Gerrit-PatchSet: 4
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Favor column ids over column names in scan tokens

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13562


Change subject: [java] Favor column ids over column names in scan tokens
..

[java] Favor column ids over column names in scan tokens

Previously, a scan token would use column name to map a column in its
projection to a column in the target table's current schema.
Therefore, a scan token couldn't be used if a column were renamed
between when the token is cut and when it is rehydrated into a scanner.
This changes scan tokens in the Java client to hold column ids, if they
are available, and to use them when being rehydrated into a scanner, if
they are available. The original by-name behavior is the fallback if ids
are not available.

A follow-up will add similar capability to the C++ client.

Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
---
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M src/kudu/client/client.proto
3 files changed, 86 insertions(+), 47 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/62/13562/1
--
To view, visit http://gerrit.cloudera.org:8080/13562
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib3f05a4175c7e7bfaec2cbd3586723e6de3823f0
Gerrit-Change-Number: 13562
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Support table rename between scan token creation and rehydration

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13518 )

Change subject: [java] Support table rename between scan token creation and 
rehydration
..


Patch Set 2:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13518/1/java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
File 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java:

http://gerrit.cloudera.org:8080/#/c/13518/1/java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java@35
PS1, Line 35:   /**
> Update this.
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
Gerrit-Change-Number: 13518
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 07 Jun 2019 17:56:32 +
Gerrit-HasComments: Yes


[kudu-CR] [c++] Support table rename between scan token creation and rehydration

2019-06-07 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13521 )

Change subject: [c++] Support table rename between scan token creation and 
rehydration
..


Patch Set 2:

(5 comments)

http://gerrit.cloudera.org:8080/#/c/13521/2/src/kudu/client/client-internal.h
File src/kudu/client/client-internal.h:

http://gerrit.cloudera.org:8080/#/c/13521/2/src/kudu/client/client-internal.h@144
PS2, Line 144:   enum class TableIdentifierType {
> Maybe just pass the TableIdentifierPB into these functions directly? They'r
Done


http://gerrit.cloudera.org:8080/#/c/13521/2/src/kudu/client/client-internal.h@151
PS2, Line 151:   Status OpenTable(KuduClient* client,
> warning: function 'kudu::client::KuduClient::Data::OpenTable' has a definit
Done


http://gerrit.cloudera.org:8080/#/c/13521/2/src/kudu/client/client-internal.h@152
PS2, Line 152: identifer
> ah, it's complaining about a typo here: should be indentifier_type
Done


http://gerrit.cloudera.org:8080/#/c/13521/2/src/kudu/client/client-internal.h@169
PS2, Line 169:   Status GetTableSchema(KuduClient* client,
 : const std::string& table_name,
 : const MonoTime& deadline,
 : KuduSchema* schema,
 : PartitionSchema* partition_schema,
 : std::string* table_id,
 : int* num_replicas);
> Can we eliminate this variant? Seems like it's only used in one or two plac
Done


http://gerrit.cloudera.org:8080/#/c/13521/2/src/kudu/client/client-internal.cc
File src/kudu/client/client-internal.cc:

http://gerrit.cloudera.org:8080/#/c/13521/2/src/kudu/client/client-internal.cc@563
PS2, Line 563: nullptr
> nit: /*table_name=*/nullptr




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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Gerrit-Change-Number: 13521
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 07 Jun 2019 17:56:28 +
Gerrit-HasComments: Yes


[kudu-CR] [c++] Support table rename between scan token creation and rehydration

2019-06-07 Thread Will Berkeley (Code Review)
Hello Tidy Bot, Mike Percy, Kudu Jenkins, Adar Dembo,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13521

to look at the new patch set (#3).

Change subject: [c++] Support table rename between scan token creation and 
rehydration
..

[c++] Support table rename between scan token creation and rehydration

Previously, if a scan token was created against table 'foo', and table
'foo' was renamed to table 'bar', rehydrating the scan token into a
scanner would either
- fail if there is no longer a table 'foo', or
- attempt to scan another table if that table had been renamed to 'foo'.
This patch alters how the C++ client manages scan tokens. It prefers to
use the table id to identify a table, rather than a table name. This
eliminates the above two problems.

This is a follow up to the Java client patch for the same (and that
patch includes the necessary protobuf changes).

Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
---
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/client.cc
M src/kudu/client/scan_token-internal.cc
M src/kudu/client/scan_token-test.cc
5 files changed, 133 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/21/13521/3
--
To view, visit http://gerrit.cloudera.org:8080/13521
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Gerrit-Change-Number: 13521
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Support table rename between scan token creation and rehydration

2019-06-07 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13518

to look at the new patch set (#2).

Change subject: [java] Support table rename between scan token creation and 
rehydration
..

[java] Support table rename between scan token creation and rehydration

Previously, if a scan token was created against table 'foo', and table
'foo' was renamed to table 'bar', rehydrating the scan token into a
scanner would either
- fail if there is no longer a table 'foo', or
- attempt to scan another table if that table had been renamed to 'foo'.
This patch alters how the Java client manages scan tokens. It prefers to
use the table id to identify a table, rather than a table name. This
eliminates the above two problems. The table id has been added to the
scan token PB to enable this.

A follow-up will add support for the same in the C++ client.

Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M src/kudu/client/client.proto
7 files changed, 90 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/18/13518/2
--
To view, visit http://gerrit.cloudera.org:8080/13518
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
Gerrit-Change-Number: 13518
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] KUDU-2809 (2/6): skip unobservable rows when iterating an MRS

2019-06-06 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13534 )

Change subject: KUDU-2809 (2/6): skip unobservable rows when iterating an MRS
..


Patch Set 2: Code-Review+1


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I801991260749d1f810540cb32ec84c3ea6a02160
Gerrit-Change-Number: 13534
Gerrit-PatchSet: 2
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 06 Jun 2019 22:18:02 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2809 (1/6): temporarily disable TestKuduScanner.testDiffScan

2019-06-06 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13533 )

Change subject: KUDU-2809 (1/6): temporarily disable 
TestKuduScanner.testDiffScan
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I981aaa47a532dd0c1271008e27de052e3c5ad1a6
Gerrit-Change-Number: 13533
Gerrit-PatchSet: 2
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 06 Jun 2019 21:55:10 +
Gerrit-HasComments: No


[kudu-CR] ksck remote-test: make checksum tests more robust

2019-06-06 Thread Will Berkeley (Code Review)
Will Berkeley has removed a vote on this change.

Change subject: ksck_remote-test: make checksum tests more robust
..


Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/13529
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I1822e5b31656acf4dfbe1991cd59fa58bb574c81
Gerrit-Change-Number: 13529
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] ksck remote-test: make checksum tests more robust

2019-06-06 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13529 )

Change subject: ksck_remote-test: make checksum tests more robust
..


Patch Set 1: Verified+1 Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I1822e5b31656acf4dfbe1991cd59fa58bb574c81
Gerrit-Change-Number: 13529
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 06 Jun 2019 21:54:32 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2830: [java] Improve RPC traces on RPC timeout

2019-06-06 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13509 )

Change subject: KUDU-2830: [java] Improve RPC traces on RPC timeout
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I725e3e8f89f5a433a0ffcb4b0facf82d9ffc4840
Gerrit-Change-Number: 13509
Gerrit-PatchSet: 2
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 06 Jun 2019 21:49:33 +
Gerrit-HasComments: No


[kudu-CR] [c++] Support table rename between scan token creation and rehydration

2019-06-05 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13521 )

Change subject: [c++] Support table rename between scan token creation and 
rehydration
..


Patch Set 1:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/13521/1/src/kudu/client/client-internal.cc
File src/kudu/client/client-internal.cc:

http://gerrit.cloudera.org:8080/#/c/13521/1/src/kudu/client/client-internal.cc@456
PS1, Line 456: Status KuduClient::Data::OpenTable(KuduClient* client,
> error: out-of-line definition of 'OpenTable' does not match any declaration
Done


http://gerrit.cloudera.org:8080/#/c/13521/1/src/kudu/client/client-internal.cc@476
PS1, Line 476:   // TODO: in the future, probably will look up the table in 
some map to reuse
> warning: missing username/bug in TODO [google-readability-todo]
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Gerrit-Change-Number: 13521
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 05 Jun 2019 20:51:33 +
Gerrit-HasComments: Yes


[kudu-CR] [c++] Support table rename between scan token creation and rehydration

2019-06-05 Thread Will Berkeley (Code Review)
Hello Tidy Bot, Kudu Jenkins,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13521

to look at the new patch set (#2).

Change subject: [c++] Support table rename between scan token creation and 
rehydration
..

[c++] Support table rename between scan token creation and rehydration

Previously, if a scan token was created against table 'foo', and table
'foo' was renamed to table 'bar', rehydrating the scan token into a
scanner would either
- fail if there is no longer a table 'foo', or
- attempt to scan another table if that table had been renamed to 'foo'.
This patch alters how the C++ client manages scan tokens. It prefers to
use the table id to identify a table, rather than a table name. This
eliminates the above two problems.

This is a follow up to the Java client patch for the same (and that
patch includes the necessary protobuf changes).

Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
---
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/client.cc
M src/kudu/client/scan_token-internal.cc
M src/kudu/client/scan_token-test.cc
5 files changed, 157 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/21/13521/2
--
To view, visit http://gerrit.cloudera.org:8080/13521
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Gerrit-Change-Number: 13521
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [c++] Support table rename between scan token creation and rehydration

2019-06-05 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13521


Change subject: [c++] Support table rename between scan token creation and 
rehydration
..

[c++] Support table rename between scan token creation and rehydration

Previously, if a scan token was created against table 'foo', and table
'foo' was renamed to table 'bar', rehydrating the scan token into a
scanner would either
- fail if there is no longer a table 'foo', or
- attempt to scan another table if that table had been renamed to 'foo'.
This patch alters how the C++ client manages scan tokens. It prefers to
use the table id to identify a table, rather than a table name. This
eliminates the above two problems.

This is a follow up to the Java client patch for the same (and that
patch includes the necessary protobuf changes).

Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
---
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/client.cc
M src/kudu/client/scan_token-internal.cc
M src/kudu/client/scan_token-test.cc
5 files changed, 157 insertions(+), 29 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/21/13521/1
--
To view, visit http://gerrit.cloudera.org:8080/13521
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib4d48513dff67012f26a99877b168d777d3049fd
Gerrit-Change-Number: 13521
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Support table rename between scan token creation and rehydration

2019-06-05 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13518 )

Change subject: [java] Support table rename between scan token creation and 
rehydration
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13518/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
File java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java:

http://gerrit.cloudera.org:8080/#/c/13518/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@283
PS1, Line 283: if (message.hasTableId() && other.message.hasTableId()) {
> Is comparing by table name safe across a rename? I suppose either way, a to
Safe like you could end up scanning a different table / comparing scan tokens 
in the case where you meant to scan 'foo' but then ('foo' rename to 'bar') and 
('baaz' rename to 'foo')? No, I wouldn't call that safe. I would call what's 
being done here preserving unsafe legacy behavior :(



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
Gerrit-Change-Number: 13518
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 05 Jun 2019 20:13:43 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Support table rename between scan token creation and rehydration

2019-06-05 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13518 )

Change subject: [java] Support table rename between scan token creation and 
rehydration
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13518/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
File java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java:

http://gerrit.cloudera.org:8080/#/c/13518/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@283
PS1, Line 283: if (message.hasTableId() && other.message.hasTableId()) {
> Should cases where message.hasTableId() != other.message.hasTableId() fail?
I am thinking no because one scan token may be old and only have table id and 
the other may be new and have table id, while both are for the same table.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
Gerrit-Change-Number: 13518
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 05 Jun 2019 19:53:04 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Support table rename between scan token creation and rehydration

2019-06-05 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13518


Change subject: [java] Support table rename between scan token creation and 
rehydration
..

[java] Support table rename between scan token creation and rehydration

Previously, if a scan token was created against table 'foo', and table
'foo' was renamed to table 'bar', rehydrating the scan token into a
scanner would either
- fail if there is no longer a table 'foo', or
- attempt to scan another table if that table had been renamed to 'foo'.
This patch alters how the Java client manages scan tokens. It prefers to
use the table id to identify a table, rather than a table name. This
eliminates the above two problems. The table id has been added to the
scan token PB to enable this.

A follow-up will add support for the same in the C++ client.

Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M src/kudu/client/client.proto
7 files changed, 89 insertions(+), 13 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/18/13518/1
--
To view, visit http://gerrit.cloudera.org:8080/13518
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iba5b0ac89b9cf98f4cf37c35d740eef744a85005
Gerrit-Change-Number: 13518
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] KUDU-2830: [java] Improve RPC traces on RPC timeout

2019-06-04 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13509 )

Change subject: KUDU-2830: [java] Improve RPC traces on RPC timeout
..


Patch Set 1:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/13509/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
File java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java:

http://gerrit.cloudera.org:8080/#/c/13509/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java@403
PS1, Line 403: buf.append(", deferred=").append(deferred);
Is this intentionally omitted from 'buf' in the other branch?


http://gerrit.cloudera.org:8080/#/c/13509/1/java/kudu-client/src/main/java/org/apache/kudu/client/RpcTraceFrame.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RpcTraceFrame.java:

http://gerrit.cloudera.org:8080/#/c/13509/1/java/kudu-client/src/main/java/org/apache/kudu/client/RpcTraceFrame.java@187
PS1, Line 187: UNKOWN
UNKNOWN here and below.


http://gerrit.cloudera.org:8080/#/c/13509/1/java/kudu-client/src/main/java/org/apache/kudu/client/RpcTraceFrame.java@213
PS1, Line 213: authWaitCount
I think 'authTokenRefresh' or 'authRefresh' is better. What do you think?


http://gerrit.cloudera.org:8080/#/c/13509/1/java/kudu-client/src/main/java/org/apache/kudu/client/RpcTraceFrame.java@222
PS1, Line 222: StringBuilder sb = new StringBuilder();
I wish there were a better alternative to this StringBuilder nonsense, 
something like what's possible with strings::Substitute and multiline literals 
in C++, or with the s"$foo" feature in Scala. Obviously no defects vs. no 
obvious defects.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I725e3e8f89f5a433a0ffcb4b0facf82d9ffc4840
Gerrit-Change-Number: 13509
Gerrit-PatchSet: 1
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 04 Jun 2019 15:15:16 +
Gerrit-HasComments: Yes


[kudu-CR] external mini cluster: bump start process timeout a bit more

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13484 )

Change subject: external_mini_cluster: bump start process timeout a bit more
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I95de5368298b9c7fd1ea0b7166dd6c3cd24e356b
Gerrit-Change-Number: 13484
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Mon, 03 Jun 2019 22:25:53 +
Gerrit-HasComments: No


[kudu-CR] docs: update docs for heap sampling

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13459 )

Change subject: docs: update docs for heap sampling
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I5bdf8b2175f1bc492e98dc2a815bde4ab8fbe626
Gerrit-Change-Number: 13459
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Mon, 03 Jun 2019 17:25:01 +
Gerrit-HasComments: No


[kudu-CR] [java] Micro-improvements to DataGenerator

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13498 )

Change subject: [java] Micro-improvements to DataGenerator
..

[java] Micro-improvements to DataGenerator

Change-Id: I78eca7c6a4d8e0f52fe646a4157774b9123c8a4a
Reviewed-on: http://gerrit.cloudera.org:8080/13498
Tested-by: Kudu Jenkins
Reviewed-by: Grant Henke 
---
M java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java
1 file changed, 30 insertions(+), 28 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Grant Henke: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I78eca7c6a4d8e0f52fe646a4157774b9123c8a4a
Gerrit-Change-Number: 13498
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [backup] Deflake TestKuduBackup.testRandomBackupAndRestore

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13499 )

Change subject: [backup] Deflake TestKuduBackup.testRandomBackupAndRestore
..

[backup] Deflake TestKuduBackup.testRandomBackupAndRestore

TestKuduBackup.testRandomBackupAndRestore was flaky because it the
DataGenerator sometimes generated duplicate rows, which caused count
mismatches between the number of rows upserted and the number of rows
scanned from the table (particularly when the random schema had a single
INT8 primary key). This fix works around the problem by eliminating the
validation of backups against the generated rows, reducing the set of
validations to just the validation of the final state of the table
against the restored table.

Change-Id: Ic8500f884b05d09a8679863c380dd89f1675519f
Reviewed-on: http://gerrit.cloudera.org:8080/13499
Tested-by: Kudu Jenkins
Reviewed-by: Grant Henke 
---
M java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala
1 file changed, 9 insertions(+), 5 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Grant Henke: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic8500f884b05d09a8679863c380dd89f1675519f
Gerrit-Change-Number: 13499
Gerrit-PatchSet: 4
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Fix ordering bug in AsyncKuduSession

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13496 )

Change subject: [java] Fix ordering bug in AsyncKuduSession
..

[java] Fix ordering bug in AsyncKuduSession

AsyncKuduSession.testBatchErrorCauseSessionStuck occasionally failed
because AsyncKuduSession#hasPendingOperations returned true even though
the test joined on the deferred results of its two inserts. I tracked
this down to a small mis-ordering of lines where the AsyncKuduSession
fires a flush notification (from a Netty worker thread) before it
actually swaps the just-flushed buffer back to the inactive list, so
there was a small window of time when the client thread could observe
hasPendingOperations() as true even though there were no pending
operations.

I ran the test 100 times in dist-test with this fix and saw no failures.
I didn't run the test pre-fix through dist-test but the flaky dashboard
indicated it was 2-3% flaky.

Change-Id: I498636aeb0de2673c15b90260e6acf56de1ead06
Reviewed-on: http://gerrit.cloudera.org:8080/13496
Tested-by: Kudu Jenkins
Reviewed-by: Grant Henke 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Kudu Jenkins: Verified
  Grant Henke: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I498636aeb0de2673c15b90260e6acf56de1ead06
Gerrit-Change-Number: 13496
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Deflake TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13497 )

Change subject: [java] Deflake 
TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange
..

[java] Deflake TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange

The test uses an AsyncKuduSession in AUTO_FLUSH_BACKGROUND mode to send
20 inserts. 10 of them should fail because they are in a non-covered
range. However, the test did not join on the deferred when it called
AsyncKuduSession#flush. Therefore, there was no guarantee the operations
had been completed. So, every now and then, the ops were still in flight
when the errors were checked, causing the test to fail because it saw no
error where it expected to see errors.

Before this fix, the test failed because of this problem about 1/1000
times. I ran 1000 with the fix and saw no failures, but the rate was so
low maybe I was lucky. Regardless, I'm confident the test is more
correct with this fix.

Change-Id: I40360e9c7979c2edf01b4a70b64f71af4d1a1e11
Reviewed-on: http://gerrit.cloudera.org:8080/13497
Tested-by: Will Berkeley 
Reviewed-by: Grant Henke 
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
1 file changed, 2 insertions(+), 2 deletions(-)

Approvals:
  Will Berkeley: Verified
  Grant Henke: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I40360e9c7979c2edf01b4a70b64f71af4d1a1e11
Gerrit-Change-Number: 13497
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Fix ordering bug in AsyncKuduSession

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13496 )

Change subject: [java] Fix ordering bug in AsyncKuduSession
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13496/1/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
File 
java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java:

http://gerrit.cloudera.org:8080/#/c/13496/1/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java@306
PS1, Line 306:* Returns a buffer to the inactive queue after flushing.
> nit: Can you update this comment since the order changed? Maybe:
The buffer is already flushed at this point. This function resets state 
post-flush.

I'm thinking about rewriting some of the internals of AsyncKuduSession to make 
buffer management easier to understand.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I498636aeb0de2673c15b90260e6acf56de1ead06
Gerrit-Change-Number: 13496
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Mon, 03 Jun 2019 16:47:42 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Micro-improvements to DataGenerator

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13498 )

Change subject: [java] Micro-improvements to DataGenerator
..


Patch Set 2:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13498/2/java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java
File java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java:

http://gerrit.cloudera.org:8080/#/c/13498/2/java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java@85
PS2, Line 85: continue;
> Really curious about the motivation for this.
The following two general principles of readable code:
1. Minimize the amount of indentation, because each level of indentation is 
usually another level of control flow to keep in mind.
2. Early return (or break or continue) is good because it allows the reader to 
eliminate cases from consideration in the rest of the function or block.

Also, I didn't actually mean to submit this patch. I just made this change to 
help me understand this code better, and then forgot to undo it when submitting 
the follow-up.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I78eca7c6a4d8e0f52fe646a4157774b9123c8a4a
Gerrit-Change-Number: 13498
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Mon, 03 Jun 2019 16:44:17 +
Gerrit-HasComments: Yes


[kudu-CR] [backup] Deflake TestKuduBackup.testRandomBackupAndRestore

2019-06-03 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13499

to look at the new patch set (#3).

Change subject: [backup] Deflake TestKuduBackup.testRandomBackupAndRestore
..

[backup] Deflake TestKuduBackup.testRandomBackupAndRestore

TestKuduBackup.testRandomBackupAndRestore was flaky because it the
DataGenerator sometimes generated duplicate rows, which caused count
mismatches between the number of rows upserted and the number of rows
scanned from the table (particularly when the random schema had a single
INT8 primary key). This fix works around the problem by eliminating the
validation of backups against the generated rows, reducing the set of
validations to just the validation of the final state of the table
against the restored table.

Change-Id: Ic8500f884b05d09a8679863c380dd89f1675519f
---
M java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala
1 file changed, 9 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/99/13499/3
--
To view, visit http://gerrit.cloudera.org:8080/13499
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ic8500f884b05d09a8679863c380dd89f1675519f
Gerrit-Change-Number: 13499
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [java] Micro-improvements to DataGenerator

2019-06-03 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13498

to look at the new patch set (#2).

Change subject: [java] Micro-improvements to DataGenerator
..

[java] Micro-improvements to DataGenerator

Change-Id: I78eca7c6a4d8e0f52fe646a4157774b9123c8a4a
---
M java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java
1 file changed, 30 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/98/13498/2
--
To view, visit http://gerrit.cloudera.org:8080/13498
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I78eca7c6a4d8e0f52fe646a4157774b9123c8a4a
Gerrit-Change-Number: 13498
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [java] Deflake TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13497 )

Change subject: [java] Deflake 
TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange
..


Patch Set 1: Verified+1

Looks like a (probably benign) race involving log-capturing code and the stack 
trace collector. Certainly unrelated to this patch.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I40360e9c7979c2edf01b4a70b64f71af4d1a1e11
Gerrit-Change-Number: 13497
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Mon, 03 Jun 2019 09:41:31 +
Gerrit-HasComments: No


[kudu-CR] [java] Deflake TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has removed a vote on this change.

Change subject: [java] Deflake 
TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange
..


Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/13497
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I40360e9c7979c2edf01b4a70b64f71af4d1a1e11
Gerrit-Change-Number: 13497
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Micro-improvements to DataGenerator

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13498


Change subject: [java] Micro-improvements to DataGenerator
..

[java] Micro-improvements to DataGenerator

Change-Id: I78eca7c6a4d8e0f52fe646a4157774b9123c8a4a
---
M java/kudu-client/src/main/java/org/apache/kudu/util/DataGenerator.java
1 file changed, 30 insertions(+), 28 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/98/13498/1
--
To view, visit http://gerrit.cloudera.org:8080/13498
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I78eca7c6a4d8e0f52fe646a4157774b9123c8a4a
Gerrit-Change-Number: 13498
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [backup] Deflake TestKuduBackup.testRandomBackupAndRestore

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13499


Change subject: [backup] Deflake TestKuduBackup.testRandomBackupAndRestore
..

[backup] Deflake TestKuduBackup.testRandomBackupAndRestore

TestKuduBackup.testRandomBackupAndRestore was flaky because it the
DataGenerator sometimes generated duplicate rows, which caused count
mismatches between the number of rows upserted and the number of rows
scanned from the table (particularly when the random schema had a single
INT8 primary key). This fix works around the problem by eliminating the
validation of backups against the generated rows, reducing the set of
validations to just the validation of the final state of the table
against the restored table.

Change-Id: Ic8500f884b05d09a8679863c380dd89f1675519f
---
M java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala
1 file changed, 8 insertions(+), 5 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/99/13499/1
--
To view, visit http://gerrit.cloudera.org:8080/13499
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic8500f884b05d09a8679863c380dd89f1675519f
Gerrit-Change-Number: 13499
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Deflake TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange

2019-06-03 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13497


Change subject: [java] Deflake 
TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange
..

[java] Deflake TestKuduSession.testInsertAutoFlushBackgroundNonCoveredRange

The test uses an AsyncKuduSession in AUTO_FLUSH_BACKGROUND mode to send
20 inserts. 10 of them should fail because they are in a non-covered
range. However, the test did not join on the deferred when it called
AsyncKuduSession#flush. Therefore, there was no guarantee the operations
had been completed. So, every now and then, the ops were still in flight
when the errors were checked, causing the test to fail because it saw no
error where it expected to see errors.

Before this fix, the test failed because of this problem about 1/1000
times. I ran 1000 with the fix and saw no failures, but the rate was so
low maybe I was lucky. Regardless, I'm confident the test is more
correct with this fix.

Change-Id: I40360e9c7979c2edf01b4a70b64f71af4d1a1e11
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
1 file changed, 2 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/97/13497/1
--
To view, visit http://gerrit.cloudera.org:8080/13497
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I40360e9c7979c2edf01b4a70b64f71af4d1a1e11
Gerrit-Change-Number: 13497
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Deflake TestKuduScanner.testDiffScan

2019-06-02 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13495 )

Change subject: [java] Deflake TestKuduScanner.testDiffScan
..

[java] Deflake TestKuduScanner.testDiffScan

I noticed a funny failure in TestKuduScanner.testDiffScan:

21:55:41.681 [DEBUG - New I/O worker #13] (AsyncKuduScanner.java:556) Can not 
open scanner
org.apache.kudu.client.NonRecoverableException: snapshot scan start timestamp 
is earlier than the ancient history mark. Consider increasing the value of the 
configuration parameter --tablet_history_max_age_sec. Snapshot timestamp: P: 0 
usec, L: 0 Ancient History Mark: P: 1558907741677535 usec, L: 0 Physical time 
difference: -1558907741.678s

The client logs the request it sent, which indeed has a
'snap_start_timestamp' of 0. This timestamp is supposed to come from
incrementing the propagated timestamp received from the client after
some random inserts and mutations. Fortunately, this test has nice
logging: it logs the operations it did and the timestamp:

21:55:40.874 [INFO - Time-limited test] (TestKuduScanner.java:250) Before: {}
21:55:40.874 [INFO - Time-limited test] (TestKuduScanner.java:255) startHT: 0

'generateMutationOperations' could generate 0 mutations, causing this
test to fail. This requires the random number generator to generate 0 3
times in a row when sampling uniformly from {0, 1, 2, 3, 4}, so the odds
of failure due to this defect in the test were only 1/125. I fixed this
by adjusting the number of initial inserts generated so it is always at
least 1.

I ran the test 1250 times with the fix and saw zero failures. Without
the fix, I saw 9/1250 failures.

Change-Id: Iadb46e5dae71724aa8ff88d04c40ef4eaf1ddd2a
Reviewed-on: http://gerrit.cloudera.org:8080/13495
Tested-by: Will Berkeley 
Reviewed-by: Alexey Serbin 
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduScanner.java
M java/kudu-test-utils/src/main/java/org/apache/kudu/test/RandomUtils.java
2 files changed, 32 insertions(+), 14 deletions(-)

Approvals:
  Will Berkeley: Verified
  Alexey Serbin: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Iadb46e5dae71724aa8ff88d04c40ef4eaf1ddd2a
Gerrit-Change-Number: 13495
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Fix ordering bug in AsyncKuduSession

2019-06-02 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13496


Change subject: [java] Fix ordering bug in AsyncKuduSession
..

[java] Fix ordering bug in AsyncKuduSession

AsyncKuduSession.testBatchErrorCauseSessionStuck occasionally failed
because AsyncKuduSession#hasPendingOperations returned true even though
the test joined on the deferred results of its two inserts. I tracked
this down to a small mis-ordering of lines where the AsyncKuduSession
fires a flush notification (from a Netty worker thread) before it
actually swaps the just-flushed buffer back to the inactive list, so
there was a small window of time when the client thread could observe
hasPendingOperations() as true even though there were no pending
operations.

I ran the test 100 times in dist-test with this fix and saw no failures.
I didn't run the test pre-fix through dist-test but the flaky dashboard
indicated it was 2-3% flaky.

Change-Id: I498636aeb0de2673c15b90260e6acf56de1ead06
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
1 file changed, 1 insertion(+), 1 deletion(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/96/13496/1
--
To view, visit http://gerrit.cloudera.org:8080/13496
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I498636aeb0de2673c15b90260e6acf56de1ead06
Gerrit-Change-Number: 13496
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Deflake TestKuduScanner.testDiffScan

2019-06-02 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13495 )

Change subject: [java] Deflake TestKuduScanner.testDiffScan
..


Patch Set 2: Verified+1

When will the flakes end :'(


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iadb46e5dae71724aa8ff88d04c40ef4eaf1ddd2a
Gerrit-Change-Number: 13495
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Mon, 03 Jun 2019 06:02:43 +
Gerrit-HasComments: No


[kudu-CR] [java] Deflake TestKuduScanner.testDiffScan

2019-06-02 Thread Will Berkeley (Code Review)
Will Berkeley has removed a vote on this change.

Change subject: [java] Deflake TestKuduScanner.testDiffScan
..


Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/13495
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: Iadb46e5dae71724aa8ff88d04c40ef4eaf1ddd2a
Gerrit-Change-Number: 13495
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [java] Deflake TestKuduScanner.testDiffScan

2019-06-02 Thread Will Berkeley (Code Review)
Hello Alexey Serbin, Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13495

to look at the new patch set (#2).

Change subject: [java] Deflake TestKuduScanner.testDiffScan
..

[java] Deflake TestKuduScanner.testDiffScan

I noticed a funny failure in TestKuduScanner.testDiffScan:

21:55:41.681 [DEBUG - New I/O worker #13] (AsyncKuduScanner.java:556) Can not 
open scanner
org.apache.kudu.client.NonRecoverableException: snapshot scan start timestamp 
is earlier than the ancient history mark. Consider increasing the value of the 
configuration parameter --tablet_history_max_age_sec. Snapshot timestamp: P: 0 
usec, L: 0 Ancient History Mark: P: 1558907741677535 usec, L: 0 Physical time 
difference: -1558907741.678s

The client logs the request it sent, which indeed has a
'snap_start_timestamp' of 0. This timestamp is supposed to come from
incrementing the propagated timestamp received from the client after
some random inserts and mutations. Fortunately, this test has nice
logging: it logs the operations it did and the timestamp:

21:55:40.874 [INFO - Time-limited test] (TestKuduScanner.java:250) Before: {}
21:55:40.874 [INFO - Time-limited test] (TestKuduScanner.java:255) startHT: 0

'generateMutationOperations' could generate 0 mutations, causing this
test to fail. This requires the random number generator to generate 0 3
times in a row when sampling uniformly from {0, 1, 2, 3, 4}, so the odds
of failure due to this defect in the test were only 1/125. I fixed this
by adjusting the number of initial inserts generated so it is always at
least 1.

I ran the test 1250 times with the fix and saw zero failures. Without
the fix, I saw 9/1250 failures.

Change-Id: Iadb46e5dae71724aa8ff88d04c40ef4eaf1ddd2a
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduScanner.java
M java/kudu-test-utils/src/main/java/org/apache/kudu/test/RandomUtils.java
2 files changed, 32 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/95/13495/2
--
To view, visit http://gerrit.cloudera.org:8080/13495
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iadb46e5dae71724aa8ff88d04c40ef4eaf1ddd2a
Gerrit-Change-Number: 13495
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [java] Deflake TestKuduScanner.testDiffScan

2019-06-02 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13495


Change subject: [java] Deflake TestKuduScanner.testDiffScan
..

[java] Deflake TestKuduScanner.testDiffScan

I noticed a funny failure in TestKuduScanner.testDiffScan:

21:55:41.681 [DEBUG - New I/O worker #13] (AsyncKuduScanner.java:556) Can not 
open scanner
org.apache.kudu.client.NonRecoverableException: snapshot scan start timestamp 
is earlier than the ancient history mark. Consider increasing the value of the 
configuration parameter --tablet_history_max_age_sec. Snapshot timestamp: P: 0 
usec, L: 0 Ancient History Mark: P: 1558907741677535 usec, L: 0 Physical time 
difference: -1558907741.678s

The client logs the request it sent, which indeed has a 'snap_start_timestamp'
of 0. This timestamp is supposed to come from incrementing the propagated
timestamp received from the client after some random inserts and mutations.
Fortunately, this test has nice logging: it logs the operations it did and the
timestamp:

21:55:40.874 [INFO - Time-limited test] (TestKuduScanner.java:250) Before: {}
21:55:40.874 [INFO - Time-limited test] (TestKuduScanner.java:255) startHT: 0

'generateMutationOperations' could generate 0 mutations, causing this test to
fail. This requires the random number generate to generate 0 3 times in
a row when sample uniformly from {0, 1, 2, 3, 4}, so the odds of failure
due to this defect in the tests were only 1/125. I fixed this by
adjusting the number of inserts generated so it is always at least 1.

I ran the test 1250 times with the fix and saw zero failures. Without
the fix, I saw 9/1250 failures.

Change-Id: Iadb46e5dae71724aa8ff88d04c40ef4eaf1ddd2a
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduScanner.java
M java/kudu-test-utils/src/main/java/org/apache/kudu/test/RandomUtils.java
2 files changed, 32 insertions(+), 14 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/95/13495/1
--
To view, visit http://gerrit.cloudera.org:8080/13495
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iadb46e5dae71724aa8ff88d04c40ef4eaf1ddd2a
Gerrit-Change-Number: 13495
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [spark tools] KUDU-2831: Deflake DistributedDataGeneratorTest.testGenerateRandomData

2019-05-31 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13477 )

Change subject: [spark tools] KUDU-2831: Deflake 
DistributedDataGeneratorTest.testGenerateRandomData
..


Patch Set 2:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13477/2//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13477/2//COMMIT_MSG@10
PS2, Line 10: an
> a
Hawkeye :(



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie2218328e400d76dbeab50cdb0d0241dfe56d20c
Gerrit-Change-Number: 13477
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Fri, 31 May 2019 16:39:27 +
Gerrit-HasComments: Yes


[kudu-CR] [spark tools] KUDU-2831: Deflake DistributedDataGeneratorTest.testGenerateRandomData

2019-05-31 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13477 )

Change subject: [spark tools] KUDU-2831: Deflake 
DistributedDataGeneratorTest.testGenerateRandomData
..

[spark tools] KUDU-2831: Deflake 
DistributedDataGeneratorTest.testGenerateRandomData

Oops. It seems it's not possible to retrieve an accumulator by name. We
were creating an new accumulator for collisions after the old one was
cleaned up because the job finished and all references to it ended. This
meant we never actually counted collisions, so when they happened our
expectation of the number of rows written was off. This fixes the
problem by plumbing a reference to the rows written and collisions
accumulators back to the test code.

Before this patch, I saw 12/1000 failures. After, 0/1000.

Change-Id: Ie2218328e400d76dbeab50cdb0d0241dfe56d20c
Reviewed-on: http://gerrit.cloudera.org:8080/13477
Reviewed-by: Grant Henke 
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M 
java/kudu-spark-tools/src/main/scala/org/apache/kudu/spark/tools/DistributedDataGenerator.scala
M 
java/kudu-spark-tools/src/test/scala/org/apache/kudu/spark/tools/DistributedDataGeneratorTest.scala
2 files changed, 22 insertions(+), 14 deletions(-)

Approvals:
  Grant Henke: Looks good to me, but someone else must approve
  Kudu Jenkins: Verified
  Adar Dembo: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie2218328e400d76dbeab50cdb0d0241dfe56d20c
Gerrit-Change-Number: 13477
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [spark tools] KUDU-2831: Deflake DistributedDataGeneratorTest.testGenerateRandomData

2019-05-30 Thread Will Berkeley (Code Review)
Hello Kudu Jenkins, Adar Dembo, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13477

to look at the new patch set (#2).

Change subject: [spark tools] KUDU-2831: Deflake 
DistributedDataGeneratorTest.testGenerateRandomData
..

[spark tools] KUDU-2831: Deflake 
DistributedDataGeneratorTest.testGenerateRandomData

Oops. It seems it's not possible to retrieve an accumulator by name. We
were creating an new accumulator for collisions after the old one was
cleaned up because the job finished and all references to it ended. This
meant we never actually counted collisions, so when they happened our
expectation of the number of rows written was off. This fixes the
problem by plumbing a reference to the rows written and collisions
accumulators back to the test code.

Before this patch, I saw 12/1000 failures. After, 0/1000.

Change-Id: Ie2218328e400d76dbeab50cdb0d0241dfe56d20c
---
M 
java/kudu-spark-tools/src/main/scala/org/apache/kudu/spark/tools/DistributedDataGenerator.scala
M 
java/kudu-spark-tools/src/test/scala/org/apache/kudu/spark/tools/DistributedDataGeneratorTest.scala
2 files changed, 22 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/77/13477/2
--
To view, visit http://gerrit.cloudera.org:8080/13477
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie2218328e400d76dbeab50cdb0d0241dfe56d20c
Gerrit-Change-Number: 13477
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [spark tools] KUDU-2831: Deflake DistributedDataGeneratorTest.testGenerateRandomData

2019-05-30 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13477


Change subject: [spark tools] KUDU-2831: Deflake 
DistributedDataGeneratorTest.testGenerateRandomData
..

[spark tools] KUDU-2831: Deflake 
DistributedDataGeneratorTest.testGenerateRandomData

Oops. It seems it's not possible to retrieve an accumulator by name. We
were creating an new accumulator for collisions after the old one was
cleaned up because the job finished and all references to it ended. This
meant we never actually counted collisions, so when they happened our
expectation of the number of rows written was off. This fixes the
problem by plumbing a reference to the rows written and collisions
accumulators back to the test code.

Before this patch, I saw 12/1000 failures. After, 0/1000.

Change-Id: Ie2218328e400d76dbeab50cdb0d0241dfe56d20c
---
M 
java/kudu-spark-tools/src/main/scala/org/apache/kudu/spark/tools/DistributedDataGenerator.scala
M 
java/kudu-spark-tools/src/test/scala/org/apache/kudu/spark/tools/DistributedDataGeneratorTest.scala
2 files changed, 22 insertions(+), 14 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/77/13477/1
--
To view, visit http://gerrit.cloudera.org:8080/13477
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie2218328e400d76dbeab50cdb0d0241dfe56d20c
Gerrit-Change-Number: 13477
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

2019-05-30 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13461 )

Change subject: [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations
..

[java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

This test was flaky because DDL operations aren't exactly-once
(KUDU-1527). The following could happen with table creation or deletion:
1. Thread A issues a CreateTable request for Table A.
2. The master receives the CreateTable request and gets to work creating
   Table A but has not responded to Thread A yet.
3. Thread B calls `dropConnectionsAndExpireTokens`, dropping connections
   to the master.
4. Thread A retries the CreateTable RPC, thinking it has failed because
   the connection was dropped.
5. The master responds with an error because the table exists.

This works around the problem by catching and ignoring exceptions
indicating that the table already exists in the case of table creation
and catching and ignoring exceptions that the table is deleted or does
not exist in the case of table deletion.

Before this patch, I saw 16/100 runs fail in dist-test against TSAN
binaries. With this patch, I saw 0/100 failures.

Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
Reviewed-on: http://gerrit.cloudera.org:8080/13461
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin 
---
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
1 file changed, 22 insertions(+), 2 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Alexey Serbin: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
Gerrit-Change-Number: 13461
Gerrit-PatchSet: 4
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Deflake TestSecurity.testImportExportAuthenticationCredentials

2019-05-30 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13466 )

Change subject: [java] Deflake 
TestSecurity.testImportExportAuthenticationCredentials
..

[java] Deflake TestSecurity.testImportExportAuthenticationCredentials

This test was flaky for the same reason that
SecureKuduSinkTest.testEventsWithShortTickets was flaky (as addressed
in 3cbc025869494be2a1fa91582dfabc95d7bc88f9): the test was using short
ticket lifetimes, and sometimes in TSAN the cluster would simply take
longer than the ticket lifetime to start, causing the minicluster
check to fail with "not authorized" errors. However, unlike the sink
test, I don't see a reason why this test needs to use short lifetimes.
It manually invalidates credentials and does not wait for expiration.
So, I simply unset the option making it use short ticket lifetimes.

Change-Id: Ifb9fd101deb82acc849ba5dd6dfe8a34a76eea03
Reviewed-on: http://gerrit.cloudera.org:8080/13466
Tested-by: Will Berkeley 
Reviewed-by: Alexey Serbin 
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
1 file changed, 1 insertion(+), 2 deletions(-)

Approvals:
  Will Berkeley: Verified
  Alexey Serbin: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ifb9fd101deb82acc849ba5dd6dfe8a34a76eea03
Gerrit-Change-Number: 13466
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Deflake TestSecurity.testImportExportAuthenticationCredentials

2019-05-30 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13466 )

Change subject: [java] Deflake 
TestSecurity.testImportExportAuthenticationCredentials
..


Patch Set 1: Verified+1

Flakes -.-


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifb9fd101deb82acc849ba5dd6dfe8a34a76eea03
Gerrit-Change-Number: 13466
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 30 May 2019 07:10:07 +
Gerrit-HasComments: No


[kudu-CR] [java] Deflake TestSecurity.testImportExportAuthenticationCredentials

2019-05-30 Thread Will Berkeley (Code Review)
Will Berkeley has removed a vote on this change.

Change subject: [java] Deflake 
TestSecurity.testImportExportAuthenticationCredentials
..


Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/13466
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: Ifb9fd101deb82acc849ba5dd6dfe8a34a76eea03
Gerrit-Change-Number: 13466
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [java] Deflake TestSecurity.testImportExportAuthenticationCredentials

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13466


Change subject: [java] Deflake 
TestSecurity.testImportExportAuthenticationCredentials
..

[java] Deflake TestSecurity.testImportExportAuthenticationCredentials

This test was flaky for the same reason that
SecureKuduSinkTest.testEventsWithShortTickets was flaky (as addressed
in 3cbc025869494be2a1fa91582dfabc95d7bc88f9): the test was using short
ticket lifetimes, and sometimes in TSAN the cluster would simply take
longer than the ticket lifetime to start, causing the minicluster
check to fail with "not authorized" errors. However, unlike the sink
test, I don't see a reason why this test needs to use short lifetimes.
It manually invalidates credentials and does not wait for expiration.
So, I simply unset the option making it use short ticket lifetimes.

Change-Id: Ifb9fd101deb82acc849ba5dd6dfe8a34a76eea03
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
1 file changed, 1 insertion(+), 2 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/66/13466/1
--
To view, visit http://gerrit.cloudera.org:8080/13466
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifb9fd101deb82acc849ba5dd6dfe8a34a76eea03
Gerrit-Change-Number: 13466
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

2019-05-29 Thread Will Berkeley (Code Review)
Hello Kudu Jenkins, Andrew Wong, Adar Dembo,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13461

to look at the new patch set (#3).

Change subject: [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations
..

[java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

This test was flaky because DDL operations aren't exactly-once
(KUDU-1527). The following could happen with table creation or deletion:
1. Thread A issues a CreateTable request for Table A.
2. The master receives the CreateTable request and gets to work creating
   Table A but has not responded to Thread A yet.
3. Thread B calls `dropConnectionsAndExpireTokens`, dropping connections
   to the master.
4. Thread A retries the CreateTable RPC, thinking it has failed because
   the connection was dropped.
5. The master responds with an error because the table exists.

This works around the problem by catching and ignoring exceptions
indicating that the table already exists in the case of table creation
and catching and ignoring exceptions that the table is deleted or does
not exist in the case of table deletion.

Before this patch, I saw 16/100 runs fail in dist-test against TSAN
binaries. With this patch, I saw 0/100 failures.

Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
---
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
1 file changed, 22 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/61/13461/3
--
To view, visit http://gerrit.cloudera.org:8080/13461
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
Gerrit-Change-Number: 13461
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13461 )

Change subject: [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations
..


Patch Set 2:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/13461/2/java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java:

http://gerrit.cloudera.org:8080/#/c/13461/2/java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java@135
PS2, Line 135:   // TODO(KUDU-1537): Remove this workaround when 
table creation is exactly-once.
> master-stress-test also has this case:
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
Gerrit-Change-Number: 13461
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 30 May 2019 06:25:59 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Attempt to deflake SecureKuduSinkTest

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13454 )

Change subject: [java] Attempt to deflake SecureKuduSinkTest
..

[java] Attempt to deflake SecureKuduSinkTest

Occasionally, SecureKuduSinkTest fails when running with TSAN binaries
because of the following sequence of operations:

1. The Kerberos ticket lifetime is set to 10s.
2. The test sets up a mini kudu cluster. This first sets up the KDC,
   which creates credentials for all of the Kudu servers and kinits
   using test user credentials for the test process.
3. The setup of the cluster takes > 10s.
4. At the end of the cluster setup, the test checks that setup succeeded
   in part by issuing a ListTabletServers RPC. This fails because the test
   user ticket has expired.
5. The test fails because it can't set up the cluster.

The failure looks like

21:50:06.500 [ERROR - main] (RetryRule.java:217) 
org.apache.kudu.flume.sink.SecureKuduSinkTest.testEventsWithShortTickets: 
failed attempt 1
java.io.IOException: ListTabletServers RPC failed: Client connection 
negotiation failed: client connection to 127.12.111.60:36425: server requires 
authentication, but client does not have Kerberos credentials available
at 
org.apache.kudu.test.cluster.MiniKuduCluster.sendRequestToCluster(MiniKuduCluster.java:169)
 ~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.cluster.MiniKuduCluster.start(MiniKuduCluster.java:234) 
~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.cluster.MiniKuduCluster.access$300(MiniKuduCluster.java:71)
 ~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.cluster.MiniKuduCluster$MiniKuduClusterBuilder.build(MiniKuduCluster.java:658)
 ~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.KuduTestHarness.before(KuduTestHarness.java:140) 
~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:46) 
~[junit-4.12.jar:4.12]
at 
org.apache.kudu.test.junit.RetryRule$RetryStatement.doOneAttempt(RetryRule.java:215)
 [kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.junit.RetryRule$RetryStatement.evaluate(RetryRule.java:232)
 [kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
...

This patch attempts to deflake the test a bit by doubling the ticket
lifetime to 20s. It also raises the renewal lifetime to 35s from 30s,
to provide a bit of extra time between the ticket expiring and when
Flume needs to renew the ticket. Before, the test waited 2x the
renewable ticket lifetime. I made it so the test waits until the
renewable ticket lifetime plus one second has passed, including the
time spent in the test so far.

I tried to test this on dist-test using TSAN binaries. With the new
patch I saw 0/1000 failures, but without it I saw 830/1000 failures.
That's *way* flakier than any previous indication, so I don't trust
those results. The failures I sampled did seem to be related to the same
issue, but it was ConnectToCluster RPCs failing instead.

Change-Id: Icc936878d7f1496905e83ddaf93b9b049f417f72
Reviewed-on: http://gerrit.cloudera.org:8080/13454
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin 
---
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/SecureKuduSinkTest.java
1 file changed, 9 insertions(+), 3 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified
  Alexey Serbin: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Icc936878d7f1496905e83ddaf93b9b049f417f72
Gerrit-Change-Number: 13454
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13461 )

Change subject: [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations
..


Patch Set 1:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/13461/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13461/1//COMMIT_MSG@26
PS1, Line 26: bianries
> binaries
Done


http://gerrit.cloudera.org:8080/#/c/13461/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java:

PS1:
> Want to use the Status from inside the KuduException? Basically just need t
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
Gerrit-Change-Number: 13461
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 30 May 2019 00:20:03 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

2019-05-29 Thread Will Berkeley (Code Review)
Hello Kudu Jenkins, Andrew Wong, Adar Dembo,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13461

to look at the new patch set (#2).

Change subject: [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations
..

[java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

This test was flaky because DDL operations aren't exactly-once
(KUDU-1527). The following could happen with table creation or deletion:
1. Thread A issues a CreateTable request for Table A.
2. The master receives the CreateTable request and gets to work creating
   Table A but has not responded to Thread A yet.
3. Thread B calls `dropConnectionsAndExpireTokens`, dropping connections
   to the master.
4. Thread A retries the CreateTable RPC, thinking it has failed because
   the connection was dropped.
5. The master responds with an error because the table exists.

This works around the problem by catching and ignoring exceptions
indicating that the table already exists in the case of table creation
and catching and ignoring exceptions that the table is deleted or does
not exist in the case of table deletion.

Before this patch, I saw 16/100 runs fail in dist-test against TSAN
binaries. With this patch, I saw 0/100 failures.

Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
---
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
1 file changed, 21 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/61/13461/2
--
To view, visit http://gerrit.cloudera.org:8080/13461
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
Gerrit-Change-Number: 13461
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [java] Attempt to deflake SecureKuduSinkTest

2019-05-29 Thread Will Berkeley (Code Review)
Hello Alexey Serbin, Kudu Jenkins, Adar Dembo,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13454

to look at the new patch set (#2).

Change subject: [java] Attempt to deflake SecureKuduSinkTest
..

[java] Attempt to deflake SecureKuduSinkTest

Occasionally, SecureKuduSinkTest fails when running with TSAN binaries
because of the following sequence of operations:

1. The Kerberos ticket lifetime is set to 10s.
2. The test sets up a mini kudu cluster. This first sets up the KDC,
   which creates credentials for all of the Kudu servers and kinits
   using test user credentials for the test process.
3. The setup of the cluster takes > 10s.
4. At the end of the cluster setup, the test checks that setup succeeded
   in part by issuing a ListTabletServers RPC. This fails because the test
   user ticket has expired.
5. The test fails because it can't set up the cluster.

The failure looks like

21:50:06.500 [ERROR - main] (RetryRule.java:217) 
org.apache.kudu.flume.sink.SecureKuduSinkTest.testEventsWithShortTickets: 
failed attempt 1
java.io.IOException: ListTabletServers RPC failed: Client connection 
negotiation failed: client connection to 127.12.111.60:36425: server requires 
authentication, but client does not have Kerberos credentials available
at 
org.apache.kudu.test.cluster.MiniKuduCluster.sendRequestToCluster(MiniKuduCluster.java:169)
 ~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.cluster.MiniKuduCluster.start(MiniKuduCluster.java:234) 
~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.cluster.MiniKuduCluster.access$300(MiniKuduCluster.java:71)
 ~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.cluster.MiniKuduCluster$MiniKuduClusterBuilder.build(MiniKuduCluster.java:658)
 ~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.KuduTestHarness.before(KuduTestHarness.java:140) 
~[kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:46) 
~[junit-4.12.jar:4.12]
at 
org.apache.kudu.test.junit.RetryRule$RetryStatement.doOneAttempt(RetryRule.java:215)
 [kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
at 
org.apache.kudu.test.junit.RetryRule$RetryStatement.evaluate(RetryRule.java:232)
 [kudu-test-utils-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
...

This patch attempts to deflake the test a bit by doubling the ticket
lifetime to 20s. It also raises the renewal lifetime to 35s from 30s,
to provide a bit of extra time between the ticket expiring and when
Flume needs to renew the ticket. Before, the test waited 2x the
renewable ticket lifetime. I made it so the test waits until the
renewable ticket lifetime plus one second has passed, including the
time spent in the test so far.

I tried to test this on dist-test using TSAN binaries. With the new
patch I saw 0/1000 failures, but without it I saw 830/1000 failures.
That's *way* flakier than any previous indication, so I don't trust
those results. The failures I sampled did seem to be related to the same
issue, but it was ConnectToCluster RPCs failing instead.

Change-Id: Icc936878d7f1496905e83ddaf93b9b049f417f72
---
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/SecureKuduSinkTest.java
1 file changed, 9 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/54/13454/2
--
To view, visit http://gerrit.cloudera.org:8080/13454
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Icc936878d7f1496905e83ddaf93b9b049f417f72
Gerrit-Change-Number: 13454
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [java] Attempt to deflake SecureKuduSinkTest

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13454 )

Change subject: [java] Attempt to deflake SecureKuduSinkTest
..


Patch Set 1:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/13454/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13454/1//COMMIT_MSG@25
PS1, Line 25: java.io.IOException: ListTabletServers RPC failed: Client 
connection negotiation failed: client connection to 127.12.111.60:36425: server 
requires authentication, but client does not have Kerberos credentials available
> Ah, ignore that: here we should be talking only C++ client/server negotiati
Alexey said he'd address this C++ logging improvement in another patch.


http://gerrit.cloudera.org:8080/#/c/13454/1/java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/SecureKuduSinkTest.java
File 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/SecureKuduSinkTest.java:

http://gerrit.cloudera.org:8080/#/c/13454/1/java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/SecureKuduSinkTest.java@90
PS1, Line 90: LOG.info("Waiting for tickets to expire");
: TimeUnit.SECONDS.sleep(RENEWABLE_LIFETIME_SECONDS * 2);
> If my understanding is correct, this seems too conservative, indeed.
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Icc936878d7f1496905e83ddaf93b9b049f417f72
Gerrit-Change-Number: 13454
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Thu, 30 May 2019 00:14:13 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13461


Change subject: [java] Deflake TestAuthTokenReacquire.testBasicMasterOperations
..

[java] Deflake TestAuthTokenReacquire.testBasicMasterOperations

This test was flaky because DDL operations aren't exactly-once
(KUDU-1527). The following could happen with table creation or deletion:
1. Thread A issues a CreateTable request for Table A.
2. The master receives the CreateTable request and gets to work creating
   Table A but has not responded to Thread A yet.
3. Thread B calls `dropConnectionsAndExpireTokens`, dropping connections
   to the master.
4. Thread A retries the CreateTable RPC, thinking it has failed because
   the connection was dropped.
5. The master responds with an error because the table exists.

This works around the problem by catching and ignoring exceptions
indicating that the table already exists in the case of table creation
and catching and ignoring exceptions that the table is deleted or does
not exist in the case of table deletion.

Before this patch, I saw 16/100 runs fail in dist-test against TSAN
bianries. With this patch, I saw 0/100 failures.

Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
---
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthTokenReacquire.java
1 file changed, 23 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/61/13461/1
--
To view, visit http://gerrit.cloudera.org:8080/13461
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifef0a254c6eb1cadeb54e9cef52f78c7ccc7b9c5
Gerrit-Change-Number: 13461
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [java] Improve TestAsyncKuduSession: Refactor into more tests

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13460 )

Change subject: [java] Improve TestAsyncKuduSession: Refactor into more tests
..

[java] Improve TestAsyncKuduSession: Refactor into more tests

TestAsyncKuduSession had a few tests, but one of them, ominously called
`test`, was actually 7-8 tests in one, with each test shackled to the
next by the shared state of the underlying table. The main improvement
of this commit is to refactor mega-`test` into several targeted tests.

There were some parts of the original mega test method for which I
couldn't determine what precisely they were testing. Those parts have
been dropped.

I also made a few other small improvements which allowed me to drop
almost all the helper code in favor of generic test utils.

Change-Id: I73675605c04d16f23ce9cd61763a97486dfcb009
Reviewed-on: http://gerrit.cloudera.org:8080/13460
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
---
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
1 file changed, 150 insertions(+), 291 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I73675605c04d16f23ce9cd61763a97486dfcb009
Gerrit-Change-Number: 13460
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [backup] KUDU-2786 Parallelize tables for backup and restore

2019-05-29 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13430

to look at the new patch set (#2).

Change subject: [backup] KUDU-2786 Parallelize tables for backup and restore
..

[backup] KUDU-2786 Parallelize tables for backup and restore

This patch adds a hidden, experimental option to run backups and
restores in parallel across tables. Managing resources across parallel
backups and restores is very difficult: the sizes of tables in terms of
number of tablets and size of tables can vary by orders of magnitude
across a cluster, and there are many resources which may be constrained
depending on many factors: CPU, memory, disk I/O, network, number of
executors available. This patch doesn't do resource management. It will
kick off the jobs in parallel, and it's up to Spark to manage the
resources of parallel jobs. Maybe this will work well, maybe it won't...
that's why this is just experimental.

I tested manually on a Spark cluster to verify that jobs are actually
run in parallel.

Change-Id: I02f0a818a6fa372ab3c696c11882284877ce207e
---
M java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala
M java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduRestore.scala
M java/kudu-backup/src/main/scala/org/apache/kudu/backup/Options.scala
M java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala
4 files changed, 69 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/30/13430/2
--
To view, visit http://gerrit.cloudera.org:8080/13430
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I02f0a818a6fa372ab3c696c11882284877ce207e
Gerrit-Change-Number: 13430
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [backup] KUDU-2787 Allow single table failures for backup

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13415 )

Change subject: [backup] KUDU-2787 Allow single table failures for backup
..


Patch Set 5:

(6 comments)

http://gerrit.cloudera.org:8080/#/c/13415/4//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13415/4//COMMIT_MSG@7
PS4, Line 7: [backup] KUDU-2787 Allow single table failures for backup
> s/and restore//
Done


http://gerrit.cloudera.org:8080/#/c/13415/4/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala
File java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala:

http://gerrit.cloudera.org:8080/#/c/13415/4/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala@140
PS4, Line 140:   s"Failed to back up table $tableName: Look back in the 
logs for the full exception. Error: ${ex.toString}")
> Is ex.toString not the full exception? You should be able to use `log.error
It doesn't include the stack trace. I don't want that here because it should be 
printed above by the `log.error`.


http://gerrit.cloudera.org:8080/#/c/13415/4/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala@142
PS4, Line 142: if (backupResults.exists(_._2.isFailure))
> Maybe return a boolean instead of an int here. That way this is just:
I like that it returns the exit code. It makes `main` very clean.


http://gerrit.cloudera.org:8080/#/c/13415/4/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala@158
PS4, Line 158: System.exit(run(options, session))
> Instead of calling System.exit which is difficult to capture in testing, ca
Call `run` in tests.


http://gerrit.cloudera.org:8080/#/c/13415/4/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala
File 
java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala:

http://gerrit.cloudera.org:8080/#/c/13415/4/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala@107
PS4, Line 107: // Check that a backup of a missing table fails fast with an 
exception if the
> Is there a test for failOnFirstError = false?
Yes. See the second backup taken in `testFailedTableDoesNotFailOtherTables`.


http://gerrit.cloudera.org:8080/#/c/13415/4/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala@596
PS4, Line 596: runBacku
> nit: Would you mind renaming this function to runBackup() to avoid confusio
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4f3731f8df04791727c44af9ade9989f2cc6ef95
Gerrit-Change-Number: 13415
Gerrit-PatchSet: 5
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 29 May 2019 18:05:36 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Attempt to deflake SecureKuduSinkTest

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13454 )

Change subject: [java] Attempt to deflake SecureKuduSinkTest
..


Patch Set 1: Verified+1

Unrelated flake in DeleteTabletITest


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Icc936878d7f1496905e83ddaf93b9b049f417f72
Gerrit-Change-Number: 13454
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 29 May 2019 17:21:00 +
Gerrit-HasComments: No


[kudu-CR] [backup] KUDU-2787 Pt 2 Allow single table failures for restore

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13416 )

Change subject: [backup] KUDU-2787 Pt 2 Allow single table failures for restore
..


Patch Set 3:

(6 comments)

http://gerrit.cloudera.org:8080/#/c/13416/2//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13416/2//COMMIT_MSG@7
PS2, Line 7: [backup] KUDU-2787 Pt 2 Allow single table failures for restore
> s/backup and //; consider noting as part 2 of KUDU-2787
Done


http://gerrit.cloudera.org:8080/#/c/13416/2/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduRestore.scala
File java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduRestore.scala:

http://gerrit.cloudera.org:8080/#/c/13416/2/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduRestore.scala@164
PS2, Line 164: TODO
> mind filing a jira for this?
Done


http://gerrit.cloudera.org:8080/#/c/13416/2/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduRestore.scala@166
PS2, Line 166: changed. We ought to try to clean up the mess when a failure
> Are you thinking we should drop the table if we couldn't successfully resto
Yeah, so a retry of the job wouldn't auto-fail.


http://gerrit.cloudera.org:8080/#/c/13416/2/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduRestore.scala@187
PS2, Line 187: if (restoreResults.exists(_._2.isFailure))
> See my comments on the backup patch.
See my responses there.


http://gerrit.cloudera.org:8080/#/c/13416/2/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduRestore.scala@299
PS2, Line 299: System.exit(run(options, session))
> See my comments on the backup patch.
Ditto.


http://gerrit.cloudera.org:8080/#/c/13416/2/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala
File 
java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala:

http://gerrit.cloudera.org:8080/#/c/13416/2/java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala@659
PS2, Line 659: runRestor
> nit: can we rename this to runRestore() to avoid confusion with the method
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9dcc0be78e637b47f35e494dce4a6df274c8d559
Gerrit-Change-Number: 13416
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 29 May 2019 18:05:32 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Deflake TestAsyncKuduSession with temporary workaround

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/13453 )

Change subject: [java] Deflake TestAsyncKuduSession with temporary workaround
..

[java] Deflake TestAsyncKuduSession with temporary workaround

TestAsyncKuduSession.test is kind of a mess. In particular, it has one
section where it tries to insert 21 ops into a session with 20 ops of
buffer space. It expects this to trigger a PleaseThrottleException.
However, it is inherently racy because the session may manage to flush
one or more buffers of ops to the server so no throttling is needed.
It's always been an icky test but it wasn't flaky until
2bf80b5147f09c980c2f2268ee3467a5b3305a57 cleaned up the session code a
bit. Now it's about 30% flaky in RELEASE mode according to the flaky
test dashboard. Until I can spend some time to redo the test and
understand exactly what about the previous change triggered the
flakiness, I'm turning off the check for an exception.

I also moved a debug log statement so there's less noise when calling
flush in non-AUTO_FLUSH_BACKGROUND modes.

Change-Id: I751f1ed3a151eee611a8b88c1527e12271024bf6
Reviewed-on: http://gerrit.cloudera.org:8080/13453
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
2 files changed, 6 insertions(+), 10 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Adar Dembo: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I751f1ed3a151eee611a8b88c1527e12271024bf6
Gerrit-Change-Number: 13453
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [backup] KUDU-2787 Pt 2 Allow single table failures for restore

2019-05-29 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Grant Henke,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/13416

to look at the new patch set (#3).

Change subject: [backup] KUDU-2787 Pt 2 Allow single table failures for restore
..

[backup] KUDU-2787 Pt 2 Allow single table failures for restore

This path enhances restore to be able to survive the failures of
individual tables. It adds a new option `--failOnFirstError` to the
restore job, which defaults to false, and which when true causes the
restore job to fail as soon as any table has an error (the previous
behavior).

Change-Id: I9dcc0be78e637b47f35e494dce4a6df274c8d559
---
M java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduRestore.scala
M java/kudu-backup/src/main/scala/org/apache/kudu/backup/Options.scala
M java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala
M java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestOptions.scala
4 files changed, 169 insertions(+), 107 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/16/13416/3
--
To view, visit http://gerrit.cloudera.org:8080/13416
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9dcc0be78e637b47f35e494dce4a6df274c8d559
Gerrit-Change-Number: 13416
Gerrit-PatchSet: 3
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [backup] KUDU-2786 Parallelize tables for backup and restore

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13430 )

Change subject: [backup] KUDU-2786 Parallelize tables for backup and restore
..


Patch Set 1:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/13430/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13430/1//COMMIT_MSG@10
PS1, Line 10:  parallel
> in parallel
Done


http://gerrit.cloudera.org:8080/#/c/13430/1//COMMIT_MSG@11
PS1, Line 11: is very difficult
> How would queueing and resource management of this be any different than do
I'm not sure, but I know there's a lot I don't know about Spark, and I know we 
haven't tested this very much.


http://gerrit.cloudera.org:8080/#/c/13430/1//COMMIT_MSG@24
PS1, Line 24:
: foo
:
: Change-Id: Ib02f26fbfd6a714ad0797f8b5ed1eeeb8fd6e371
:
: b
:
: Change-Id: I02f0a818a6fa372ab3c696c11882284877ce207e
> nit: remove these remnants of a git squash
:(


http://gerrit.cloudera.org:8080/#/c/13430/1/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala
File java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala:

http://gerrit.cloudera.org:8080/#/c/13430/1/java/kudu-backup/src/main/scala/org/apache/kudu/backup/KuduBackup.scala@128
PS1, Line 128: val pool = new ForkJoinPool(options.numParallelBackups) // 
Need a clean-up reference.
> Due to Data input and output format and layout assumptions it's easier to k
+1 to what Grant said. Separate jobs can fail separately.

Re: the ForkJoinPool, I don't think that the "Fork" here is the syscall fork. 
Of course the threads in the pool will be forked (or cloned) at some point, but 
I don't think the pool is forking for every task. See this for an explanation 
of why the pool is called a ForkJoinPool: 
http://tutorials.jenkov.com/java-util-concurrent/java-fork-and-join-forkjoinpool.html.

Also, this is the default type of ExecutorService used, not a specific choice 
by me. I needed to configure the parallelism explicitly, else I could have 
dispensed with configuring my own pool. That would have resulted in parallelism 
equal to the number of processors on the driver node, which doesn't have much 
to do with the parallelism one might want in the restore job.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I02f0a818a6fa372ab3c696c11882284877ce207e
Gerrit-Change-Number: 13430
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 29 May 2019 18:05:21 +
Gerrit-HasComments: Yes


[kudu-CR] [java] Attempt to deflake SecureKuduSinkTest

2019-05-29 Thread Will Berkeley (Code Review)
Will Berkeley has removed a vote on this change.

Change subject: [java] Attempt to deflake SecureKuduSinkTest
..


Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/13454
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: Icc936878d7f1496905e83ddaf93b9b049f417f72
Gerrit-Change-Number: 13454
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 


  1   2   3   4   5   6   7   8   9   10   >