[kudu-CR] [clock] introduce mini chronyd

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

Change subject: [clock] introduce mini_chronyd
..


Patch Set 5: Verified+1

Unrelated flake due to the issue reported in KUDU-2815


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id9d06d218828240f2a2980ef5ec30428f86277f7
Gerrit-Change-Number: 13916
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 23 Aug 2019 02:23:32 +
Gerrit-HasComments: No


[kudu-CR] [clock] introduce mini chronyd

2019-08-22 Thread Alexey Serbin (Code Review)
Alexey Serbin has removed a vote on this change.

Change subject: [clock] introduce mini_chronyd
..


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: Id9d06d218828240f2a2980ef5ec30428f86277f7
Gerrit-Change-Number: 13916
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2069 pt 1: add a maintenance mode

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

Change subject: KUDU-2069 pt 1: add a maintenance mode
..


Patch Set 2:

(13 comments)

A first quick pass.  Will send an update soon.

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

http://gerrit.cloudera.org:8080/#/c/14111/2//COMMIT_MSG@10
PS2, Line 10: failures of T will not be considered when determining
: whether a given tablet is under-replicated
I'm curious whether it mandates to have some sort of special response error 
code for CreateTable when it's not enough tablet servers to place tablet 
replicas because tablet servers are put into maintenance mode.  Probably, I 
need to re-read the design doc.


http://gerrit.cloudera.org:8080/#/c/14111/2//COMMIT_MSG@23
PS2, Line 23: whitelist
nit: it sounds like rather a "blackgrey/list" or "the usual suspects".  Just 
kidding, but maybe it makes sense to call it some other way :)


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/maintenance_state-test.cc
File src/kudu/master/maintenance_state-test.cc:

http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/maintenance_state-test.cc@84
PS2, Line 84: afiliated
affiliated


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/maintenance_state-test.cc@100
PS2, Line 100:   void TearDown() override {
 : mini_master_->Shutdown();
 : KuduTest::TearDown();
 :   }
nit: move it up to be just after SetUp() -- that would look a bit better from 
the readability standpoint


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/maintenance_state-test.cc@170
PS2, Line 170: and that it persists through restarts
looks like an incomplete sentence


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/master.proto
File src/kudu/master/master.proto:

http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/master.proto@816
PS2, Line 816: optional string tserver_uuid = 2;
Maybe, it makes sense to allow setting the maintenance state in batches?


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/master_service.cc
File src/kudu/master/master_service.cc:

http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/master_service.cc@282
PS2, Line 282: if (!req->tablet_report().is_incremental()) {
 :   ts_desc->UpdateNeedsFullTabletReport(false);
 : }
Could you document the reasoning behind this code?


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_descriptor.h
File src/kudu/master/ts_descriptor.h:

http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_descriptor.h@113
PS2, Line 113: boost::optional&
Why boost::optional?  Would simple enum suffice?

enum MaintenanceState {
  kRegularMode,  // or kNone
  kMaintenanceMode,
};


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_descriptor.h@207
PS2, Line 207: needs
needs to send ?


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_descriptor.h@207
PS2, Line 207: or not
nit: drop


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_manager.h
File src/kudu/master/ts_manager.h:

http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_manager.h@90
PS2, Line 90: it
them ?


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_manager.h@132
PS2, Line 132: unregistered_maintenance_states_
nit: could you follow the same naming notation that was used for 
'servers_by_id_'?


http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_manager.cc
File src/kudu/master/ts_manager.cc:

http://gerrit.cloudera.org:8080/#/c/14111/2/src/kudu/master/ts_manager.cc@68
PS2, Line 68: string MaintenanceStateAsString(const 
boost::optional& state) {
:   if (!state) {
: return "NONE";
:   }
:   switch (*state) {
: case kMaintenanceMode:
:   return "MAINTENANCE MODE";
:   }
:   return Substitute("UNKNOWN STATE ($0)", *state);
: }
nit: I think this method can return const reference to strings, returning 
simply "UNKNOWN STATE" if it gets some unexpected state (plus DCHECK on that).



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia857668b87560cdd451c2e7f90d72f8217ba5a4b
Gerrit-Change-Number: 14111
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Fri, 23 Aug 2019 02:03:17 +
Gerrit-HasComments: Yes


[kudu-CR] [clock] introduce mini chronyd

2019-08-22 Thread Alexey Serbin (Code Review)
Hello Kudu Jenkins, Adar Dembo,

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

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

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

Change subject: [clock] introduce mini_chronyd
..

[clock] introduce mini_chronyd

This patch introduces a wrapper around chronyd, so it's possible to run
multiple instances of chronyd reference NTP servers as part of Kudu
mini-cluster, providing reference for NTP clients.

In addition, this patch contains tests to cover the newly introduced
functionality.

Change-Id: Id9d06d218828240f2a2980ef5ec30428f86277f7
---
M build-support/dist_test.py
M src/kudu/clock/CMakeLists.txt
A src/kudu/clock/test/mini_chronyd-test.cc
A src/kudu/clock/test/mini_chronyd.cc
A src/kudu/clock/test/mini_chronyd.h
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/mini-cluster/external_mini_cluster.cc
M src/kudu/mini-cluster/external_mini_cluster.h
8 files changed, 798 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id9d06d218828240f2a2980ef5ec30428f86277f7
Gerrit-Change-Number: 13916
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [clock] introduce mini chronyd

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

Change subject: [clock] introduce mini_chronyd
..


Patch Set 4:

(17 comments)

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/CMakeLists.txt
File src/kudu/clock/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/CMakeLists.txt@39
PS4, Line 39: #  * symlinks would not work with dist-test
> But don't we use symlinks for the HMS/Sentry/Hadoop stuff? Why do they work
Yes, we do, but those are symlinks to directories, not regular files.  I didn't 
look deep into the internals of dist-test, but I know dist-test copies contents 
of symlinked directories, but it doesn't follow symlinks in case of regular 
files.

I tried symlinks for chronyd and chronyc first, but that didn't work.  That's 
why I switched to simply copying those files.


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd-test.cc
File src/kudu/clock/test/mini_chronyd-test.cc:

PS4:
> Have you looped the new tests under dist-tes?
Yes, I did it some time ago and re-run again today: 
http://dist-test.cloudera.org//job?job_id=aserbin.1566515381.147044


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd-test.cc@143
PS4, Line 143: ASSERT_OK(servers[i]->SetTime(ref_time + 10));
> Was the intent to reconfigure each server to use the same time albeit one f
It doesn't matter from which point they are all offset, the important thing 
here is that they are far from each other.  Eventually, we want to make sure 
the client does _not_ see these NTP servers as a reliable source of 
synchronization.

