[kudu-CR] generic iterators: assorted cleanup

2019-01-08 Thread Adar Dembo (Code Review)
Hello Mike Percy, Kudu Jenkins,

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

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

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

Change subject: generic_iterators: assorted cleanup
..

generic_iterators: assorted cleanup

This patch cleans up the MergeIterator and makes it look more like the
UnionIterator:
1. Addressed a long-standing TODO about schema verification.
2. Extracted the schema from the sub-iterators.

Change-Id: I7f1fd5f4cd1a8ef621d3ac994e764dfd19e99544
---
M src/kudu/common/generic_iterators-test.cc
M src/kudu/common/generic_iterators.cc
M src/kudu/common/generic_iterators.h
M src/kudu/tablet/rowset.cc
M src/kudu/tablet/tablet.cc
5 files changed, 95 insertions(+), 64 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I7f1fd5f4cd1a8ef621d3ac994e764dfd19e99544
Gerrit-Change-Number: 12156
Gerrit-PatchSet: 3
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] generic iterators: assorted cleanup

2019-01-08 Thread Adar Dembo (Code Review)
Hello Mike Percy, Kudu Jenkins,

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

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

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

Change subject: generic_iterators: assorted cleanup
..

generic_iterators: assorted cleanup

This patch cleans up the MergeIterator and makes it look more like the
UnionIterator:
1. Addressed a long-standing TODO about schema verification.
2. Extracted the schema from the sub-iterators.

Change-Id: I7f1fd5f4cd1a8ef621d3ac994e764dfd19e99544
---
M src/kudu/common/generic_iterators-test.cc
M src/kudu/common/generic_iterators.cc
M src/kudu/common/generic_iterators.h
M src/kudu/tablet/rowset.cc
M src/kudu/tablet/tablet.cc
5 files changed, 93 insertions(+), 62 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I7f1fd5f4cd1a8ef621d3ac994e764dfd19e99544
Gerrit-Change-Number: 12156
Gerrit-PatchSet: 2
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] generic iterators: short-circuit MergeIterState::PullNextBlock

2019-01-08 Thread Adar Dembo (Code Review)
Hello Mike Percy, Kudu Jenkins,

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

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

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

Change subject: generic_iterators: short-circuit MergeIterState::PullNextBlock
..

generic_iterators: short-circuit MergeIterState::PullNextBlock

This is a micro-optimization to avoid testing every bit in the selection
vector when we've already counted up the number of set bits.

Change-Id: I529e632f40943962d34c184b29b5cff7604ad59b
---
M src/kudu/common/generic_iterators.cc
1 file changed, 6 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I529e632f40943962d34c184b29b5cff7604ad59b
Gerrit-Change-Number: 12157
Gerrit-PatchSet: 2
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] tablet: clean up MergeIterState API

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/12176 )

Change subject: tablet: clean up MergeIterState API
..

tablet: clean up MergeIterState API

This patch simply adds documentation and some readability cleanup to
MergeIterState, which is a helper class for the MergeIterator.

Non-API changes:
 - Add API docs to all public methods.
 - Extract the implementation of Advance() and PullNextBlock() out of
   the class declaration to make the API contract easier to quickly read
   and understand.
 - Rename a couple of private variables to clarify row-oriented
 semantics.

API cleanup:
 - Add a public Init() method that delegates to PullNextBlock().
 - Make PullNextBlock() and IsBlockExhausted() private methods.
 - Replace exposure of the underlying iterator via iter() with a public
   AddStats() method, since stats collection was the only use of iter().

There are no functional changes in this patch.

Change-Id: Ie3f821dc06ddbe3f7ef018eec15b1993cde7e7e0
Reviewed-on: http://gerrit.cloudera.org:8080/12176
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
---
M src/kudu/common/generic_iterators.cc
1 file changed, 89 insertions(+), 64 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie3f821dc06ddbe3f7ef018eec15b1993cde7e7e0
Gerrit-Change-Number: 12176
Gerrit-PatchSet: 5
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] Support location awareness in READ CLOSEST for the Java client

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12175 )

Change subject: Support location awareness in READ_CLOSEST for the Java client
..


Patch Set 3: Code-Review+2

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12175/3/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java:

http://gerrit.cloudera.org:8080/#/c/12175/3/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java@111
PS3, Line 111: !location.isEmpty() &&
nit: isn't this part redundant once the other two are present?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ief0f07058cefd0037f4b0f7c60c8b7809dc8313f
Gerrit-Change-Number: 12175
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 
Gerrit-Comment-Date: Wed, 09 Jan 2019 07:04:16 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2195. Add additional gflag to force sync of consensus metadata

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12186 )

Change subject: KUDU-2195. Add additional gflag to force sync of consensus 
metadata
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I73212d1670a33479cce7d9ef9ee61cfe9b00cdd3
Gerrit-Change-Number: 12186
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Wed, 09 Jan 2019 06:48:11 +
Gerrit-HasComments: No


[kudu-CR] Support location awareness in READ CLOSEST for the C++ client

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12138 )

Change subject: Support location awareness in READ_CLOSEST for the C++ client
..


Patch Set 8: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I2c6bcc7479c5cf2e17cb6e368ca89a1eb7f21713
Gerrit-Change-Number: 12138
Gerrit-PatchSet: 8
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 09 Jan 2019 06:52:10 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12178 )

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..


Patch Set 4: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 4
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Wed, 09 Jan 2019 06:49:18 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2543 pt 2: pass around default authz tokens

2019-01-08 Thread Hao Hao (Code Review)
Hao Hao has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12122 )

Change subject: KUDU-2543 pt 2: pass around default authz tokens
..


Patch Set 5:

(12 comments)

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/authz_token_cache.h
File src/kudu/client/authz_token_cache.h:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/authz_token_cache.h@134
PS5, Line 134: retrieve_authz_rpcs_
nit: why not name it 'authz_rpcs_' to match 'authz_tokens_'?


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

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/client-internal.cc@466
PS5, Line 466: authz_token_cache_.Put
nit: use StoreAuthzToken() instead?


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/client-test.cc
File src/kudu/client/client-test.cc:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/client-test.cc@5853
PS5, Line 5853:   
client_->data_->RetrieveAuthzTokenAsync(client_table_.get(), 
s.AsStatusCallback(),
Is it possible to change the logic to create a new client and only retrieve 
authz token when there isn't one cached? So that we can have a deterministic 
result that there is only one RPC being sent in this case?


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/auth_token_expire-itest.cc
File src/kudu/integration-tests/auth_token_expire-itest.cc:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/auth_token_expire-itest.cc@143
PS5, Line 143:
nit: extra space.


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/auth_token_expire-itest.cc@254
PS5, Line 254:
nit: space.


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc
File src/kudu/integration-tests/authz_token-itest.cc:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@184
PS5, Line 184: Insert
nit: 'Inserts' to aligned with other comments style.


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@205
PS5, Line 205: Get
nit: 'Gets'


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@281
PS5, Line 281:   LOG(INFO) << "Trying to use the wrong user's token...";
Can you add a comment to explain what is the expected behavior in this case? 
Especially why operations in L285 is expected to succeed.


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@362
PS5, Line 362: ASSERT_OK(ScanFromTable(client_table_.get()));
Why not parameterized the functor here as well?


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@369
PS5, Line 369: TestUnknownTsk
Should a similar test be exist for authn token as well?


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@477
PS5, Line 477: TestMasterElectionStorms
Will a similar also apply for authn tokens? Also,  wondering how you consider 
what should be tested in auth_token_expire-itest and what should be in 
authz_token-itest?


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@523
PS5, Line 523: // Ensures the client can still communicate with servers that do 
not support
 : // authz tokens.
What happens if a old client try to communicate with servers that require authz 
tokens?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7971d652d6adc822167cf959bffd5f994a7ca565
Gerrit-Change-Number: 12122
Gerrit-PatchSet: 5
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 09 Jan 2019 06:31:27 +
Gerrit-HasComments: Yes


[kudu-CR] [fs]: wrapping up containers in scoped refptr

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12121 )

Change subject: [fs]: wrapping up containers in scoped_refptr
..


Patch Set 6:

> Here is a tserver node of our online cluster, and it has been running for 
> months. So, it has more than 38k+ containers and almost 20k+ are dead.

Looks like it's got many more containers than that:

> Total number of LBM containers: 206682 (147 full)

In any case, thank you for the additional testing. The results are very nice. 
Looks like the slowdown is 1-2%, which is well within the possible variance for 
startup time anyway.

I'll merge this.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3c5c620014782b3d57dcbe047d0df73c949590c7
Gerrit-Change-Number: 12121
Gerrit-PatchSet: 6
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 09 Jan 2019 06:21:17 +
Gerrit-HasComments: No


[kudu-CR] [fs]: wrapping up containers in scoped refptr

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/12121 )

Change subject: [fs]: wrapping up containers in scoped_refptr
..

[fs]: wrapping up containers in scoped_refptr

It's necessary to wrap up containers in scoped_refptr
to support deleting the full containers that are dead
at runtime. Based on this, the KUDU-2636 can be fixed.

Change-Id: I3c5c620014782b3d57dcbe047d0df73c949590c7
Reviewed-on: http://gerrit.cloudera.org:8080/12121
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M src/kudu/fs/log_block_manager-test.cc
M src/kudu/fs/log_block_manager.cc
M src/kudu/fs/log_block_manager.h
3 files changed, 129 insertions(+), 141 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I3c5c620014782b3d57dcbe047d0df73c949590c7
Gerrit-Change-Number: 12121
Gerrit-PatchSet: 7
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: helifu 


[kudu-CR] [fs]: wrapping up containers in scoped refptr

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12121 )

Change subject: [fs]: wrapping up containers in scoped_refptr
..


Patch Set 6: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3c5c620014782b3d57dcbe047d0df73c949590c7
Gerrit-Change-Number: 12121
Gerrit-PatchSet: 6
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 09 Jan 2019 06:21:35 +
Gerrit-HasComments: No


[kudu-CR] [fs]: wrapping up containers in scoped refptr

2019-01-08 Thread helifu (Code Review)
helifu has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12121 )

Change subject: [fs]: wrapping up containers in scoped_refptr
..


Patch Set 6:

Here is a tserver node of our online cluster, and it has been running for 
months. So, it has more than 38k+ containers and almost 20k+ are dead.
Test step:
1) rebooted the node to repair the containers;
2) rebooted the node with none scoped_refptr version;
3) rebooted the node with scoped_refptr version;