In prior revisions of this patch, I did set the same time and it worked most of 
the time because the it took some time per operation, and if everything goes 
slow enough, servers seem  far enough to the client.  To make this more robust 
and explicit, I changed this to use different, far enough from each other 
points in time.

I updated the comment, hopefully it became clearer now.


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h
File src/kudu/clock/test/mini_chronyd.h:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h@87
PS4, Line 87:   // Structure to represent relevant information from output by
: // 'chronyc serverstats'.
> Nit: alignment
Done


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h@94
PS4, Line 94: as good
> as a good
Done


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h@99
PS4, Line 99: synchronize
> synchronization
Done


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h@105
PS4, Line 105: of
> or
Done


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc
File src/kudu/clock/test/mini_chronyd.cc:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@72
PS4, Line 72: std::
> drop
Done


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@75
PS4, Line 75:   "server $0 port $1 maxpoll -1 minpoll -6 iburst burst 
version 3\n";
> Could you rationalize the non-obvious stuff (i.e. everything besides server
Done


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@88
PS4, Line 88: /dev/stdin
> Does "-" work? I think it's more idiomatic.
Yeah, I tried '-' first.  Unfortunately, it doesn't work for chronyd.  It 
possible to put together an extra patch for chronyd, but I decided not to spend 
time on that.


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@196
PS4, Line 196:  vector
> Can you use 'auto' here?
It does't compile:

kudu/src/kudu/clock/test/mini_chronyd.cc:216:14: error: no member named
  'size' in 'strings::internal::Splitter'
  if (kv.size() != 2) {


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@204
PS4, Line 204:   LOG(INFO) << kv[0] << ":" << kv[1];
> Should be removed?
Done


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@206
PS4, Line 206: result.ntp_packets_received = std::atol(kv[1].c_str());
> I think we prefer our gutil/strings/numbers.h safe_* functions.
Done


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/external_mini_cluster.h
File src/kudu/mini-cluster/external_mini_cluster.h:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/external_mini_cluster.h@195
PS4, Line 195:   int num_ntp_servers;
> Should add test coverage for this in external_mini_cluster-test.
Yeap, this is coming in the follow-up changelist.


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/external_mini_cluster.cc
File src/kudu/mini-cluster/external_mini_cluster.cc:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/external_mini_cluster.cc@597

[kudu-CR] Create kudu/rebalance subdirectory

2019-08-22 Thread Hannah Nguyen (Code Review)
Hello Tidy Bot, Alexey Serbin, Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: Create kudu/rebalance subdirectory
..

Create kudu/rebalance subdirectory

Moved and renamed structs used for rebalancing from
tools/ksck_results into rebalance/cluster_status.
Moved tools/rebalance_algo to rebalance/rebalance_algo.
Moved class Rebalancer from tools/rebalancer to rebalance/rebalancer.
Renamed tools/rebalancer to tools/rebalancer_tool.
Created RebalancerTool in tools/rebalancer_tool that inherits
from Rebalancer.
Moved corresponding tests into kudu/rebalance subdirectory.

Movement of code done to prepare for autorebalancer task in master.
No functional changes made.

Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
---
M CMakeLists.txt
A src/kudu/rebalance/CMakeLists.txt
A src/kudu/rebalance/cluster_status.cc
A src/kudu/rebalance/cluster_status.h
R src/kudu/rebalance/placement_policy_util-test.cc
R src/kudu/rebalance/placement_policy_util.cc
R src/kudu/rebalance/placement_policy_util.h
R src/kudu/rebalance/rebalance-test.cc
R src/kudu/rebalance/rebalance_algo-test.cc
R src/kudu/rebalance/rebalance_algo.cc
R src/kudu/rebalance/rebalance_algo.h
A src/kudu/rebalance/rebalancer.cc
A src/kudu/rebalance/rebalancer.h
M src/kudu/tools/CMakeLists.txt
M src/kudu/tools/ksck-test.cc
M src/kudu/tools/ksck.cc
M src/kudu/tools/ksck.h
M src/kudu/tools/ksck_remote.cc
M src/kudu/tools/ksck_remote.h
M src/kudu/tools/ksck_results.cc
M src/kudu/tools/ksck_results.h
D src/kudu/tools/rebalancer.h
R src/kudu/tools/rebalancer_tool.cc
A src/kudu/tools/rebalancer_tool.h
M src/kudu/tools/tool.proto
M src/kudu/tools/tool_action_cluster.cc
26 files changed, 1,884 insertions(+), 1,610 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/10/14110/9
--
To view, visit http://gerrit.cloudera.org:8080/14110
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 9
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] Create kudu/rebalance subdirectory

2019-08-22 Thread Hannah Nguyen (Code Review)
Hannah Nguyen has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/14110 )

Change subject: Create kudu/rebalance subdirectory
..


Patch Set 7:

(6 comments)

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/placement_policy_util-test.cc
File src/kudu/rebalance/placement_policy_util-test.cc:

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/placement_policy_util-test.cc@33
PS7, Line 33: #include "kudu/consensus/quorum_util.h"
> Hrm.. I might be missing something; why do we need this now?
oops


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/placement_policy_util-test.cc@199
PS7, Line 199:  Re
> nit: spacing
Done


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/rebalancer.cc
File src/kudu/rebalance/rebalancer.cc:

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/rebalancer.cc@397
PS7, Line 397: ksck
> nit: maybe just "health report"? Same below. Or omit details of "ksck" in g
ah, these were copied comments from the original tools/rebalancer.cc


http://gerrit.cloudera.org:8080/#/c/14110/8/src/kudu/rebalance/rebalancer.cc
File src/kudu/rebalance/rebalancer.cc:

http://gerrit.cloudera.org:8080/#/c/14110/8/src/kudu/rebalance/rebalancer.cc@86
PS8, Line 86: }
> To leverage move semantics, pass 'config' to by copy, ie
Done


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc
File src/kudu/tools/rebalancer_tool.cc:

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc@339
PS7, Line 339:   const ClusterRawInfo& raw_info,
 :  const ClusterInfo& 