Step 2's result:
I0109 13:37:40.599534 159639 fs_manager.cc:419] Time spent opening block 
manager: real 58.437s  user 0.000s sys 0.000s
I0109 13:37:40.599802 159639 fs_manager.cc:436] Opened local filesystem: 
/mnt/dfs/0/kudu/tserver/data,/mnt/dfs/1/kudu/tserver/data,/mnt/dfs/2/kudu/tserver/data,/mnt/dfs/3/kudu/tserver/data,/mnt/dfs/4/kudu/tserver/data,/mnt/dfs/5/kudu/tserver/data,/mnt/dfs/6/kudu/tserver/data,/mnt/dfs/7/kudu/tserver/data,/mnt/dfs/8/kudu/tserver/data,/mnt/dfs/9/kudu/tserver/data,/mnt/dfs/10/kudu/tserver/data,/mnt/dfs/ssd0/kudu/tserver/wal
uuid: "89c5dd62ad734d54b7d25bc2d52263d3"
format_stamp: "Formatted at 2018-03-12 07:20:41 on kudu14.lt.163.org"
I0109 13:37:40.599843 159639 fs_report.cc:352] FS layout report

wal directory: /mnt/dfs/ssd0/kudu/tserver/wal
metadata directory: /mnt/dfs/0/kudu/tserver/data
11 data directories: /mnt/dfs/0/kudu/tserver/data/data, 
/mnt/dfs/1/kudu/tserver/data/data, /mnt/dfs/2/kudu/tserver/data/data, 
/mnt/dfs/3/kudu/tserver/data/data, /mnt/dfs/4/kudu/tserver/data/data, 
/mnt/dfs/5/kudu/tserver/data/data, /mnt/dfs/6/kudu/tserver/data/data, 
/mnt/dfs/7/kudu/tserver/data/data, /mnt/dfs/8/kudu/tserver/data/data, 
/mnt/dfs/9/kudu/tserver/data/data, /mnt/dfs/10/kudu/tserver/data/data
Total live blocks: 23590554
Total live bytes: 1449771979998
Total live bytes (after alignment): 1529197359104
Total number of LBM containers: 206682 (147 full)
Did not check for missing blocks
Did not check for orphaned blocks
Total full LBM containers with extra space: 0 (0 repaired)
Total full LBM container extra space in bytes: 0 (0 repaired)
Total incomplete LBM containers: 0 (0 repaired)
Total LBM partial records: 0 (0 repaired)
I0109 13:37:40.62 159639 env_posix.cc:1676] Not raising this process' 
running threads per effective uid limit of 1033414; it is already as high as it 
can go
I0109 13:37:40.633038 159639 ts_tablet_manager.cc:344] Loading tablet metadata 
(0/1989 complete)

Step 3's result:
I0109 13:43:06.445422 160217 fs_manager.cc:419] Time spent opening block 
manager: real 59.316s  user 0.000s sys 0.004s
I0109 13:43:06.445688 160217 fs_manager.cc:436] Opened local filesystem: 
/mnt/dfs/0/kudu/tserver/data,/mnt/dfs/1/kudu/tserver/data,/mnt/dfs/2/kudu/tserver/data,/mnt/dfs/3/kudu/tserver/data,/mnt/dfs/4/kudu/tserver/data,/mnt/dfs/5/kudu/tserver/data,/mnt/dfs/6/kudu/tserver/data,/mnt/dfs/7/kudu/tserver/data,/mnt/dfs/8/kudu/tserver/data,/mnt/dfs/9/kudu/tserver/data,/mnt/dfs/10/kudu/tserver/data,/mnt/dfs/ssd0/kudu/tserver/wal
uuid: "89c5dd62ad734d54b7d25bc2d52263d3"
format_stamp: "Formatted at 2018-03-12 07:20:41 on kudu14.lt.163.org"
I0109 13:43:06.445729 160217 fs_report.cc:352] FS layout report

wal directory: /mnt/dfs/ssd0/kudu/tserver/wal
metadata directory: /mnt/dfs/0/kudu/tserver/data
11 data directories: /mnt/dfs/0/kudu/tserver/data/data, 
/mnt/dfs/1/kudu/tserver/data/data, /mnt/dfs/2/kudu/tserver/data/data, 
/mnt/dfs/3/kudu/tserver/data/data, /mnt/dfs/4/kudu/tserver/data/data, 
/mnt/dfs/5/kudu/tserver/data/data, /mnt/dfs/6/kudu/tserver/data/data, 
/mnt/dfs/7/kudu/tserver/data/data, /mnt/dfs/8/kudu/tserver/data/data, 
/mnt/dfs/9/kudu/tserver/data/data, /mnt/dfs/10/kudu/tserver/data/data
Total live blocks: 23590554
Total live bytes: 1449771979998
Total live bytes (after alignment): 1529197359104
Total number of LBM containers: 206682 (147 full)
Did not check for missing blocks
Did not check for orphaned blocks
Total full LBM containers with extra space: 0 (0 repaired)
Total full LBM container extra space in bytes: 0 (0 repaired)
Total incomplete LBM containers: 0 (0 repaired)
Total LBM partial records: 0 (0 repaired)
I0109 13:43:06.471539 160217 env_posix.cc:1676] Not raising this process' 
running threads per effective uid limit of 1033414; it is already as high as it 
can go
I0109 13:43:06.479038 160217 ts_tablet_manager.cc:344] Loading tablet metadata 
(0/1989 complete)
--
So the performance implications are limited.
Below is the part of perf report of step 3:
   1.99%  data dir 9 [wor  kudu-tserver.2   [.] 
kudu::fs::LogBlockManager::AddLogBlockUnlocked(scoped_refptr)
   ◆
   0.59%  data dir 9 [wor  [kernel.kallsyms][k] 
copy_user_enhanced_fast_string  
  ?
   

[kudu-CR] KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

2019-01-08 Thread Andrew Wong (Code Review)
Andrew Wong has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/12166 )

Change subject: KUDU-2652: deflake 
TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks
..

KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

The test waits for a write workload to generate some orphaned blocks.
With the default write pattern, this could sometimes take a while and
cause the test to hit an error. This patch makes orphaned block
generation faster by making the workload update a single row.

Before this, I looped the test in debug mode with 32 stress threads and
it failed 15/100 times. With the fix, this passed 1000/1000.

Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
Reviewed-on: http://gerrit.cloudera.org:8080/12166
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
Reviewed-by: Mike Percy 
---
M src/kudu/integration-tests/ts_recovery-itest.cc
1 file changed, 3 insertions(+), 0 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
Gerrit-Change-Number: 12166
Gerrit-PatchSet: 3
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] KUDU-2195. Add additional gflag to force sync of consensus metadata

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12186 )

Change subject: KUDU-2195. Add additional gflag to force sync of consensus 
metadata
..


Patch Set 1: Code-Review+2

Seems harmless enough.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I73212d1670a33479cce7d9ef9ee61cfe9b00cdd3
Gerrit-Change-Number: 12186
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Wed, 09 Jan 2019 05:45:53 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2636: LBM supports deleting dead and full containers

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12075 )

Change subject: KUDU-2636: LBM supports deleting dead and full containers
..


Patch Set 11:

(3 comments)

> And here are another three comments, may i fix them?

Go ahead. I agree with your first comment, disagree with the second, and don't 
care either way on the third.

http://gerrit.cloudera.org:8080/#/c/12075/11/src/kudu/fs/log_block_manager.cc
File src/kudu/fs/log_block_manager.cc:

http://gerrit.cloudera.org:8080/#/c/12075/11/src/kudu/fs/log_block_manager.cc@679
PS11, Line 679: 
CONTAINER_DISK_FAILURE(block_manager_->env_->SyncDir(data_dir_->dir()),
> Still, i think it wastes IO to call 'SyncDir' after file deletion. The rogu
Now that we're calling SyncDir for each deleted container instead of just once 
after Repair(), I agree.


http://gerrit.cloudera.org:8080/#/c/12075/11/src/kudu/fs/log_block_manager.cc@2452
PS11, Line 2452: string data_filename = StrCat(container->ToString(), 
kContainerDataFileSuffix);
   :   uint64_t reported_size;
   :   s = env_->GetFileSizeOnDisk(data_filename, 
_size);
   :   if (!s.ok()) {
   : HANDLE_DISK_FAILURE(s, 
error_manager_->RunErrorNotificationCb(
   : ErrorHandlerType::DISK_ERROR, dir));
   : *result_status = s.CloneAndPrepend(Substitute(
   : "Could not get on-disk file size of container $0", 
container->ToString()));
   : return;
   :   }
   :   int64_t cleanup_threshold_size = 
container->live_bytes_aligned() *
   :   (1 + 
FLAGS_log_container_excess_space_before_cleanup_fraction);
   :   if (reported_size > cleanup_threshold_size) {
   : 
local_report.full_container_space_check->entries.emplace_back(
   : container->ToString(), reported_size - 
container->live_bytes_aligned());
   :
   : // If the container is to be deleted outright, don't 
bother repunching
   : // its blocks. The report entry remains, however, so 
it's clear that
   : // there was a space discrepancy.
   : if (container->live_blocks()) {
   :   need_repunching.insert(need_repunching.end(),
   :  dead_blocks.begin(), 
dead_blocks.end());
   : }
   :   }
> It's not necessary to clean up threshold size for a dead container, though
True, although the FsReport we generate tries to account for all 
inconsistencies even if they're cleaned up by deleting containers. Plus 
GetFileSizeOnDisk isn't particularly expensive.


http://gerrit.cloudera.org:8080/#/c/12075/11/src/kudu/fs/log_block_manager.cc@2514
PS11, Line 2514:   AddNewContainerUnlocked(container);
   :   MakeContainerAvailableUnlocked(std::move(container));
> It's a little bit strange to add the dead containers here and then remove t
Yeah but it's simpler in that all containers are treated the same way.

If you like, you could change the plumbing and avoid adding dead containers; 
when I updated your patch it felt a little bit out of scope for me so I didn't 
do it.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7d3672ae3c3dd9acd489120d653c44a641537f10
Gerrit-Change-Number: 12075
Gerrit-PatchSet: 11
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 09 Jan 2019 05:32:39 +
Gerrit-HasComments: Yes


[kudu-CR] tablet: clean up MergeIterState API

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12176 )

Change subject: tablet: clean up MergeIterState API
..


Patch Set 4: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie3f821dc06ddbe3f7ef018eec15b1993cde7e7e0
Gerrit-Change-Number: 12176
Gerrit-PatchSet: 4
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Wed, 09 Jan 2019 05:33:05 +
Gerrit-HasComments: No


[kudu-CR] rpc: add TCP socket statistics to /rpcz

2019-01-08 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12184 )

Change subject: rpc: add TCP socket statistics to /rpcz
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12184/1/src/kudu/rpc/reactor.h
File src/kudu/rpc/reactor.h:

http://gerrit.cloudera.org:8080/#/c/12184/1/src/kudu/rpc/reactor.h@152
PS1, Line 152: DumpRunningRpcs
should probably rename this and related calls



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I552c9dd80c0730ccd6bf7b13bb63761744a854c2
Gerrit-Change-Number: 12184
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Michael Ho 
Gerrit-Reviewer: Philip Zeyliger 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Wed, 09 Jan 2019 04:35:25 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2636: LBM supports deleting dead and full containers

2019-01-08 Thread helifu (Code Review)
helifu has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12075 )

Change subject: KUDU-2636: LBM supports deleting dead and full containers
..


Patch Set 11:

(3 comments)

Thank you very much :)
And here are another three comments, may i fix them?

http://gerrit.cloudera.org:8080/#/c/12075/11/src/kudu/fs/log_block_manager.cc
File src/kudu/fs/log_block_manager.cc:

http://gerrit.cloudera.org:8080/#/c/12075/11/src/kudu/fs/log_block_manager.cc@679
PS11, Line 679: 
CONTAINER_DISK_FAILURE(block_manager_->env_->SyncDir(data_dir_->dir()),
Still, i think it wastes IO to call 'SyncDir' after file deletion. The rogue 
admin should be responsible for his operations. Besides, for the kudu newbee, 
it will bring barriers while rebooting the kudu cluster. Anyway, that's only my 
opinion.


http://gerrit.cloudera.org:8080/#/c/12075/11/src/kudu/fs/log_block_manager.cc@2452
PS11, Line 2452: string data_filename = StrCat(container->ToString(), 
kContainerDataFileSuffix);
   :   uint64_t reported_size;
   :   s = env_->GetFileSizeOnDisk(data_filename, 
_size);
   :   if (!s.ok()) {
   : HANDLE_DISK_FAILURE(s, 
error_manager_->RunErrorNotificationCb(
   : ErrorHandlerType::DISK_ERROR, dir));
   : *result_status = s.CloneAndPrepend(Substitute(
   : "Could not get on-disk file size of container $0", 
container->ToString()));
   : return;
   :   }
   :   int64_t cleanup_threshold_size = 
container->live_bytes_aligned() *
   :   (1 + 
FLAGS_log_container_excess_space_before_cleanup_fraction);
   :   if (reported_size > cleanup_threshold_size) {
   : 
local_report.full_container_space_check->entries.emplace_back(
   : container->ToString(), reported_size - 
container->live_bytes_aligned());
   :
   : // If the container is to be deleted outright, don't 
bother repunching
   : // its blocks. The report entry remains, however, so 
it's clear that
   : // there was a space discrepancy.
   : if (container->live_blocks()) {
   :   need_repunching.insert(need_repunching.end(),
   :  dead_blocks.begin(), 
dead_blocks.end());
   : }
   :   }
It's not necessary to clean up threshold size for a dead container, though the 
number of the dead containers is very limited(we know that the dead containers 
will be deleted automatically at the runtime).


http://gerrit.cloudera.org:8080/#/c/12075/11/src/kudu/fs/log_block_manager.cc@2514
PS11, Line 2514:   AddNewContainerUnlocked(container);
   :   MakeContainerAvailableUnlocked(std::move(container));
It's a little bit strange to add the dead containers here and then remove them 
in the 'Repair()'. Maybe we could do something at Line2386.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7d3672ae3c3dd9acd489120d653c44a641537f10
Gerrit-Change-Number: 12075
Gerrit-PatchSet: 11
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 09 Jan 2019 03:22:22 +
Gerrit-HasComments: Yes


[kudu-CR] Reduce severity of "Error trying to read ahead of the log" log message

2019-01-08 Thread Mike Percy (Code Review)
Mike Percy has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12185 )

Change subject: Reduce severity of "Error trying to read ahead of the log" log 
message
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib841a52354e5c71450f3e364ab2fdee51ce2adb4
Gerrit-Change-Number: 12185
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Wed, 09 Jan 2019 02:44:38 +
Gerrit-HasComments: No


[kudu-CR] tablet: clean up MergeIterState API

2019-01-08 Thread Mike Percy (Code Review)
Hello Kudu Jenkins, Adar Dembo,

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

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

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

Change subject: tablet: clean up MergeIterState API
..

tablet: clean up MergeIterState API

This patch simply adds documentation and some readability cleanup to
MergeIterState, which is a helper class for the MergeIterator.

Non-API changes:
 - Add API docs to all public methods.
 - Extract the implementation of Advance() and PullNextBlock() out of
   the class declaration to make the API contract easier to quickly read
   and understand.
 - Rename a couple of private variables to clarify row-oriented
 semantics.

API cleanup:
 - Add a public Init() method that delegates to PullNextBlock().
 - Make PullNextBlock() and IsBlockExhausted() private methods.
 - Replace exposure of the underlying iterator via iter() with a public
   AddStats() method, since stats collection was the only use of iter().

There are no functional changes in this patch.

Change-Id: Ie3f821dc06ddbe3f7ef018eec15b1993cde7e7e0
---
M src/kudu/common/generic_iterators.cc
1 file changed, 89 insertions(+), 64 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie3f821dc06ddbe3f7ef018eec15b1993cde7e7e0
Gerrit-Change-Number: 12176
Gerrit-PatchSet: 4
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] tablet: clean up MergeIterState API

2019-01-08 Thread Mike Percy (Code Review)
Mike Percy has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12176 )

Change subject: tablet: clean up MergeIterState API
..


Patch Set 3:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12176/3/src/kudu/common/generic_iterators.cc
File src/kudu/common/generic_iterators.cc:

http://gerrit.cloudera.org:8080/#/c/12176/3/src/kudu/common/generic_iterators.cc@126
PS3, Line 126:   // Exposed for optimization purposes.
> I don't understand this part. We use remaining_in_block() to resize the cli
Oops, I thought it was just a reservation. I'll just remove this line.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie3f821dc06ddbe3f7ef018eec15b1993cde7e7e0
Gerrit-Change-Number: 12176
Gerrit-PatchSet: 3
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Wed, 09 Jan 2019 01:52:02 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2195. Add additional gflag to force sync of consensus metadata

2019-01-08 Thread Mike Percy (Code Review)
Hello Alexey Serbin, Adar Dembo, Todd Lipcon,

I'd like you to do a code review. Please visit

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

to review the following change.


Change subject: KUDU-2195. Add additional gflag to force sync of consensus 
metadata
..

KUDU-2195. Add additional gflag to force sync of consensus metadata

This patch adds an override gflag for consensus metadata fsync so that
XFS users are less likely to lose their consensus metadata files while
voting right before a power outage.

Change-Id: I73212d1670a33479cce7d9ef9ee61cfe9b00cdd3
---
M src/kudu/consensus/consensus_meta.cc
1 file changed, 10 insertions(+), 1 deletion(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I73212d1670a33479cce7d9ef9ee61cfe9b00cdd3
Gerrit-Change-Number: 12186
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

2019-01-08 Thread Mike Percy (Code Review)
Mike Percy has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12166 )

Change subject: KUDU-2652: deflake 
TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
Gerrit-Change-Number: 12166
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Wed, 09 Jan 2019 00:45:53 +
Gerrit-HasComments: No


[kudu-CR] [gutil] suppress -Wdeprecated-declarations warning on macOS

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/12183 )

Change subject: [gutil] suppress -Wdeprecated-declarations warning on macOS
..

[gutil] suppress -Wdeprecated-declarations warning on macOS

As it turned out, most of the atomic functions used in
atomicops-internals-macosx.h have been declared deprecated since
macOS 10.12, most of the functions in the SASL API are deprecated
since macOS 10.11, and the krb5 API is deprecated in favor
of GSS.framework.

To avoid multiple compilation warnings on macOS while compiling
with clang from the Xcode development environment, this changelist adds
'pragma GCC diagnostic push/pop' for the '-Wdeprecated-declarations'
flag accordingly.  It's confirmed that this patch suppresses
deprecation warnings at least on macOS 10.14.

This is a follow-up to 678dbac6fb05d0370e40e6645d4b1ec530fa0180.

Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
Reviewed-on: http://gerrit.cloudera.org:8080/12183
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
---
M src/kudu/gutil/atomicops-internals-macosx.h
M src/kudu/rpc/client_negotiation.cc
M src/kudu/rpc/negotiation-test.cc
M src/kudu/rpc/sasl_common.cc
M src/kudu/rpc/sasl_common.h
M src/kudu/rpc/server_negotiation.cc
M src/kudu/security/init.cc
M src/kudu/thrift/sasl_client_transport.cc
8 files changed, 85 insertions(+), 0 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
Gerrit-Change-Number: 12183
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] KUDU-2195 (part 1): always sync PBC-format metadata files

2019-01-08 Thread Mike Percy (Code Review)
Mike Percy has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/9043 )

Change subject: KUDU-2195 (part 1): always sync PBC-format metadata files
..


Patch Set 1:

This was recently seen in the wild again. Usually it's people running XFS that 
experience a power outage who see 0-length cmeta files. We should consider 
adding a gflag for just the cmeta files so that people running with XFS have a 
band-aid.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4f0c911662b2ff35fcf3915790248ba85bf6026f
Gerrit-Change-Number: 9043
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Wed, 09 Jan 2019 00:38:21 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12166 )

Change subject: KUDU-2652: deflake 
TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
Gerrit-Change-Number: 12166
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Wed, 09 Jan 2019 00:23:33 +
Gerrit-HasComments: No


[kudu-CR] [gutil] suppress -Wdeprecated-declarations warning on macOS

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12183 )

Change subject: [gutil] suppress -Wdeprecated-declarations warning on macOS
..


Patch Set 3: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
Gerrit-Change-Number: 12183
Gerrit-PatchSet: 3
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 09 Jan 2019 00:27:23 +
Gerrit-HasComments: No


[kudu-CR] [gutil] suppress -Wdeprecated-declarations warning on macOS

2019-01-08 Thread Alexey Serbin (Code Review)
Hello Will Berkeley, Tidy Bot, Kudu Jenkins, Adar Dembo,

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

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

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

Change subject: [gutil] suppress -Wdeprecated-declarations warning on macOS
..

[gutil] suppress -Wdeprecated-declarations warning on macOS

As it turned out, most of the atomic functions used in
atomicops-internals-macosx.h have been declared deprecated since
macOS 10.12, most of the functions in the SASL API are deprecated
since macOS 10.11, and the krb5 API is deprecated in favor
of GSS.framework.

To avoid multiple compilation warnings on macOS while compiling
with clang from the Xcode development environment, this changelist adds
'pragma GCC diagnostic push/pop' for the '-Wdeprecated-declarations'
flag accordingly.  It's confirmed that this patch suppresses
deprecation warnings at least on macOS 10.14.