ci,
 :  ostream& out) const 
{
> nit: spacing
Done


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc@750
PS7, Line 750:bool* 
timed_out) {
> nit: spacing
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 7
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 22 Aug 2019 23:37:06 +
Gerrit-HasComments: Yes


[kudu-CR] Create kudu/rebalance subdirectory

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

Change subject: Create kudu/rebalance subdirectory
..


Patch Set 8:

(6 comments)

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/placement_policy_util-test.cc
File src/kudu/rebalance/placement_policy_util-test.cc:

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/placement_policy_util-test.cc@33
PS7, Line 33: #include "kudu/consensus/quorum_util.h"
Hrm.. I might be missing something; why do we need this now?


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/placement_policy_util-test.cc@199
PS7, Line 199:  Re
nit: spacing


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/rebalancer.cc
File src/kudu/rebalance/rebalancer.cc:

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/rebalancer.cc@397
PS7, Line 397:
nit: maybe just "health report"? Same below. Or omit details of "ksck" in 
general.


http://gerrit.cloudera.org:8080/#/c/14110/8/src/kudu/rebalance/rebalancer.cc
File src/kudu/rebalance/rebalancer.cc:

http://gerrit.cloudera.org:8080/#/c/14110/8/src/kudu/rebalance/rebalancer.cc@86
PS8, Line 86: : config_(std::move(config)) {
> warning: std::move of the const variable 'config' has no effect; remove std
To leverage move semantics, pass 'config' to by copy, ie

 Rebalancer(Config config) {


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc
File src/kudu/tools/rebalancer_tool.cc:

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc@339
PS7, Line 339: "Location: " << location << endl;
 : out << "--" 
<< endl;
 :   }
nit: spacing


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc@750
PS7, Line 750:
nit: spacing



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 8
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 22 Aug 2019 23:17:00 +
Gerrit-HasComments: Yes


[kudu-CR] Create kudu/rebalance subdirectory

2019-08-22 Thread Hannah Nguyen (Code Review)
Hello Tidy Bot, Alexey Serbin, Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: Create kudu/rebalance subdirectory
..

Create kudu/rebalance subdirectory

Moved and renamed structs used for rebalancing from
tools/ksck_results into rebalance/cluster_status.
Moved tools/rebalance_algo to rebalance/rebalance_algo.
Moved class Rebalancer from tools/rebalancer to rebalance/rebalancer.
Renamed tools/rebalancer to tools/rebalancer_tool.
Created RebalancerTool in tools/rebalancer_tool that inherits
from Rebalancer.
Moved corresponding tests into kudu/rebalance subdirectory.

Movement of code done to prepare for autorebalancer task in master.
No functional changes made.

Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
---
M CMakeLists.txt
A src/kudu/rebalance/CMakeLists.txt
A src/kudu/rebalance/cluster_status.cc
A src/kudu/rebalance/cluster_status.h
R src/kudu/rebalance/placement_policy_util-test.cc
R src/kudu/rebalance/placement_policy_util.cc
R src/kudu/rebalance/placement_policy_util.h
R src/kudu/rebalance/rebalance-test.cc
R src/kudu/rebalance/rebalance_algo-test.cc
R src/kudu/rebalance/rebalance_algo.cc
R src/kudu/rebalance/rebalance_algo.h
A src/kudu/rebalance/rebalancer.cc
A src/kudu/rebalance/rebalancer.h
M src/kudu/tools/CMakeLists.txt
M src/kudu/tools/ksck-test.cc
M src/kudu/tools/ksck.cc
M src/kudu/tools/ksck.h
M src/kudu/tools/ksck_remote.cc
M src/kudu/tools/ksck_remote.h
M src/kudu/tools/ksck_results.cc
M src/kudu/tools/ksck_results.h
D src/kudu/tools/rebalancer.h
R src/kudu/tools/rebalancer_tool.cc
A src/kudu/tools/rebalancer_tool.h
M src/kudu/tools/tool.proto
M src/kudu/tools/tool_action_cluster.cc
26 files changed, 1,882 insertions(+), 1,606 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 8
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] Create kudu/rebalance subdirectory

2019-08-22 Thread Hannah Nguyen (Code Review)
Hannah Nguyen has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/14110 )

Change subject: Create kudu/rebalance subdirectory
..


Patch Set 7:

(5 comments)

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/placement_policy_util.cc
File src/kudu/rebalance/placement_policy_util.cc:

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/rebalance/placement_policy_util.cc@458
PS7, Line 458: } // namespace tools
> warning: namespace 'rebalance' ends with a comment that refers to a wrong n
Done


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc
File src/kudu/tools/rebalancer_tool.cc:

http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc@79
PS7, Line 79: using std::multimap;
> warning: using decl 'multimap' is unused [misc-unused-using-decls]
Done


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc@80
PS7, Line 80: using std::numeric_limits;
> warning: using decl 'numeric_limits' is unused [misc-unused-using-decls]
Done


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc@82
PS7, Line 82: using std::set_difference;
> warning: using decl 'set_difference' is unused [misc-unused-using-decls]
Done


http://gerrit.cloudera.org:8080/#/c/14110/7/src/kudu/tools/rebalancer_tool.cc@99
PS7, Line 99:
Fixed



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 7
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 22 Aug 2019 22:06:20 +
Gerrit-HasComments: Yes


[kudu-CR] Create kudu/rebalance subdirectory

2019-08-22 Thread Hannah Nguyen (Code Review)
Hello Tidy Bot, Alexey Serbin, Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: Create kudu/rebalance subdirectory
..

Create kudu/rebalance subdirectory

Moved and renamed structs used for rebalancing from
tools/ksck_results into rebalance/cluster_status.
Moved tools/rebalance_algo to rebalance/rebalance_algo.
Moved class Rebalancer from tools/rebalancer to rebalance/rebalancer.
Renamed tools/rebalancer to tools/rebalancer_tool.
Created RebalancerTool in tools/rebalancer_tool that inherits
from Rebalancer.
Moved corresponding tests into kudu/rebalance subdirectory.

Movement of code done to prepare for autorebalancer task in master.
No functional changes made.

Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
---
M CMakeLists.txt
A src/kudu/rebalance/CMakeLists.txt
A src/kudu/rebalance/cluster_status.cc
A src/kudu/rebalance/cluster_status.h
R src/kudu/rebalance/placement_policy_util-test.cc
R src/kudu/rebalance/placement_policy_util.cc
R src/kudu/rebalance/placement_policy_util.h
R src/kudu/rebalance/rebalance-test.cc
R src/kudu/rebalance/rebalance_algo-test.cc
R src/kudu/rebalance/rebalance_algo.cc
R src/kudu/rebalance/rebalance_algo.h
A src/kudu/rebalance/rebalancer.cc
A src/kudu/rebalance/rebalancer.h
M src/kudu/tools/CMakeLists.txt
M src/kudu/tools/ksck-test.cc
M src/kudu/tools/ksck.cc
M src/kudu/tools/ksck.h
M src/kudu/tools/ksck_remote.cc
M src/kudu/tools/ksck_remote.h
M src/kudu/tools/ksck_results.cc
M src/kudu/tools/ksck_results.h
D src/kudu/tools/rebalancer.h
R src/kudu/tools/rebalancer_tool.cc
A src/kudu/tools/rebalancer_tool.h
M src/kudu/tools/tool.proto
M src/kudu/tools/tool_action_cluster.cc
26 files changed, 1,884 insertions(+), 1,602 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/10/14110/7
--
To view, visit http://gerrit.cloudera.org:8080/14110
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 7
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] WIP: Create kudu/rebalance subdirectory

2019-08-22 Thread Hannah Nguyen (Code Review)
Hannah Nguyen has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/14110 )

Change subject: WIP: Create kudu/rebalance subdirectory
..


Patch Set 6:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck.h
File src/kudu/tools/ksck.h:

http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck.h@301
PS6, Line 301: ClusterServerHealth
> Can we forward declare these?
Done


http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck.h@613
PS6, Line 613: int table_num_replicas);
> nit: spacing
Done


http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck_results.cc
File src/kudu/tools/ksck_results.cc:

http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck_results.cc@87
PS6, Line 87: const map& label_by_uuid,
> nit: keep these on the same line
Done


http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/placement_policy_util.h
File src/kudu/tools/placement_policy_util.h:

http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/placement_policy_util.h@30
PS6, Line 30: namespace rebalance {
: struct ClusterLocalityInfo;
: } // namespace rebalance
> You can put this in the below kudu namespace.
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 6
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 22 Aug 2019 21:40:09 +
Gerrit-HasComments: Yes


[kudu-CR] WIP: Create kudu/rebalance subdirectory

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

Change subject: WIP: Create kudu/rebalance subdirectory
..


Patch Set 6:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck.h
File src/kudu/tools/ksck.h:

http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck.h@301
PS6, Line 301: ClusterServerHealth
Can we forward declare these?


http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck.h@613
PS6, Line 613: int table_num_replicas);
nit: spacing


http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck_results.cc
File src/kudu/tools/ksck_results.cc:

http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/ksck_results.cc@87
PS6, Line 87: const map& label_by_uuid,
nit: keep these on the same line


http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/placement_policy_util.h
File src/kudu/tools/placement_policy_util.h:

http://gerrit.cloudera.org:8080/#/c/14110/6/src/kudu/tools/placement_policy_util.h@30
PS6, Line 30: namespace rebalance {
: struct ClusterLocalityInfo;
: } // namespace rebalance
You can put this in the below kudu namespace.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 6
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Thu, 22 Aug 2019 21:00:04 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2907: add a dir to dir groups when full

2019-08-22 Thread Andrew Wong (Code Review)
Hello Tidy Bot, Kudu Jenkins, Adar Dembo, ZhangYao,

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

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

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

Change subject: KUDU-2907: add a dir to dir groups when full
..

KUDU-2907: add a dir to dir groups when full

This patch extends the directory-picking behavior when selecting
directories for new blocks if all directories in the given tablet's
group are full. It now allows the expansion of a tablet's data dir group
if healthy directories are available.

This doesn't change the policy for picking directories for groups; it
only extends the usage of the policy to potentially add directories when
getting a directory for a new block.

Change-Id: Ic8e05bdfe1fc2ac0e7152d493f289d3ac6e850d7
---
M src/kudu/fs/data_dirs-test.cc
M src/kudu/fs/data_dirs.cc
M src/kudu/fs/data_dirs.h
M src/kudu/fs/file_block_manager.cc
M src/kudu/fs/log_block_manager.cc
M src/kudu/tserver/tablet_server-test.cc
6 files changed, 318 insertions(+), 67 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ic8e05bdfe1fc2ac0e7152d493f289d3ac6e850d7
Gerrit-Change-Number: 14122
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: ZhangYao 


[kudu-CR] KUDU-2069 pt 1: add a maintenance mode

2019-08-22 Thread Andrew Wong (Code Review)
Hello Tidy Bot, Kudu Jenkins,

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

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

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

Change subject: KUDU-2069 pt 1: add a maintenance mode
..

KUDU-2069 pt 1: add a maintenance mode

When tablet server T is put in maintenance mode, replicas will not be
placed onto T, and failures of T will not be considered when determining
whether a given tablet is under-replicated.

This patch adds this mode with the following changes:
- A new master-side endpoint that enters maintenance mode is added:
  - It plumbs in-memory maintenance states through the TSManager and the
TSDescriptors.
  - It also writes a new kind of entry in the master system catalog for
maintenance states (for now, there's only maintenance mode, but this
could be useful for decommissioning).
- When a master becomes leader, it scans the on-disk state and
  rebuilds the in-memory maintenance state.
- When determining whether a replica needs to be added, we may now
  consider a "whitelist" of UUIDs that can be in a bad state while not
  counting towards being under-replicated.
- When determining where to place new replicas, tablet servers in
  maintenance mode are not considered.
- The same master-side endpoint is used to exit maintenance mode.
  - To ensure that replicas that actually need to be replicated get
replicated upon finishing maintenance mode, when a tablet server is
removed from maintenance mode, the master will mark all tablet
servers as needing a full tablet report, triggering re-processing of
tablet reports.

This patch only introduces the master endpoints and the underlying
behavior. A later patch will introduce a way to set maintenance mode via
CLI.

I considered implementing maintenance mode by blocking master->tserver
RPCs, but opted to use this approach since it seems more intuitive for
the stopping of replica movement to exist in placement logic, (i.e. what
servers are available to host new replicas and what replicas needs to
be replaced), rather than the placement mechanism, (i.e. the handful of
RPCs that would need to be considered).

Change-Id: Ia857668b87560cdd451c2e7f90d72f8217ba5a4b
---
M src/kudu/consensus/consensus_peers.cc
M src/kudu/consensus/quorum_util-test.cc
M src/kudu/consensus/quorum_util.cc
M src/kudu/consensus/quorum_util.h
M src/kudu/integration-tests/CMakeLists.txt
A src/kudu/integration-tests/maintenance_mode-itest.cc
M src/kudu/master/CMakeLists.txt
M src/kudu/master/catalog_manager.cc
M src/kudu/master/catalog_manager.h
A src/kudu/master/maintenance_state-test.cc
M src/kudu/master/master.proto
M src/kudu/master/master_service.cc
M src/kudu/master/master_service.h
M src/kudu/master/sys_catalog.cc
M src/kudu/master/sys_catalog.h
M src/kudu/master/ts_descriptor-test.cc
M src/kudu/master/ts_descriptor.cc
M src/kudu/master/ts_descriptor.h
M src/kudu/master/ts_manager.cc
M src/kudu/master/ts_manager.h
20 files changed, 1,095 insertions(+), 35 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ia857668b87560cdd451c2e7f90d72f8217ba5a4b
Gerrit-Change-Number: 14111
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] KUDU-2921: Exposing the table statistics to spark relation.

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