This is a follow-up to 678dbac6fb05d0370e40e6645d4b1ec530fa0180.

Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
---
M src/kudu/gutil/atomicops-internals-macosx.h
M src/kudu/rpc/client_negotiation.cc
M src/kudu/rpc/negotiation-test.cc
M src/kudu/rpc/sasl_common.cc
M src/kudu/rpc/sasl_common.h
M src/kudu/rpc/server_negotiation.cc
M src/kudu/security/init.cc
M src/kudu/thrift/sasl_client_transport.cc
8 files changed, 85 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
Gerrit-Change-Number: 12183
Gerrit-PatchSet: 3
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] Reduce severity of "Error trying to read ahead of the log" log message

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12185 )

Change subject: Reduce severity of "Error trying to read ahead of the log" log 
message
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ib841a52354e5c71450f3e364ab2fdee51ce2adb4
Gerrit-Change-Number: 12185
Gerrit-PatchSet: 2
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Wed, 09 Jan 2019 00:23:59 +
Gerrit-HasComments: No


[kudu-CR] [gutil] suppress -Wdeprecated-declarations on macOS >= 10.12

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

Change subject: [gutil] suppress -Wdeprecated-declarations on macOS >= 10.12
..


Patch Set 2: Code-Review+2

Confirmed it eliminates the warnings on macOS 10.14.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
Gerrit-Change-Number: 12183
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 09 Jan 2019 00:15:06 +
Gerrit-HasComments: No


[kudu-CR] [gutil] suppress -Wdeprecated-declarations on macOS >= 10.12

2019-01-08 Thread Alexey Serbin (Code Review)
Hello Will Berkeley, Tidy Bot, Kudu Jenkins, Adar Dembo,

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

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

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

Change subject: [gutil] suppress -Wdeprecated-declarations on macOS >= 10.12
..

[gutil] suppress -Wdeprecated-declarations on macOS >= 10.12

As it turned out, most of the atomic operations functions
declared in atomicops-internals-macosx.h have been declared
deprecated since macOS 10.12, most of the functions in the
SASL API are deprecated since macOS 10.11, and krb5 API
is deprecated in favor to GSS.framework.

This changelist adds 'pragma GCC diagnostic push/pop' for
the '-Wdeprecated-declarations' flag accordingly.

This is a follow-up to 678dbac6fb05d0370e40e6645d4b1ec530fa0180.

Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
---
M src/kudu/gutil/atomicops-internals-macosx.h
M src/kudu/rpc/client_negotiation.cc
M src/kudu/rpc/negotiation-test.cc
M src/kudu/rpc/sasl_common.cc
M src/kudu/rpc/sasl_common.h
M src/kudu/rpc/server_negotiation.cc
M src/kudu/security/init.cc
M src/kudu/thrift/sasl_client_transport.cc
8 files changed, 83 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
Gerrit-Change-Number: 12183
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] Reduce severity of "Error trying to read ahead of the log" log message

2019-01-08 Thread Will Berkeley (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo,

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

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

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

Change subject: Reduce severity of "Error trying to read ahead of the log" log 
message
..

Reduce severity of "Error trying to read ahead of the log" log message

In clusters under load, it is typical to see the ERROR log dominated by
messages like the following:

E1221 09:09:13.869918 143384 consensus_queue.cc:440] T 
1d030514317942ec9d7796a8a029dace P a4eea0affa4545879c8988b24d8cb2bb [LEADER]: 
Error trying to read ahead of the log while preparing peer request: Incomplete: 
Op with index 6620 is ahead of the local log (next sequential op: 6620). 
Destination peer: Peer: c0a2e34b708845efb8f090459815272c, Is new: false, Last 
received: 2995.6619, Next index: 6621, Last known committed idx: 6620, Last 
exchange result: ERROR, Needs tablet copy: false

This message is logged at the error level, and looks a little bit scary,
but it is in fact harmless. Here's what happens:

1. A leader neglects its duties and the followers elect a new leader.
2. The new leader manages to replicate more ops (usually just the NO_OP
   asserting leadership).
3. The leader of the previous term tries to replicate an op to a peer in
   the new term.
4. From the response, it founds out that
   a. It is in an earlier term, so it should step down and increment its
  term.
   b. The last op the peer saw is (leader's index + k) for some k > 0
  (usually k = 1). So the leader will attempt to send up ops of
  index up through (leader's index + k).
5. The term change is asynchronous, and before it happens the leader
   tries to prepare a new request to the peer whose log is ahead of the
   local log. This causes the ERROR message.
6. The term change happens. The leader steps down, and life goes on.

Note that the leader should also have received a VoteRequest with the
new term and an UpdateConsensus with the new term from the leader. In
general, this message appears only when the leader is under enough
stress to lose its leadership and be unable to service some consensus
RPCs in a timely manner. It is not in an of itself a problem, and it's a
decent indicator of stress on the leader, so I am leaving the message
but downgrading it to INFO level.

See KUDU-1078 for more information about this situation, especially its
previous causes (which were at one time actually harmful).

Change-Id: Ib841a52354e5c71450f3e364ab2fdee51ce2adb4
---
M src/kudu/consensus/consensus_queue.cc
1 file changed, 6 insertions(+), 5 deletions(-)


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

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


[kudu-CR] Reduce severity of "Error trying to read ahead of the log" log message

2019-01-08 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12185


Change subject: Reduce severity of "Error trying to read ahead of the log" log 
message
..

Reduce severity of "Error trying to read ahead of the log" log message

In clusters under load, it is typical to see the ERROR log dominated by
messages like the following:

E1221 09:09:13.869918 143384 consensus_queue.cc:440] T 
1d030514317942ec9d7796a8a029dace P a4eea0affa4545879c8988b24d8cb2bb [LEADER]: 
Error trying to read ahead of the log while preparing peer request: Incomplete: 
Op with index 6620 is ahead of the local log (next sequential op: 6620). 
Destination peer: Peer: c0a2e34b708845efb8f090459815272c, Is new: false, Last 
received: 2995.6619, Next index: 6621, Last known committed idx: 6620, Last 
exchange result: ERROR, Needs tablet copy: false

This message is logged at the error level, and looks a little bit scary,
but it is in fact harmless. Here's what happens:

1. A leader neglects its duties and the followers elect a new leader.
2. The new leader manages to replicate more ops (usually just the NO_OP
   asserting leadership).
3. The leader of the previous term tries to replicate an op to a peer in
   the new term.
4. From the response, it founds out that
   a. It is in an earlier term, so it should step down and increment its
  term.
   b. The next op the peer expects is (leader's index + k) for some k >
   0 (usually k = 1).
5. The term change is asynchronous, and before it happens the leader
   tries to prepare a new request to the peer whose log is ahead of the
   local log. This causes the ERROR message.
6. The term change happens. The leader steps down, and life goes on.

Note that the leader should also have received a VoteRequest with the
new term and an UpdateConsensus with the new term from the leader. In
general, this message appears only when the leader is under enough
stress to lose its leadership and be unable to service some consensus
RPCs in a timely manner. It is not in an of itself a problem, and it's a
decent indicator of stress on the leader, so I am leaving the message
but downgrading it to INFO level.

See KUDU-1078 for more information about this situation, especially its
previous causes (which were at one time actually harmful).

Change-Id: Ib841a52354e5c71450f3e364ab2fdee51ce2adb4
---
M src/kudu/consensus/consensus_queue.cc
1 file changed, 6 insertions(+), 5 deletions(-)



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

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


[kudu-CR] KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

2019-01-08 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12166 )

Change subject: KUDU-2652: deflake 
TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks
..


Patch Set 2:

(2 comments)

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

http://gerrit.cloudera.org:8080/#/c/12166/1//COMMIT_MSG@11
PS1, Line 11: This patch makes orphaned block
: generation faster by making the workload update a single row.
> I would also suspect Will's compaction changes; I wonder if flushing outstr
>Hmm, why is this obviously faster?
The default is a random write workload, no a sequential one. It's a bit harder 
to reason about what the rowsets look like, but I'd expect either sequential 
writes or single-row-updates to definitely generate orphaned blocks.

>I also wonder why this surfaced just now.
I actually just saw this fail in a Cloudera-internal 1.8 build, so I don't 
think the flakiness was introduced by the recent compaction policy changes.


http://gerrit.cloudera.org:8080/#/c/12166/1/src/kudu/integration-tests/ts_recovery-itest.cc
File src/kudu/integration-tests/ts_recovery-itest.cc:

http://gerrit.cloudera.org:8080/#/c/12166/1/src/kudu/integration-tests/ts_recovery-itest.cc@257
PS1, Line 257: // We want to generate orphaned blocks, so use a workload 
that we expect to
> I think the explanation is that we end up generating lots of (major and/or
Done, yes.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
Gerrit-Change-Number: 12166
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 08 Jan 2019 23:48:40 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

2019-01-08 Thread Andrew Wong (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo,

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

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

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

Change subject: KUDU-2652: deflake 
TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks
..

KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

The test waits for a write workload to generate some orphaned blocks.
With the default write pattern, this could sometimes take a while and
cause the test to hit an error. This patch makes orphaned block
generation faster by making the workload update a single row.

Before this, I looped the test in debug mode with 32 stress threads and
it failed 15/100 times. With the fix, this passed 1000/1000.

Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
---
M src/kudu/integration-tests/ts_recovery-itest.cc
1 file changed, 3 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
Gerrit-Change-Number: 12166
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 


[kudu-CR] KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

2019-01-08 Thread Mike Percy (Code Review)
Mike Percy has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12166 )

Change subject: KUDU-2652: deflake 
TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks
..


Patch Set 1:

(1 comment)

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

http://gerrit.cloudera.org:8080/#/c/12166/1//COMMIT_MSG@11
PS1, Line 11: This patch makes orphaned block
: generation faster by making the workload update a single row.
> Hmm, why is this obviously faster? Updating one row over and over means we'
I would also suspect Will's compaction changes; I wonder if flushing outstrips 
the merge compactions in the old scenario now.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
Gerrit-Change-Number: 12166
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 08 Jan 2019 23:40:57 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2652: deflake TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks

2019-01-08 Thread Mike Percy (Code Review)
Mike Percy has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12166 )

Change subject: KUDU-2652: deflake 
TsRecoveryITest.TestNoBlockIDReuseIfMissingBlocks
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12166/1/src/kudu/integration-tests/ts_recovery-itest.cc
File src/kudu/integration-tests/ts_recovery-itest.cc:

http://gerrit.cloudera.org:8080/#/c/12166/1/src/kudu/integration-tests/ts_recovery-itest.cc@257
PS1, Line 257: 
write_workload->set_write_pattern(TestWorkload::UPDATE_ONE_ROW);
> Should add a comment here explaining why we're using this.
I think the explanation is that we end up generating lots of (major and/or 
minor) delta compactions, right?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I24a689702d29a744be8c113fedafec0307a90b1c
Gerrit-Change-Number: 12166
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 08 Jan 2019 23:39:23 +
Gerrit-HasComments: Yes


[kudu-CR] rpc: add TCP socket statistics to /rpcz

2019-01-08 Thread Todd Lipcon (Code Review)
Hello Michael Ho, Alexey Serbin,

I'd like you to do a code review. Please visit

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

to review the following change.


Change subject: rpc: add TCP socket statistics to /rpcz
..

rpc: add TCP socket statistics to /rpcz

This adds the ability to fetch various bits of socket-level information
for each RPC connection and publish the info into /rpcz. The information
itself is fetched using getsockopt(TCP_INFO) as well as ioctls to check
the current send and receive queue lengths.

This data can help resolve whether a use case is network bound or bound
by the application itself. For example, a high number of retransmitted
packets can indicate that the network path to the receiver is
overloaded.

Eventually we may want to expose some of this information on a per-call
basis. However, doing so is quite tricky, since 'send()' completes when
the data has been placed into the outbound packet queue and doesn't wait
until the data is ACKed. We'd need to defer checking for retransmissions
until all of the data has been ACKed, which is at some indeterminate
point in the future. The very newest kernels allow subscribing to such
notifications (along with lots of interesting stats) but, given none of
that is available in el7, it's probably not worth tackling at this
point.

Change-Id: I552c9dd80c0730ccd6bf7b13bb63761744a854c2
---
M src/kudu/rpc/connection.cc
M src/kudu/rpc/connection.h
M src/kudu/rpc/inbound_call.cc
M src/kudu/rpc/inbound_call.h
M src/kudu/rpc/messenger.cc
M src/kudu/rpc/messenger.h
M src/kudu/rpc/outbound_call.cc
M src/kudu/rpc/outbound_call.h
M src/kudu/rpc/reactor.cc
M src/kudu/rpc/reactor.h
M src/kudu/rpc/rpc-test.cc
M src/kudu/rpc/rpc_introspection.proto
M src/kudu/rpc/rpc_stub-test.cc
M src/kudu/server/rpcz-path-handler.cc
14 files changed, 299 insertions(+), 37 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I552c9dd80c0730ccd6bf7b13bb63761744a854c2
Gerrit-Change-Number: 12184
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Michael Ho 


[kudu-CR] [test] dos2unix for rowset tree-test

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/12182 )