Change subject: KUDU-2921: Exposing the table statistics to spark relation.
..


Patch Set 2:

> Actually, I have considered to put those statistics into existing message 
> such as getShema which will be used when opening table. But as for the table 
> statistics may contain more and more entries it may be better to be a 
> independent rpc. What's more, because this statistics may change when client 
> trying to write, so I think it will be useful to support a rpc for client to 
> get the statistics change. Although for query plan it will only use once and 
> save one round trip if we put it into existing rpc but it will be heavy if we 
> want to get statistic change in other use cases.

How are the stats useful for a writing client (i.e. an Impala or Spark 
executor) vs. the query planner?

What are the other use cases you're thinking about? If they're hypothetical, we 
could add the stats to GetTableLocations now, and also expose them via new RPC 
later, when those other use cases materialize.

>  > If doing this, let's make sure to make it optional, since the
>  > statistics could become larger later (eg with things like
>  > histograms, NDVs per column, etc)
>
> Will make it optional if do that :)

Agreed.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7742a76708f989b0ccc8ba417f3390013e260175
Gerrit-Change-Number: 14107
Gerrit-PatchSet: 2
Gerrit-Owner: ZhangYao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: ZhangYao 
Gerrit-Comment-Date: Thu, 22 Aug 2019 18:58:36 +
Gerrit-HasComments: No


[kudu-CR] [clock] introduce mini chronyd

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

Change subject: [clock] introduce mini_chronyd
..


Patch Set 4:

(16 comments)

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/CMakeLists.txt
File src/kudu/clock/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/CMakeLists.txt@39
PS4, Line 39: #  * symlinks would not work with dist-test
But don't we use symlinks for the HMS/Sentry/Hadoop stuff? Why do they work 
there but not here?


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd-test.cc
File src/kudu/clock/test/mini_chronyd-test.cc:

PS4:
Have you looped the new tests under dist-tes?


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd-test.cc@143
PS4, Line 143: ASSERT_OK(servers[i]->SetTime(ref_time + 10));
Was the intent to reconfigure each server to use the same time albeit one far 
removed from NOW? Or for each server to use a different time? Unclear from the 
comment.


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h
File src/kudu/clock/test/mini_chronyd.h:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h@87
PS4, Line 87:   // Structure to represent relevant information from output by
: // 'chronyc serverstats'.
Nit: alignment


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h@94
PS4, Line 94: as good
as a good


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h@99
PS4, Line 99: synchronize
synchronization


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.h@105
PS4, Line 105: of
or


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc
File src/kudu/clock/test/mini_chronyd.cc:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@72
PS4, Line 72: std::
drop


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@75
PS4, Line 75:   "server $0 port $1 maxpoll -1 minpoll -6 iburst burst 
version 3\n";
Could you rationalize the non-obvious stuff (i.e. everything besides server and 
port) in a comment?


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@88
PS4, Line 88: /dev/stdin
Does "-" work? I think it's more idiomatic.


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@196
PS4, Line 196:  vector
Can you use 'auto' here?


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@204
PS4, Line 204:   LOG(INFO) << kv[0] << ":" << kv[1];
Should be removed?


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/clock/test/mini_chronyd.cc@206
PS4, Line 206: result.ntp_packets_received = std::atol(kv[1].c_str());
I think we prefer our gutil/strings/numbers.h safe_* functions.


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/external_mini_cluster.h
File src/kudu/mini-cluster/external_mini_cluster.h:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/external_mini_cluster.h@195
PS4, Line 195:   int num_ntp_servers;
Should add test coverage for this in external_mini_cluster-test.


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/external_mini_cluster.cc
File src/kudu/mini-cluster/external_mini_cluster.cc:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/external_mini_cluster.cc@597
PS4, Line 597:   options.port = 10123 + idx;
If we want this to work well on macOS, we'll need to bind to an ephemral port 
and then use lsof or whatever to figure out what port we got. Can we do that?


http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/internal_mini_cluster.h
File src/kudu/mini-cluster/internal_mini_cluster.h:

http://gerrit.cloudera.org:8080/#/c/13916/4/src/kudu/mini-cluster/internal_mini_cluster.h@111
PS4, Line 111: #if 0
Why commented out? Either remove or implement.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id9d06d218828240f2a2980ef5ec30428f86277f7
Gerrit-Change-Number: 13916
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Thu, 22 Aug 2019 18:49:07 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2907: add a dir to dir groups when full

2019-08-22 Thread Andrew Wong (Code Review)
Andrew Wong has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/14122


Change subject: KUDU-2907: add a dir to dir groups when full
..

KUDU-2907: add a dir to dir groups when full

This patch extends the directory-picking behavior when selecting
directories for new blocks if all directories in the given tablet's
group are full. It now allows the expansion of a tablet's data dir group
if healthy directories are available.

This doesn't change the policy for picking directories for groups; it
only extends the usage of the policy to potentially add directories when
getting a directory for a new block.

Change-Id: Ic8e05bdfe1fc2ac0e7152d493f289d3ac6e850d7
---
M src/kudu/fs/data_dirs-test.cc
M src/kudu/fs/data_dirs.cc
M src/kudu/fs/data_dirs.h
M src/kudu/fs/file_block_manager.cc
M src/kudu/fs/log_block_manager.cc
M src/kudu/tserver/tablet_server-test.cc
6 files changed, 317 insertions(+), 67 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic8e05bdfe1fc2ac0e7152d493f289d3ac6e850d7
Gerrit-Change-Number: 14122
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Wong 


[kudu-CR] WIP: Create kudu/rebalance subdirectory

2019-08-22 Thread Hannah Nguyen (Code Review)
Hello Tidy Bot, Alexey Serbin, Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: WIP: Create kudu/rebalance subdirectory
..

WIP: Create kudu/rebalance subdirectory

Moved structs used for rebalancing from tools/ksck_results
into rebalance/cluster_status. Moved contents of
tools/rebalance_algo into rebalance subdirectory too.

TODO: move tools/placement_policy_util and tools/rebalancer.

Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
---
M CMakeLists.txt
A src/kudu/rebalance/CMakeLists.txt
A src/kudu/rebalance/cluster_status.cc
A src/kudu/rebalance/cluster_status.h
R src/kudu/rebalance/rebalance_algo-test.cc
R src/kudu/rebalance/rebalance_algo.cc
R src/kudu/rebalance/rebalance_algo.h
M src/kudu/tools/CMakeLists.txt
M src/kudu/tools/ksck-test.cc
M src/kudu/tools/ksck.cc
M src/kudu/tools/ksck.h
M src/kudu/tools/ksck_remote.cc
M src/kudu/tools/ksck_remote.h
M src/kudu/tools/ksck_results.cc
M src/kudu/tools/ksck_results.h
M src/kudu/tools/placement_policy_util-test.cc
M src/kudu/tools/placement_policy_util.cc
M src/kudu/tools/placement_policy_util.h
M src/kudu/tools/rebalance-test.cc
M src/kudu/tools/rebalancer.cc
M src/kudu/tools/rebalancer.h
M src/kudu/tools/tool.proto
M src/kudu/tools/tool_action_cluster.cc
23 files changed, 857 insertions(+), 661 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 6
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] WIP: Create kudu/rebalance subdirectory

2019-08-22 Thread Hannah Nguyen (Code Review)
Hello Tidy Bot, Alexey Serbin, Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: WIP: Create kudu/rebalance subdirectory
..

WIP: Create kudu/rebalance subdirectory

Moved structs used for rebalancing from tools/ksck_results
into rebalance/cluster_status. Moved contents of
tools/rebalance_algo into rebalance subdirectory too.

TODO: move tools/placement_policy_util and tools/rebalancer.

Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
---
M CMakeLists.txt
A src/kudu/rebalance/CMakeLists.txt
A src/kudu/rebalance/cluster_status.cc
A src/kudu/rebalance/cluster_status.h
R src/kudu/rebalance/rebalance_algo-test.cc
R src/kudu/rebalance/rebalance_algo.cc
R src/kudu/rebalance/rebalance_algo.h
M src/kudu/tools/CMakeLists.txt
M src/kudu/tools/ksck-test.cc
M src/kudu/tools/ksck.cc
M src/kudu/tools/ksck.h
M src/kudu/tools/ksck_remote.cc
M src/kudu/tools/ksck_remote.h
M src/kudu/tools/ksck_results.cc
M src/kudu/tools/ksck_results.h
M src/kudu/tools/placement_policy_util-test.cc
M src/kudu/tools/placement_policy_util.cc
M src/kudu/tools/placement_policy_util.h
M src/kudu/tools/rebalance-test.cc
M src/kudu/tools/rebalancer.cc
M src/kudu/tools/rebalancer.h
M src/kudu/tools/tool.proto
M src/kudu/tools/tool_action_cluster.cc
23 files changed, 859 insertions(+), 658 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie0242a019cb44517539da2878cf889ee0c511964
Gerrit-Change-Number: 14110
Gerrit-PatchSet: 5
Gerrit-Owner: Hannah Nguyen 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hannah Nguyen 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [docs]: Fix bad markdown formatting in tablet.md