Change subject: [test] dos2unix for rowset_tree-test
..

[test] dos2unix for rowset_tree-test

This patch converts DOS-style line breaks into Unix-like ones in
src/kudu/tablet/rowset_tree-test.cc

This changelist does not contain any functional changes.

Change-Id: I212a5523f48bf305d53e471300d20b7eed932deb
Reviewed-on: http://gerrit.cloudera.org:8080/12182
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M src/kudu/tablet/rowset_tree-test.cc
1 file changed, 38 insertions(+), 38 deletions(-)

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

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

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


[kudu-CR] [gutil] suppress -Wdeprecated-declarations on macOS >= 10.12

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12183 )

Change subject: [gutil] suppress -Wdeprecated-declarations on macOS >= 10.12
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
Gerrit-Change-Number: 12183
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 23:01:59 +
Gerrit-HasComments: No


[kudu-CR] [test] dos2unix for rowset tree-test

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12182 )

Change subject: [test] dos2unix for rowset_tree-test
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I212a5523f48bf305d53e471300d20b7eed932deb
Gerrit-Change-Number: 12182
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 08 Jan 2019 23:00:29 +
Gerrit-HasComments: No


[kudu-CR] [gutil] suppress -Wdeprecated-declarations on macOS >= 10.12

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12183


Change subject: [gutil] suppress -Wdeprecated-declarations on macOS >= 10.12
..

[gutil] suppress -Wdeprecated-declarations on macOS >= 10.12

As it turned out, most of the atomic operations functions
declared in atomicops-internals-macosx.h have been declared
deprecated at at 10.12 and higher.

This changelist adds 'pragma GCC diagnostic push/pop' for
the '-Wdeprecated-declarations' flag accordingly.

This is a follow-up to 678dbac6fb05d0370e40e6645d4b1ec530fa0180.

Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
---
M src/kudu/gutil/atomicops-internals-macosx.h
1 file changed, 5 insertions(+), 0 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I82b0ebd9917a567d1a8b72c80b47dc102304d860
Gerrit-Change-Number: 12183
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 


[kudu-CR] [tools] Add table scan tool

2019-01-08 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12167 )

Change subject: [tools] Add table scan tool
..


Patch Set 4:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/tool_action_table.cc
File src/kudu/tools/tool_action_table.cc:

http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/tool_action_table.cc@81
PS4, Line 81: '[', '(', '=', ')' or ']'"
> I find these really confusing. For example, in the sample from the help mes
yea, I was thinking the same thing -- rather than inventing a new syntax, I 
think a JSON representation of a parsed expression (AST-alike) would be much 
easier to reason about. Plus, we don't need to worry about implementing a 
parser :)

For example, ["and", ["<", "key", 123], ["notnull", "col2"]]. It sort of ends 
up being a lisp dialect, proving out Greenspun's tenth rule



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ieac340b70a9eaf131f82a2b7d61336211d1d48f8
Gerrit-Change-Number: 12167
Gerrit-PatchSet: 4
Gerrit-Owner: Yingchun Lai <405403...@qq.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 22:22:43 +
Gerrit-HasComments: Yes


[kudu-CR] [test] dos2unix for rowset tree-test

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12182


Change subject: [test] dos2unix for rowset_tree-test
..

[test] dos2unix for rowset_tree-test

This patch converts DOS-style line breaks into Unix-like ones in
src/kudu/tablet/rowset_tree-test.cc

This changelist does not contain any functional changes.

Change-Id: I212a5523f48bf305d53e471300d20b7eed932deb
---
M src/kudu/tablet/rowset_tree-test.cc
1 file changed, 38 insertions(+), 38 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I212a5523f48bf305d53e471300d20b7eed932deb
Gerrit-Change-Number: 12182
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12178 )

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..


Patch Set 4: Code-Review+1


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 4
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 08 Jan 2019 22:20:31 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Andrew Wong (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/12178

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

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..

KUDU-2656: pass IOContext to ValidateDeltaOrder

Previously, checksum errors that occurred during calls to the debug-only
function ValidateDeltaOrder() would lead to a DCHECK failure. This patch
plumbs an IOContext to these calls to avoid this and adds a regression
test for such cases.

Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
---
M src/kudu/tablet/delta_compaction.cc
M src/kudu/tablet/delta_tracker.cc
M src/kudu/tablet/delta_tracker.h
M src/kudu/tablet/major_delta_compaction-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
6 files changed, 60 insertions(+), 13 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 4
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Andrew Wong (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/12178

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

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..

KUDU-2656: pass IOContext to ValidateDeltaOrder

Previously, checksum errors that occurred during calls to the debug-only
function ValidateDeltaOrder() would lead to a DCHECK failure. This patch
plumbs an IOContext to these calls to avoid this and adds a regression
test for such cases.

Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
---
M src/kudu/tablet/delta_compaction.cc
M src/kudu/tablet/delta_tracker.cc
M src/kudu/tablet/delta_tracker.h
M src/kudu/tablet/major_delta_compaction-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
6 files changed, 59 insertions(+), 13 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 3
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12178 )

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..


Patch Set 4:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/delta_tracker.cc
File src/kudu/tablet/delta_tracker.cc:

http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/delta_tracker.cc@207
PS2, Line 207: #ifndef NDEBUG
 : Status DeltaTracker::ValidateDeltaOrder(const 
std::shared_ptr& first,
 : const 
std::shared_ptr& second,
 : const IOContext* 
io_context,
 : DeltaType type) {
 :   shared_ptr first_copy = first;
 :   shared_ptr second_copy = second;
 :
 :   // Make clones so we don't leave the original ones initted. 
That can affect
 :   // tests. We know it's a DeltaFileReader if it's not Initted().
 :   if (!first_copy->Initted()) {
 : shared_ptr first_clone;
 : 
RETURN_NOT_OK(down_cast(first.get())->CloneForDebugging(
 : rowset_metadata_->fs_manager(), 
mem_trackers_.tablet_tracker, _clone));
 : RETURN_NOT_OK(first_clone->Init(io_context));
 : first_copy = first_clone;
 :   }
 :   if (!second_copy->Initted()) {
 : shared_ptr second_clone;
 : 
RETURN_NOT_OK(down_cast(second.get())->CloneForDebugging(
 : rowset_metadata_->fs_manager(), 
mem_trackers_.tablet_tracker, _clone));
 : RETURN_NOT_OK(second_clone->Init(io_context));
 : second_copy = second_clone;
 :   }
 :
 :   switch (type) {
 : case REDO:
 :   DCHECK_LE(first_copy->delta_stats().min_timestamp(),
 : second_copy->delta_stats().min_timestamp())
 :   << "Found out-of-order deltas: [{" << 
first_copy->ToString() << "}, {"
 :   << second_copy->ToString() << "}]: type = " << type;
 :   break;
 : case UNDO:
 :   DCHECK_GE(first_copy->delta_stats().min_timestamp(),
 : second_copy->delta_stats().min_timestamp())
 :   << "Found out-of-order deltas: [{" << 
first_copy->ToString() << "}, {"
 :   << second_copy->ToString() << "}]: type = " << type;
 :   break;
 :   }
 :   return Status::OK();
 : }
 :
 : Status DeltaTracker::ValidateDeltasOrdered(const 
SharedDeltaStoreVector& list,
 :const IOContext* 
io_context,
 :DeltaType type) {
 :   for (size_t i = 1; i < list.size(); i++) {
 : RETURN_NOT_OK(ValidateDeltaOrder(list[i - 1], list[i], 
io_context, type));
 :   }
 :
> If this is not used elsewhere but only in ifndef NDEBUG case, maybe put tho
Done


http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/major_delta_compaction-test.cc
File src/kudu/tablet/major_delta_compaction-test.cc:

http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/major_delta_compaction-test.cc@186
PS2, Line 186: const
> nit: constexpr ?
Done


http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/major_delta_compaction-test.cc@191
PS2, Line 191: .empty());
> paranoid nit: is it guaranteed that all_rowsets container is non-empty?
It should be guaranteed because we've written to the tablet, but I'll add one 
anyway.


http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/major_delta_compaction-test.cc@205
PS2, Line 205:   Status s = tablet()->DoMajorDeltaCompaction(col_ids, rs, 
_context);
> nit: maybe, add ' << s.ToString(); for easier debugging if that fails
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 4
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 08 Jan 2019 22:11:32 +
Gerrit-HasComments: Yes


[kudu-CR](gh-pages) [blog] a blogpost about location awareness in Kudu

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

Change subject: [blog] a blogpost about location awareness in Kudu
..


Patch Set 2:

(21 comments)

http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md
File _posts/2018-12-20-location-awareness.md:

http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@70
PS2, Line 70:
a


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@98
PS2, Line 98:
a


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@112
PS2, Line 112: when
where


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@114
PS2, Line 114: is
are


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@115
PS2, Line 115: a
the


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@117
PS2, Line 117:
the


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@117
PS2, Line 117: kudu
Either Kudu, or put in backticks `kudu`.


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@121
PS2, Line 121: very
Remove.


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@121
PS2, Line 121: At
In


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@122
PS2, Line 122: policies
policy


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@122
PS2, Line 122: re-establishes
reestablish


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@124
PS2, Line 124: continue to the cross-location rebalancing.
Add "phase" at the end.


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@126
PS2, Line 126: Second phase is cross-location rebalancing, i.e. moving tablet 
replicas between
"The second phase"


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@127
PS2, Line 127: location
locations


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@128
PS2, Line 128: equalizing loads of locations throughout the cluster. Use the
the


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@128
PS2, Line 128: loads
What is the load of a location?


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@132
PS2, Line 132: replica
replicas


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@132
PS2, Line 132: Third phase is intra-location rebalancing, i.e. balance tablet 
replica
The


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@133
PS2, Line 133: such
the


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@133
PS2, Line 133: distribution
Remove.


http://gerrit.cloudera.org:8080/#/c/12119/2/_posts/2018-12-20-location-awareness.md@135
PS2, Line 135:
A very quick example showing the moves for each of the three phases would be 
good. It would illustrate the three phases and the role of "load" in 
cross-location rebalancing.



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

Gerrit-Project: kudu
Gerrit-Branch: gh-pages
Gerrit-MessageType: comment
Gerrit-Change-Id: I10b30a80d5661fb889a11285b8118cdea1a87cd2
Gerrit-Change-Number: 12119
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 21:40:44 +
Gerrit-HasComments: Yes


[kudu-CR] [tools] Add table scan tool

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

Change subject: [tools] Add table scan tool
..


Patch Set 4:

(5 comments)

I left a few high-level comments, but at the top level: what is the goal of 
this tool? Is it to serve as a barebones shell, like impala-shell or MySQL 
shell? Is it meant for benchmarking scan performance?

http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/kudu-tool-test.cc
File src/kudu/tools/kudu-tool-test.cc:

http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/kudu-tool-test.cc@2316
PS4, Line 2316: TEST_F(ToolTest, TestScanTable)
This requires a lot more tests. Correctness tests should cover at least the 
following things:

1. Scanning with no predicates and no columns for just a row count (Done).
2. Scanning with each predicate and checking it gets exactly the correct rows 
(includes matching, excludes non matching).
3. Scanning with projections of one or more columns and making sure the right 
columns are returned.
4. Scanning with multiple predicates on one column.
5. Scanning with multiple predicates across different columns.


http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/tool_action_table.cc
File src/kudu/tools/tool_action_table.cc:

http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/tool_action_table.cc@18
PS4, Line 18: #include 
Prefer #include .


http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/tool_action_table.cc@76
PS4, Line 76:   "Query predicates on columns. Unlike the 
traditional"
Here and elsewhere, add "\n" to include linebreaks in the help message.


http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/tool_action_table.cc@79
PS4, Line 79: WhetherNull
I think we can call this IsNull. It's shorter.


http://gerrit.cloudera.org:8080/#/c/12167/4/src/kudu/tools/tool_action_table.cc@81
PS4, Line 81: '[', '(', '=', ')' or ']'"
I find these really confusing. For example, in the sample from the help message:

col1:[:lower;col1:]:upper;col2:@:v1,v2,v3;col3:n:NULL

My brain matches up [] pairs and wants to group together what's between them, 
so I want to interpret '[:lower;col1:]' as something meaningful when it's split 
between two predicates. Could we use friendlier symbols for the comparison 
operators? Can we just use < for <, <= for <=, etc?

Also, a few other things we ought to try and address with the syntax (or maybe 
just with documentation and help messages):

1. How can a user query for, e.g. 'KEY <= 10 AND KEY > 0'? Use two predicates?
2. Could we use = for equality and in-list predicates? E.g. 'col0:=:5' and 
'col0:=:5,6,7,8'?
3. Why do we need the ":NULL" at the end of 'col3:n:NULL'? It's easier to 
parse, for sure, but it conveys no meaning.
4. How would a user do an equality predicate on a string with a comma in it?

I think it might be a good idea to use a simple JSON syntax for the predicates. 
This gives us a defined way to handle all the different characters, at the cost 
of some verbosity.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ieac340b70a9eaf131f82a2b7d61336211d1d48f8
Gerrit-Change-Number: 12167
Gerrit-PatchSet: 4
Gerrit-Owner: Yingchun Lai <405403...@qq.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 21:30:41 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2636: LBM supports deleting dead and full containers

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12075 )

Change subject: KUDU-2636: LBM supports deleting dead and full containers
..


Patch Set 11:

I pushed a new revision with a few cleanups:
- Properly rebased on top of the "wrapped up containers in scoped_refptr" 
change.
- The few remaining DOS line endings converted to UNIX line endings.
- A few formatting/style fixes.
- The only real change was to get read_only handling right: in that case, we 
should not delete dead containers at startup. To do this I moved the call to  
TrySetDead into Repair(), and changed the container vector plumbing from 
OpenDataDir() into Repair() to pass containers by scoped_refptr instead of by 
name.

Please take a look and let me know if anything seems wrong.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7d3672ae3c3dd9acd489120d653c44a641537f10
Gerrit-Change-Number: 12075
Gerrit-PatchSet: 11
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Tue, 08 Jan 2019 20:36:23 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2636: LBM supports deleting dead and full containers

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has uploaded a new patch set (#11) to the change originally created 
by helifu. ( http://gerrit.cloudera.org:8080/12075 )

Change subject: KUDU-2636: LBM supports deleting dead and full containers
..

KUDU-2636: LBM supports deleting dead and full containers

LBM supports deleting the full containers which are dead
before hole punching. It can help to ease disk pressure,
save tserver startup time and etc. It uses the container
size and live blocks to determine whether the container
is dead or live.

Step1: wrapping up containers in scoped_refptr. [V]
Step2: supporting dead containers removal.  [V]

Change-Id: I7d3672ae3c3dd9acd489120d653c44a641537f10
---
M src/kudu/fs/log_block_manager-test.cc
M src/kudu/fs/log_block_manager.cc
M src/kudu/fs/log_block_manager.h
3 files changed, 235 insertions(+), 121 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/75/12075/11
--
To view, visit http://gerrit.cloudera.org:8080/12075
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I7d3672ae3c3dd9acd489120d653c44a641537f10
Gerrit-Change-Number: 12075
Gerrit-PatchSet: 11
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: helifu 


[kudu-CR] [fs]: wrapping up containers in scoped refptr

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has uploaded a new patch set (#6) to the change originally created 
by helifu. ( http://gerrit.cloudera.org:8080/12121 )

Change subject: [fs]: wrapping up containers in scoped_refptr
..

[fs]: wrapping up containers in scoped_refptr

It's necessary to wrap up containers in scoped_refptr
to support deleting the full containers that are dead
at runtime. Based on this, the KUDU-2636 can be fixed.

Change-Id: I3c5c620014782b3d57dcbe047d0df73c949590c7
---
M src/kudu/fs/log_block_manager-test.cc
M src/kudu/fs/log_block_manager.cc
M src/kudu/fs/log_block_manager.h
3 files changed, 129 insertions(+), 141 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3c5c620014782b3d57dcbe047d0df73c949590c7
Gerrit-Change-Number: 12121
Gerrit-PatchSet: 6
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: helifu 


[kudu-CR] Fix DOS line endings in TestServerInfo.java

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12180 )

Change subject: Fix DOS line endings in TestServerInfo.java
..


Patch Set 1: Code-Review+2

(1 comment)

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

PS1:
> In my case, the dos2unix tool doesn't see those neither.  I'm curious what
This turned out to be an artifact of how the "new" gerrit UI works in this 
version of gerrit.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id0c470ed24238e0461e96bd443f3d649e1e11acb
Gerrit-Change-Number: 12180
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: Tue, 08 Jan 2019 20:20:08 +
Gerrit-HasComments: Yes


[kudu-CR] Fix DOS line endings in TestServerInfo.java

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12180 )

Change subject: Fix DOS line endings in TestServerInfo.java
..


Patch Set 1: Code-Review+1

(1 comment)

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

PS1:
> Where do you see them? I don't see them in vim, I don't see them in Intelli
In my case, the dos2unix tool doesn't see those neither.  I'm curious what else 
it might be.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id0c470ed24238e0461e96bd443f3d649e1e11acb
Gerrit-Change-Number: 12180
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: Tue, 08 Jan 2019 19:58:17 +
Gerrit-HasComments: Yes


[kudu-CR] Fix DOS line endings in TestServerInfo.java

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

Change subject: Fix DOS line endings in TestServerInfo.java
..


Patch Set 1:

(1 comment)

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

PS1:
> Maybe gerrit is doing a bad job of visualizing this, but it looks like some
Where do you see them? I don't see them in vim, I don't see them in IntelliJ 
with "show whitespace" on.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id0c470ed24238e0461e96bd443f3d649e1e11acb
Gerrit-Change-Number: 12180
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 19:41:12 +
Gerrit-HasComments: Yes


[kudu-CR] Fix DOS line endings in TestServerInfo.java

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12180 )

Change subject: Fix DOS line endings in TestServerInfo.java
..


Patch Set 1:

(1 comment)

Maybe

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

PS1:
Maybe gerrit is doing a bad job of visualizing this, but it looks like some 
lines still have a second line end character.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id0c470ed24238e0461e96bd443f3d649e1e11acb
Gerrit-Change-Number: 12180
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 08 Jan 2019 19:07:49 +
Gerrit-HasComments: Yes


[kudu-CR] Assign locations to tablet servers and the client in Java

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12174 )

Change subject: Assign locations to tablet servers and the client in Java
..


Patch Set 4: Code-Review+1

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12174/4/java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java
File 
java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java:

http://gerrit.cloudera.org:8080/#/c/12174/4/java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java@624
PS4, Line 624:  * Adds location info that will configure how locations are 
assigned to
 :  * tablet servers and clients. Location strings should be in 