2019-08-22 Thread Anonymous Coward (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: [docs]: Fix bad markdown formatting in tablet.md
..

[docs]: Fix bad markdown formatting in tablet.md

Use '```' for code block

Change-Id: I06e04031c8b817b3a3d7f771705c85a161cbb08d
---
M docs/design-docs/tablet.md
1 file changed, 2 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I06e04031c8b817b3a3d7f771705c85a161cbb08d
Gerrit-Change-Number: 14120
Gerrit-PatchSet: 3
Gerrit-Owner: Anonymous Coward 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [docs]: Fix bad marddown formatting in tablet.md

2019-08-22 Thread Anonymous Coward (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: [docs]: Fix bad marddown formatting in tablet.md
..

[docs]: Fix bad marddown formatting in tablet.md

Use '```' for code block

Change-Id: I06e04031c8b817b3a3d7f771705c85a161cbb08d
---
M docs/design-docs/tablet.md
1 file changed, 2 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I06e04031c8b817b3a3d7f771705c85a161cbb08d
Gerrit-Change-Number: 14120
Gerrit-PatchSet: 2
Gerrit-Owner: Anonymous Coward 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2847: Optimize iteration over selection vector in SerializeRowBlock

2019-08-22 Thread ZhangYao (Code Review)
Hello Tidy Bot, Kudu Jenkins, Yao Xu, Andrew Wong, Todd Lipcon,

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

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

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

Change subject: KUDU-2847: Optimize iteration over selection vector in 
SerializeRowBlock
..

KUDU-2847: Optimize iteration over selection vector in SerializeRowBlock

This improves the performance of serializing RowBlocks to the wire by
amortizing the cost of iterating over the set bits of the selection
bitmap. Instead of using the bitmap once per column, we convert the
bitmap to a list of set indices up front, and then use those indices for
conversion.

This changes the benchmarks to report cycles/cell instead of raw times,
making it easier to see the effects of column count or sparsity.

Benchmark results:
  column count 3 and row select rate 1: 5.12520529   ->  5.44280228 
cycles/cell
  column count 3 and row select rate 0.8:   12.74473127  ->  7.04588262 
cycles/cell
  column count 3 and row select rate 0.5:   23.98607461  ->  7.51201477 
cycles/cell
  column count 3 and row select rate 0.2:   40.66053179  ->  8.30233998 
cycles/cell
  column count 30 and row select rate 1:15.43040511  ->  15.97765642 
cycles/cell
  column count 30 and row select rate 0.8:  23.7480557   ->  17.84433817 
cycles/cell
  column count 30 and row select rate 0.5:  40.08323337  ->  17.67888749 
cycles/cell
  column count 30 and row select rate 0.2:  48.62210244  ->  16.56884988 
cycles/cell
  column count 300 and row select rate 1:   18.9223316   ->  20.90426976 
cycles/cell
  column count 300 and row select rate 0.8: 27.50793008  ->  21.92481189 
cycles/cell
  column count 300 and row select rate 0.5: 40.34367716  ->  21.32180024 
cycles/cell
  column count 300 and row select rate 0.2: 52.7446843   ->  20.92634437 
cycles/cell

Patch co-authored by Zhang Yao.

Change-Id: I19917d1875c46fd4cf98ef8a471b0340a76161e7
---
M src/kudu/common/rowblock-test.cc
M src/kudu/common/rowblock.cc
M src/kudu/common/rowblock.h
M src/kudu/common/wire_protocol-test.cc
M src/kudu/common/wire_protocol.cc
5 files changed, 107 insertions(+), 53 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I19917d1875c46fd4cf98ef8a471b0340a76161e7
Gerrit-Change-Number: 13721
Gerrit-PatchSet: 9
Gerrit-Owner: ZhangYao 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: Yao Xu 
Gerrit-Reviewer: ZhangYao 


[kudu-CR] KUDU-2847: Optimize iteration over selection vector in SerializeRowBlock

2019-08-22 Thread ZhangYao (Code Review)
ZhangYao has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/13721 )

Change subject: KUDU-2847: Optimize iteration over selection vector in 
SerializeRowBlock
..


Patch Set 8:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/13721/7//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/13721/7//COMMIT_MSG@10
PS7, Line 10: amortizing
> amortizing
Done


http://gerrit.cloudera.org:8080/#/c/13721/7/src/kudu/common/rowblock.cc
File src/kudu/common/rowblock.cc:

http://gerrit.cloudera.org:8080/#/c/13721/7/src/kudu/common/rowblock.cc@91
PS7, Line 91:  the bit index to the output until none are set.
:   for (int i = 0; i < n_bytes_; i++) {
: uint8_t bm = *bitmap++;
: while (bm != 0) {
:   int bit = Bits::FindLSBSetNonZero(bm);
:
> nit: Jumping into this is can be intimidating with no comments. Maybe add a
Done


http://gerrit.cloudera.org:8080/#/c/13721/7/src/kudu/common/wire_protocol.cc
File src/kudu/common/wire_protocol.cc:

http://gerrit.cloudera.org:8080/#/c/13721/7/src/kudu/common/wire_protocol.cc@927
PS7, Line 927: * slice = reinterpret_cast(src);
 :   size_t offset_in_indirect = indirect_data->size();
 :   indirect_data->append(reinterpret_cast(slice->data()), slice->size());
 :
 :   Slice*
> nit: fix ordering of *s
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I19917d1875c46fd4cf98ef8a471b0340a76161e7
Gerrit-Change-Number: 13721
Gerrit-PatchSet: 8
Gerrit-Owner: ZhangYao 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: Yao Xu 
Gerrit-Reviewer: ZhangYao 
Gerrit-Comment-Date: Thu, 22 Aug 2019 09:14:20 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2847: Optimize iteration over selection vector in SerializeRowBlock

2019-08-22 Thread ZhangYao (Code Review)
Hello Tidy Bot, Kudu Jenkins, Yao Xu, Andrew Wong, Todd Lipcon,

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

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

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

Change subject: KUDU-2847: Optimize iteration over selection vector in 
SerializeRowBlock
..

KUDU-2847: Optimize iteration over selection vector in SerializeRowBlock

This improves the performance of serializing RowBlocks to the wire by
amortizing the cost of iterating over the set bits of the selection
bitmap. Instead of using the bitmap once per column, we convert the
bitmap to a list of set indices up front, and then use those indices for
conversion.

This changes the benchmarks to report cycles/cell instead of raw times,
making it easier to see the effects of column count or sparsity.

Benchmark results:
  column count 3 and row select rate 1: 5.12520529   ->  5.44280228 
cycles/cell
  column count 3 and row select rate 0.8:   12.74473127  ->  7.04588262 
cycles/cell
  column count 3 and row select rate 0.5:   23.98607461  ->  7.51201477 
cycles/cell
  column count 3 and row select rate 0.2:   40.66053179  ->  8.30233998 
cycles/cell
  column count 30 and row select rate 1:15.43040511  ->  15.97765642 
cycles/cell
  column count 30 and row select rate 0.8:  23.7480557   ->  17.84433817 
cycles/cell
  column count 30 and row select rate 0.5:  40.08323337  ->  17.67888749 
cycles/cell
  column count 30 and row select rate 0.2:  48.62210244  ->  16.56884988 
cycles/cell
  column count 300 and row select rate 1:   18.9223316   ->  20.90426976 
cycles/cell
  column count 300 and row select rate 0.8: 27.50793008  ->  21.92481189 
cycles/cell
  column count 300 and row select rate 0.5: 40.34367716  ->  21.32180024 
cycles/cell
  column count 300 and row select rate 0.2: 52.7446843   ->  20.92634437 
cycles/cell

Patch co-authored by Zhang Yao.

Change-Id: I19917d1875c46fd4cf98ef8a471b0340a76161e7
---
M src/kudu/common/rowblock-test.cc
M src/kudu/common/rowblock.cc
M src/kudu/common/rowblock.h
M src/kudu/common/wire_protocol-test.cc
M src/kudu/common/wire_protocol.cc
5 files changed, 107 insertions(+), 54 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I19917d1875c46fd4cf98ef8a471b0340a76161e7
Gerrit-Change-Number: 13721
Gerrit-PatchSet: 8
Gerrit-Owner: ZhangYao 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Reviewer: Yao Xu 
Gerrit-Reviewer: ZhangYao 


[kudu-CR] [util] Add ExtractFloat method to JsonReader and improve ExtractDouble method

2019-08-22 Thread Yifan Zhang (Code Review)
Yifan Zhang has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/14114 )

Change subject: [util] Add ExtractFloat method to JsonReader and improve 
ExtractDouble method
..


Patch Set 3:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/14114/2/src/kudu/util/jsonreader.cc
File src/kudu/util/jsonreader.cc:

http://gerrit.cloudera.org:8080/#/c/14114/2/src/kudu/util/jsonreader.cc@248
PS2, Line 248:
> This seems to be one of the major differences from the rapidjson implementa
There are some precision issues in rapidjson implementation.

Some of tests in rapidjson are:
EXPECT_TRUE(Value(12.25).IsLosslessFloat());
EXPECT_FALSE(Value(0.3).IsLosslessFloat());
0.3 is an approximation, for it is not powers of two or integer multiples 
thereof, there may be precision lost in conversion between double and float.

The comparison 'a >= b && a <=b' seems not reasonable, for we just want to 
extract a float value, I think  'fabs(a-b) <= 1e-7' is better.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ica0a04fb21daceaa44233995a42a60686f59361b
Gerrit-Change-Number: 14114
Gerrit-PatchSet: 3
Gerrit-Owner: Yifan Zhang 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Yifan Zhang 
Gerrit-Comment-Date: Thu, 22 Aug 2019 08:19:49 +
Gerrit-HasComments: Yes


[kudu-CR] [docs]: Fix bad marddown formatting in tablets.md

2019-08-22 Thread Anonymous Coward (Code Review)
lingbi...@gmail.com has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/14120


Change subject: [docs]: Fix bad marddown formatting in tablets.md
..

[docs]: Fix bad marddown formatting in tablets.md

Use '```' for code block

Change-Id: I06e04031c8b817b3a3d7f771705c85a161cbb08d
---
M docs/design-docs/tablet.md
1 file changed, 2 insertions(+), 2 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I06e04031c8b817b3a3d7f771705c85a161cbb08d
Gerrit-Change-Number: 14120
Gerrit-PatchSet: 1
Gerrit-Owner: Anonymous Coward 


[kudu-CR] KUDU-2921: Exposing the table statistics to spark relation.

2019-08-22 Thread ZhangYao (Code Review)
ZhangYao has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/14107 )

Change subject: KUDU-2921: Exposing the table statistics to spark relation.
..


Patch Set 2:

(11 comments)

> Did you consider adding the statistics to the existing
 > GetTableLocations RPC response instead of creating a brand new RPC?
 > Query planners and job drivers already use it to open tables, so
 > it'd mean one less round trip to get the information.
Actually, I have considered to put those statistics into existing message such 
as getShema which will be used when opening table. But as for the table 
statistics may contain more and more entries it may be better to be a 
independent rpc. What's more, because this statistics may change when client 
trying to write, so I think it will be useful to support a rpc for client to 
get the statistics change. Although for query plan it will only use once and 
save one round trip if we put it into existing rpc but it will be heavy if we 
want to get statistic change in other use cases.

 > > Patch Set 1:
 > >
 > > Did you consider adding the statistics to the existing
 > GetTableLocations RPC response instead of creating a brand new RPC?
 > Query planners and job drivers already use it to open tables, so
 > it'd mean one less round trip to get the information.
 >
 > If doing this, let's make sure to make it optional, since the
 > statistics could become larger later (eg with things like
 > histograms, NDVs per column, etc)

Will make it optional if do that :)

http://gerrit.cloudera.org:8080/#/c/14107/1/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/14107/1/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java@816
PS1, Line 816: GetTableStatisticsRequest rpc = new 
GetTableStatisticsRequest(this.masterTable,
> Are you planning to expose this in the c++ client too?
Yes, will do this :) maybe next part.


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

http://gerrit.cloudera.org:8080/#/c/14107/1/java/kudu-client/src/main/java/org/apache/kudu/client/GetTableStatisticsRequest.java@11
PS1, Line 11: class GetTableStatisticsRequest extends 
KuduRpc {
> This can be package private.
Done


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

http://gerrit.cloudera.org:8080/#/c/14107/1/java/kudu-client/src/main/java/org/apache/kudu/client/GetTableStatisticsResponse.java@8
PS1, Line 8:   private final long onDiskSize;
> If you see my other comment on defining a KuduTableStatistics object, then
Done


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

http://gerrit.cloudera.org:8080/#/c/14107/1/java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java@227
PS1, Line 227:   public KuduTableStatistics getTableStatistics(String name) 
throws KuduException {
> Does it make sense for this method to be on the KuduTable object? The api w
I have implemented this method in KuduTable. Done.


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

http://gerrit.cloudera.org:8080/#/c/14107/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java@811
PS1, Line 811:
> Is there a more deterministic way to ensure this happens? Using sleep often
Currently I don't find a way to trigger the heartbeat between tserver and 
master from java client side(This may need new rpc to implement the control). 
Here I use update_tablet_stats_interval_ms and heartbeat_interval_ms to control 
the heartbeat frequency and wait  enought time for the statistics to be 
collected on master. If the heartbeat and statistics work correctly it supposed 
to be right.
Whatever it still flaky somehow. Anyone have other advices?


http://gerrit.cloudera.org:8080/#/c/14107/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java@814
PS1, Line 814: Thread.sleep(200 * 6);
> Can you test some edge cases? Maybe call this with 0 rows, and insert rows
0 rows has been test in this test. As for test inserting row increasingly, it 
can do but the statistics are suppose to lagging so maybe test the 
monotonically increasing of statistics and the final accuracy :)



[kudu-CR] KUDU-2921: Exposing the table statistics to spark relation.

2019-08-22 Thread ZhangYao (Code Review)
Hello Tidy Bot, Kudu Jenkins, Andrew Wong, Adar Dembo, Grant Henke, Todd Lipcon,

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

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

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

Change subject: KUDU-2921: Exposing the table statistics to spark relation.
..

KUDU-2921: Exposing the table statistics to spark relation.

Exposing current table statistics to spark via rpc from client to master.

Change-Id: I7742a76708f989b0ccc8ba417f3390013e260175
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
A 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableStatisticsRequest.java
A 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableStatisticsResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduTable.java
A java/kudu-client/src/main/java/org/apache/kudu/client/KuduTableStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/DefaultSource.scala
M 
java/kudu-spark/src/test/scala/org/apache/kudu/spark/kudu/DefaultSourceTest.scala
M src/kudu/master/catalog_manager.cc
M src/kudu/master/catalog_manager.h
M src/kudu/master/master-test.cc
M src/kudu/master/master.proto
M src/kudu/master/master_service.cc
M src/kudu/master/master_service.h
15 files changed, 414 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I7742a76708f989b0ccc8ba417f3390013e260175
Gerrit-Change-Number: 14107
Gerrit-PatchSet: 2
Gerrit-Owner: ZhangYao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [util] Add ExtractFloat method to JsonReader and improve ExtractDouble method

2019-08-22 Thread Yifan Zhang (Code Review)
Hello Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: [util] Add ExtractFloat method to JsonReader and improve 
ExtractDouble method
..

[util] Add ExtractFloat method to JsonReader and improve ExtractDouble method

ExtractDouble method should not only parse double values, int values
that can be losslessly converted to double should also be parsed.

Though there is already IsLosslessFloat() in rapidjson library,
the implementation has some precision issues.
This patch re-implement the method.

Change-Id: Ica0a04fb21daceaa44233995a42a60686f59361b
---
M src/kudu/tools/tool_action_table.cc
M src/kudu/util/jsonreader-test.cc
M src/kudu/util/jsonreader.cc
M src/kudu/util/jsonreader.h
4 files changed, 89 insertions(+), 6 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ica0a04fb21daceaa44233995a42a60686f59361b
Gerrit-Change-Number: 14114
Gerrit-PatchSet: 3
Gerrit-Owner: Yifan Zhang 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins (120)