the form
 :  * 'location:number'. For example, a location info like
 :  * ["/L0:2", "/L1:1", "/L2:1"]
 :  * will assign locations to a total of four clients or 
tablet servers.
 :  * 2 tablet servers or clients will get the location '/L0' 
while one
 :  * will get location '/L1' and one will get location '/L2'.
This should probably be rewritten to account for the new 'one location at a 
time' style.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9e2c74ab12f7da187bf6e75d42a3089bc20235db
Gerrit-Change-Number: 12174
Gerrit-PatchSet: 4
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: Tue, 08 Jan 2019 19:06:17 +
Gerrit-HasComments: Yes


[kudu-CR] Support location awareness in READ CLOSEST for the Java client

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12175 )

Change subject: Support location awareness in READ_CLOSEST for the Java client
..


Patch Set 3: Code-Review+1


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ief0f07058cefd0037f4b0f7c60c8b7809dc8313f
Gerrit-Change-Number: 12175
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 
Gerrit-Comment-Date: Tue, 08 Jan 2019 19:06:59 +
Gerrit-HasComments: No


[kudu-CR] Support location awareness in READ CLOSEST for the C++ client

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12138 )

Change subject: Support location awareness in READ_CLOSEST for the C++ client
..


Patch Set 8: Code-Review+1


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I2c6bcc7479c5cf2e17cb6e368ca89a1eb7f21713
Gerrit-Change-Number: 12138
Gerrit-PatchSet: 8
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 19:05:00 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2348: In the Java client, pick a random replica when no replica is local

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

Change subject: KUDU-2348: In the Java client, pick a random replica when no 
replica is local
..


Patch Set 8:

My bad, had the wrong link in that last comment. I meant this changelist: 
https://gerrit.cloudera.org/#/c/12175/.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3d70e45d4c9532bb32223c10936b4ff8fd99
Gerrit-Change-Number: 12158
Gerrit-PatchSet: 8
Gerrit-Owner: Zhang Yifan 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Reviewer: Zhang Yifan 
Gerrit-Comment-Date: Tue, 08 Jan 2019 19:02:44 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2348: In the Java client, pick a random replica when no replica is local

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

Change subject: KUDU-2348: In the Java client, pick a random replica when no 
replica is local
..


Patch Set 8:

You might also want to take a look at https://gerrit.cloudera.org/#/c/11088/, 
which is changing the CLOSEST_REPLICA logic to also take into account locations 
(i.e. rack awareness / rack assignments).


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3d70e45d4c9532bb32223c10936b4ff8fd99
Gerrit-Change-Number: 12158
Gerrit-PatchSet: 8
Gerrit-Owner: Zhang Yifan 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: Will Berkeley 
Gerrit-Reviewer: Zhang Yifan 
Gerrit-Comment-Date: Tue, 08 Jan 2019 19:01:51 +
Gerrit-HasComments: No


[kudu-CR] Support location awareness in READ CLOSEST for the C++ client

2019-01-08 Thread Will Berkeley (Code Review)
Hello Tidy Bot, Alexey Serbin, Adar Dembo,

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

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

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

Change subject: Support location awareness in READ_CLOSEST for the C++ client
..

Support location awareness in READ_CLOSEST for the C++ client

Previously, in READ_CLOSEST, the C++ client would choose to read from a
local tablet server if possible and otherwise pick a random replica.
This changes and enhances READ_CLOSEST mode to work as follows:

1. If there is a local server, use it. If there are multiple local
   servers, choose one at random.
2. If there is a server in the same location as the client, use it. If
   there are multiple servers in the same location, choose one at
   random.
3. Otherwise, choose a server at random.

This is not a breaking change, as in the absence of locations the
behavior is consistent with what was documented before, which was only
that a local server would be chosen if possible, else a random server.

Change-Id: I2c6bcc7479c5cf2e17cb6e368ca89a1eb7f21713
---
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/client.cc
M src/kudu/client/client.h
M src/kudu/client/meta_cache.cc
M src/kudu/client/meta_cache.h
M src/kudu/integration-tests/location_assignment-itest.cc
7 files changed, 150 insertions(+), 24 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/38/12138/8
--
To view, visit http://gerrit.cloudera.org:8080/12138
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I2c6bcc7479c5cf2e17cb6e368ca89a1eb7f21713
Gerrit-Change-Number: 12138
Gerrit-PatchSet: 8
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] Fix DOS line endings in TestServerInfo.java

2019-01-08 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12180


Change subject: Fix DOS line endings in TestServerInfo.java
..

Fix DOS line endings in TestServerInfo.java

Change-Id: Id0c470ed24238e0461e96bd443f3d649e1e11acb
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java
1 file changed, 81 insertions(+), 81 deletions(-)



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

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


[kudu-CR] Assign locations to tablet servers and the client in Java

2019-01-08 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/12174

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

Change subject: Assign locations to tablet servers and the client in Java
..

Assign locations to tablet servers and the client in Java

Change-Id: I9e2c74ab12f7da187bf6e75d42a3089bc20235db
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.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/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java
A java/kudu-client/src/test/resources/assign-location.py
M java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java
M 
java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java
9 files changed, 152 insertions(+), 36 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9e2c74ab12f7da187bf6e75d42a3089bc20235db
Gerrit-Change-Number: 12174
Gerrit-PatchSet: 4
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] Support location awareness in READ CLOSEST for the Java client

2019-01-08 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/12175

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

Change subject: Support location awareness in READ_CLOSEST for the Java client
..

Support location awareness in READ_CLOSEST for the Java client

Change-Id: Ief0f07058cefd0037f4b0f7c60c8b7809dc8313f
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ReplicaSelection.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.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/TestRemoteTablet.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestTableLocationsCache.java
7 files changed, 141 insertions(+), 37 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ief0f07058cefd0037f4b0f7c60c8b7809dc8313f
Gerrit-Change-Number: 12175
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] Support location awareness in READ CLOSEST for the Java client

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

Change subject: Support location awareness in READ_CLOSEST for the Java client
..


Patch Set 2:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/12175/2/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
File java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java:

http://gerrit.cloudera.org:8080/#/c/12175/2/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java@520
PS2, Line 520:   private synchronized String getLocation() {
> I don't think you need this. Access to 'location' doesn't need to be synchr
Done


http://gerrit.cloudera.org:8080/#/c/12175/2/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java:

http://gerrit.cloudera.org:8080/#/c/12175/2/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java@220
PS2, Line 220:* @param replicaSelection replica selection mechanism to use
> Update the @param list.
Done


http://gerrit.cloudera.org:8080/#/c/12175/2/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java:

http://gerrit.cloudera.org:8080/#/c/12175/2/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java@105
PS2, Line 105: location
> Nit: maybe shorten to 'loc' to avoid the disambiguation below?
Done


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

http://gerrit.cloudera.org:8080/#/c/12175/2/java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java@218
PS2, Line 218:   static RemoteTablet getTablet(int leaderIndex, int 
localReplicaIndex, int sameLocationReplicaIndex) {
> Nit: line too long?
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ief0f07058cefd0037f4b0f7c60c8b7809dc8313f
Gerrit-Change-Number: 12175
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: Tue, 08 Jan 2019 18:58:13 +
Gerrit-HasComments: Yes


[kudu-CR] Assign locations to tablet servers and the client in Java

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

Change subject: Assign locations to tablet servers and the client in Java
..


Patch Set 3:

(10 comments)

http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
File java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java:

http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java@1884
PS3, Line 1884: final String location = tsInfoPB.getLocation();
  : return new ServerInfo(uuid, hostPort, inetAddress, 
location);
> Nit: combine
Done


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java:

http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java@49
PS3, Line 49: --
> nit: ' --' or replace with ';'
Done


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java@99
PS3, Line 99:   public String getLocation() { return location; }
> Nit: I don't think we use this "cram it all on one line" style in Java.
The IDE was visualizing the getters in the file as crammed on one line so I 
thought that was the style for them :(.


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
File java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java:

http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java@1123
PS3, Line 1123: assertEquals("", client.asyncClient.location);
> Not much of a test though because this assert is true before the listTablet
True, but it still tests that nothing changes by connecting to the master.


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java
File java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java:

PS3:
> I guess the very first version of this file was had DOS end-of-line symbols
I'll do that in a follow up. I have to redo the whole change if I do it prior 
to these changes since git calls the entire contents of the file as a conflict.


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java@1
PS3, Line 1: /**
   :  * Licensed under the Apache License, Version 2.0 (the "License");
   :  * you may not use this file except in compliance with the License.
   :  * You may obtain a copy of the License at
   :  *
   :  *   http://www.apache.org/licenses/LICENSE-2.0
   :  *
   :  * Unless required by applicable law or agreed to in writing, 
software
   :  * distributed under the License is distributed on an "AS IS" 
BASIS,
   :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
implied.
   :  * See the License for the specific language governing permissions 
and
   :  * limitations under the License. See accompanying LICENSE file.
   :  */
> nit: while you are at it, maybe unify the license header and make it commen
Done


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/test/resources/assign-location.py
File java/kudu-client/src/test/resources/assign-location.py:

PS3:
> Can you symlink this to the existing assign-location.py rather than copy it
Seems like it works.


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java
File 
java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java:

http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java@229
PS3, Line 229: getClass().getResource("/assign-location.py").getFile()
> I'm curious whether this works when tests are run using dist-test.
The precommit ran this test using dist-test, so it does!


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java@230
PS3, Line 230:   String locationMappingCmdPath = Paths.get(clusterRoot, 
"/location-assignment.state").toString();
> Nit: too long?
Done


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java@633
PS3, Line 633: public MiniKuduClusterBuilder 
addLocationInfo(Collection locations) {
> Would it be more ergonomic if this added one location at a time, as in addF
Done



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


[kudu-CR] Support location awareness in READ CLOSEST for the C++ client

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

Change subject: Support location awareness in READ_CLOSEST for the C++ client
..


Patch Set 7:

(7 comments)

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

http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/client/client-internal.cc@406
PS7, Line 406: random
> nit: does it make sense to add a TODO for the future to make use of the loc
Done


http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/client/client-internal.cc@408
PS7, Line 408:   vector local;
 :   vector same_location;
> nit: call reserve(filtered.size()) for local and same_location?
Done


http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/client/client-internal.cc@414
PS7, Line 414: const string replica_location = rts->location();
> nit: maybe, gate computing/calling this based on !client_location.empty()?
Done


http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/client/client-internal.cc@422
PS7, Line 422: rand
> Do we init random generator in the client library?  I guess my question is
After looking at this with Alexey, we think we don't seed rand(), but we should 
be. He said he would look at it as a separate changelist.


http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/integration-tests/location_assignment-itest.cc
File src/kudu/integration-tests/location_assignment-itest.cc:

http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/integration-tests/location_assignment-itest.cc@79
PS7, Line 79: ThreadSafeRandom rng(SeedRandom());
> nit: it seems TabletServerIntegrationTestBase has ThreadSafeRandom as aggre
Done


http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/integration-tests/location_assignment-itest.cc@82
PS7, Line 82: auto location = Substitute("/L$0", i);
> Now unused.
Done


http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/integration-tests/location_assignment-itest.cc@125
PS7, Line 125: // When running on Linux, the client and tablet servers each 
have their own
 : // IP in the local address space, so no tablet server will 
be considered
 : // local to the client. If there is a tablet server in the 
same location as
 : // the client, it will be the only tablet server scanned. 
Otherwise, some
 : // random tablet server will be scanned.
> nit: move this under the #if defined block below?
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I2c6bcc7479c5cf2e17cb6e368ca89a1eb7f21713
Gerrit-Change-Number: 12138
Gerrit-PatchSet: 7
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 18:58:03 +
Gerrit-HasComments: Yes


[kudu-CR] tablet: clean up MergeIterState API

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12176 )

Change subject: tablet: clean up MergeIterState API
..


Patch Set 3: Code-Review+2

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12176/3/src/kudu/common/generic_iterators.cc
File src/kudu/common/generic_iterators.cc:

http://gerrit.cloudera.org:8080/#/c/12176/3/src/kudu/common/generic_iterators.cc@126
PS3, Line 126:   // Exposed for optimization purposes.
I don't understand this part. We use remaining_in_block() to resize the 
client's RowBlock; isn't that necessary for correctness?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie3f821dc06ddbe3f7ef018eec15b1993cde7e7e0
Gerrit-Change-Number: 12176
Gerrit-PatchSet: 3
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 08 Jan 2019 18:55:16 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12178 )

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..


Patch Set 2: Code-Review+1

Nothing to add to Alexey's comments.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 08 Jan 2019 18:51:04 +
Gerrit-HasComments: No


[kudu-CR] Support location awareness in READ CLOSEST for the C++ client

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12138 )

Change subject: Support location awareness in READ_CLOSEST for the C++ client
..


Patch Set 7:

(1 comment)

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

http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/client/client-internal.cc@422
PS7, Line 422: rand
> I opened a TODO item to verify that: https://issues.apache.org/jira/browse/
I meant 'Let that be out of the scope for this changelist.'



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I2c6bcc7479c5cf2e17cb6e368ca89a1eb7f21713
Gerrit-Change-Number: 12138
Gerrit-PatchSet: 7
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 18:17:23 +
Gerrit-HasComments: Yes


[kudu-CR] Support location awareness in READ CLOSEST for the C++ client

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12138 )

Change subject: Support location awareness in READ_CLOSEST for the C++ client
..


Patch Set 7:

(1 comment)

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

http://gerrit.cloudera.org:8080/#/c/12138/7/src/kudu/client/client-internal.cc@422
PS7, Line 422: rand
> Do we init random generator in the client library?  I guess my question is
I opened a TODO item to verify that: 
https://issues.apache.org/jira/browse/KUDU-2657

I think we can about this to be out of the scope for this changelist.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I2c6bcc7479c5cf2e17cb6e368ca89a1eb7f21713
Gerrit-Change-Number: 12138
Gerrit-PatchSet: 7
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 08 Jan 2019 18:13:24 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12178 )

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..


Patch Set 2:

(4 comments)

A few nits

http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/delta_tracker.cc
File src/kudu/tablet/delta_tracker.cc:

http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/delta_tracker.cc@207
PS2, Line 207: Status DeltaTracker::ValidateDeltaOrder(const 
std::shared_ptr& first,
 : const 
std::shared_ptr& second,
 : const IOContext* 
io_context,
 : DeltaType type) {
 :   shared_ptr first_copy = first;
 :   shared_ptr second_copy = second;
 :
 :   // Make clones so we don't leave the original ones initted. 
That can affect
 :   // tests. We know it's a DeltaFileReader if it's not Initted().
 :   if (!first_copy->Initted()) {
 : shared_ptr first_clone;
 : 
RETURN_NOT_OK(down_cast(first.get())->CloneForDebugging(
 : rowset_metadata_->fs_manager(), 
mem_trackers_.tablet_tracker, _clone));
 : RETURN_NOT_OK(first_clone->Init(io_context));
 : first_copy = first_clone;
 :   }
 :   if (!second_copy->Initted()) {
 : shared_ptr second_clone;
 : 
RETURN_NOT_OK(down_cast(second.get())->CloneForDebugging(
 : rowset_metadata_->fs_manager(), 
mem_trackers_.tablet_tracker, _clone));
 : RETURN_NOT_OK(second_clone->Init(io_context));
 : second_copy = second_clone;
 :   }
 :
 :   switch (type) {
 : case REDO:
 :   DCHECK_LE(first_copy->delta_stats().min_timestamp(),
 : second_copy->delta_stats().min_timestamp())
 :   << "Found out-of-order deltas: [{" << 
first_copy->ToString() << "}, {"
 :   << second_copy->ToString() << "}]: type = " << type;
 :   break;
 : case UNDO:
 :   DCHECK_GE(first_copy->delta_stats().min_timestamp(),
 : second_copy->delta_stats().min_timestamp())
 :   << "Found out-of-order deltas: [{" << 
first_copy->ToString() << "}, {"
 :   << second_copy->ToString() << "}]: type = " << type;
 :   break;
 :   }
 :   return Status::OK();
 : }
 :
 : Status DeltaTracker::ValidateDeltasOrdered(const 
SharedDeltaStoreVector& list,
 :const IOContext* 
io_context,
 :DeltaType type) {
 :   for (size_t i = 1; i < list.size(); i++) {
 : RETURN_NOT_OK(ValidateDeltaOrder(list[i - 1], list[i], 
io_context, type));
 :   }
 :   return Status::OK();
 : }
If this is not used elsewhere but only in ifndef NDEBUG case, maybe put those 
under '#ifndef NDEBUG' as well?


http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/major_delta_compaction-test.cc
File src/kudu/tablet/major_delta_compaction-test.cc:

http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/major_delta_compaction-test.cc@186
PS2, Line 186: const
nit: constexpr ?


http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/major_delta_compaction-test.cc@191
PS2, Line 191: all_rowsets.front();
paranoid nit: is it guaranteed that all_rowsets container is non-empty?If 
not, maybe add ASSERT_FALSE(all_rowsets.empty())?


http://gerrit.cloudera.org:8080/#/c/12178/2/src/kudu/tablet/major_delta_compaction-test.cc@205
PS2, Line 205:   ASSERT_TRUE(s.IsCorruption());
nit: maybe, add ' << s.ToString(); for easier debugging if that fails



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 08 Jan 2019 18:05:39 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Andrew Wong (Code Review)
Andrew Wong has removed a vote on this change.

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12178 )

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..


Patch Set 2: Verified+1

The failure seems unrelated:

 RaftConsensusNonVoterITest.PromoteAndDemote


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 08 Jan 2019 16:49:27 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Andrew Wong (Code Review)
Andrew Wong has removed a vote on this change.

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] Assign locations to tablet servers and the client in Java

2019-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12174 )

Change subject: Assign locations to tablet servers and the client in Java
..


Patch Set 3:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java:

http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java@49
PS3, Line 49: --
nit: ' --' or replace with ';'


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java
File java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java:

PS3:
> What happened to the formatting in this file?
I guess the very first version of this file was had DOS end-of-line symbols, 
and it's still partially true.

Will, while you are at at, maybe run dos2unix for this file?


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java@1
PS3, Line 1: /**
   :  * Licensed under the Apache License, Version 2.0 (the "License");
   :  * you may not use this file except in compliance with the License.
   :  * You may obtain a copy of the License at
   :  *
   :  *   http://www.apache.org/licenses/LICENSE-2.0
   :  *
   :  * Unless required by applicable law or agreed to in writing, 
software
   :  * distributed under the License is distributed on an "AS IS" 
BASIS,
   :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
implied.
   :  * See the License for the specific language governing permissions 
and
   :  * limitations under the License. See accompanying LICENSE file.
   :  */
nit: while you are at it, maybe unify the license header and make it commented 
by single-line comments?

Also, it seems the text is little bit different from the standard license 
header, but I'm not sure whether it's crucial to standardize that as well.


http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java
File 
java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java:

http://gerrit.cloudera.org:8080/#/c/12174/3/java/kudu-test-utils/src/main/java/org/apache/kudu/test/cluster/MiniKuduCluster.java@229
PS3, Line 229: getClass().getResource("/assign-location.py").getFile()
I'm curious whether this works when tests are run using dist-test.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9e2c74ab12f7da187bf6e75d42a3089bc20235db
Gerrit-Change-Number: 12174
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-Comment-Date: Tue, 08 Jan 2019 15:22:21 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2656: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Andrew Wong (Code Review)
Hello Kudu Jenkins, Adar Dembo, Grant Henke,

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

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

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

Change subject: KUDU-2656: pass IOContext to ValidateDeltaOrder
..

KUDU-2656: pass IOContext to ValidateDeltaOrder

Previously, checksum errors that occurred during calls to the debug-only
function ValidateDeltaOrder() would lead to a DCHECK failure. This patch
plumbs an IOContext to these calls to avoid this and adds a regression
test for such cases.

Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
---
M src/kudu/tablet/delta_compaction.cc
M src/kudu/tablet/delta_tracker.cc
M src/kudu/tablet/delta_tracker.h
M src/kudu/tablet/major_delta_compaction-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
6 files changed, 55 insertions(+), 13 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2565: pass IOContext to ValidateDeltaOrder

2019-01-08 Thread Andrew Wong (Code Review)
Hello Adar Dembo, Grant Henke,

I'd like you to do a code review. Please visit

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

to review the following change.


Change subject: KUDU-2565: pass IOContext to ValidateDeltaOrder
..

KUDU-2565: pass IOContext to ValidateDeltaOrder

Previously, checksum errors that occurred during calls to the debug-only
function ValidateDeltaOrder() would lead to a DCHECK failure. This patch
plumbs an IOContext to these calls to avoid this and adds a regression
test for such cases.

Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
---
M src/kudu/tablet/delta_compaction.cc
M src/kudu/tablet/delta_tracker.cc
M src/kudu/tablet/delta_tracker.h
M src/kudu/tablet/major_delta_compaction-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
6 files changed, 54 insertions(+), 13 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3364ad95a5b3608db6538151007c4b6d16500f2b
Gerrit-Change-Number: 12178
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke