[kudu-CR] consensus: Reduce copy/paste for observer callbacks

2018-01-08 Thread Mike Percy (Code Review)
Mike Percy has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8962 )

Change subject: consensus: Reduce copy/paste for observer callbacks
..

consensus: Reduce copy/paste for observer callbacks

This is a net-negative line patch that unifies how the PeerMessageQueue
notifies PeerMessageQueueObserver instances that are registered with it.
The patch removes most of the copy/paste in this part of the code.

This patch has no functional changes.

Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
Reviewed-on: http://gerrit.cloudera.org:8080/8962
Reviewed-by: Alexey Serbin 
Tested-by: Kudu Jenkins
---
M src/kudu/consensus/consensus_queue.cc
M src/kudu/consensus/consensus_queue.h
2 files changed, 35 insertions(+), 83 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
Gerrit-Change-Number: 8962
Gerrit-PatchSet: 3
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] mini cluster: Remove tablet server index by uuid() from interface

2018-01-08 Thread Mike Percy (Code Review)
Mike Percy has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8963 )

Change subject: mini_cluster: Remove tablet_server_index_by_uuid() from 
interface
..

mini_cluster: Remove tablet_server_index_by_uuid() from interface

The tablet_server_index_by_uuid() method, which common to the
InternalMiniCluster and ExternalMiniCluster, isn't really useful from
the parent interface (MiniCluster) and isn't compatible with a
MixedMiniCluster that I'm working on. Let's just remove it from the pure
virtual parent interface.

Change-Id: I67d25278ee8c2b9379ed83008f162d8ac36271ab
Reviewed-on: http://gerrit.cloudera.org:8080/8963
Reviewed-by: Alexey Serbin 
Tested-by: Kudu Jenkins
---
M src/kudu/mini-cluster/external_mini_cluster.h
M src/kudu/mini-cluster/internal_mini_cluster.h
M src/kudu/mini-cluster/mini_cluster.h
3 files changed, 6 insertions(+), 6 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I67d25278ee8c2b9379ed83008f162d8ac36271ab
Gerrit-Change-Number: 8963
Gerrit-PatchSet: 3
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 


[kudu-CR] consensus: Reduce copy/paste for observer callbacks

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

Change subject: consensus: Reduce copy/paste for observer callbacks
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
Gerrit-Change-Number: 8962
Gerrit-PatchSet: 2
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 09 Jan 2018 02:43:14 +
Gerrit-HasComments: No


[kudu-CR] mini cluster: Remove tablet server index by uuid() from interface

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

Change subject: mini_cluster: Remove tablet_server_index_by_uuid() from 
interface
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I67d25278ee8c2b9379ed83008f162d8ac36271ab
Gerrit-Change-Number: 8963
Gerrit-PatchSet: 2
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Comment-Date: Tue, 09 Jan 2018 02:43:03 +
Gerrit-HasComments: No


[kudu-CR] [tablet] Add a pre-compaction check to avoid compactions in the past

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Kudu Jenkins, Todd Lipcon,

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

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

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

Change subject: [tablet] Add a pre-compaction check to avoid compactions in the 
past
..

[tablet] Add a pre-compaction check to avoid compactions in the past

This adds a pre-compaction check that gets the max timestamp of all
the rows that will be considered for compaction and makes sure that
timestamp "may" be committed under the compaction snapshot. That is
that the max timestamp among the rows is not so far in the future,
relative to the compaction snapshot, that that the compaction would
rewind committed row state.

This is generalization of the repro introduced in previous patches
for KUDU-2233 but that now applies to all compactions in the past
and not only those which have duplicated rows in the inputs.

This is not a fix yet, that's left for follow up patches.

Change-Id: I80edc9dc8d5eec475998a9c721b9f591eb6180dc
---
M src/kudu/tablet/compaction.cc
M src/kudu/tablet/compaction.h
M src/kudu/tablet/delta_tracker.cc
M src/kudu/tablet/delta_tracker.h
M src/kudu/tablet/diskrowset.cc
M src/kudu/tablet/diskrowset.h
M src/kudu/tablet/memrowset.cc
M src/kudu/tablet/memrowset.h
M src/kudu/tablet/mock-rowsets.h
M src/kudu/tablet/rowset.cc
M src/kudu/tablet/rowset.h
M src/kudu/tablet/tablet.cc
12 files changed, 153 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I80edc9dc8d5eec475998a9c721b9f591eb6180dc
Gerrit-Change-Number: 8887
Gerrit-PatchSet: 6
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] consensus: Reduce copy/paste for observer callbacks

2018-01-08 Thread Mike Percy (Code Review)
Hello Tidy Bot, Alexey Serbin, Kudu Jenkins, Todd Lipcon,

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

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

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

Change subject: consensus: Reduce copy/paste for observer callbacks
..

consensus: Reduce copy/paste for observer callbacks

This is a net-negative line patch that unifies how the PeerMessageQueue
notifies PeerMessageQueueObserver instances that are registered with it.
The patch removes most of the copy/paste in this part of the code.

This patch has no functional changes.

Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
---
M src/kudu/consensus/consensus_queue.cc
M src/kudu/consensus/consensus_queue.h
2 files changed, 35 insertions(+), 83 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
Gerrit-Change-Number: 8962
Gerrit-PatchSet: 2
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] consensus: Reduce copy/paste for observer callbacks

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

Change subject: consensus: Reduce copy/paste for observer callbacks
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/8962/1/src/kudu/consensus/consensus_queue.cc
File src/kudu/consensus/consensus_queue.cc:

http://gerrit.cloudera.org:8080/#/c/8962/1/src/kudu/consensus/consensus_queue.cc@1323
PS1, Line 1323: void 
PeerMessageQueue::NotifyObserversTask(std::function
 func) {
> seems accurate
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
Gerrit-Change-Number: 8962
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:47:40 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2233 Add a test case for compactions in the past

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Kudu Jenkins, Todd Lipcon,

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

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

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

Change subject: KUDU-2233 Add a test case for compactions in the past
..

KUDU-2233 Add a test case for compactions in the past

In some cases we're performing compactions before the clock
has been updated at all, making the compaction snapshot an empty one.
This makes it so the compaction runs on a snapshot that discards
all redo deltas and applies all undos.

When a compaction with such a snapshot finds two duplicate rows
(a ghost and live row) it can't distinguish the two because the redo
DELETE of the ghost row has been discarded, causing the crash
reported in KUDU-2233.

This is a small subset of a broader set of problems that happen
when compactions are performed under such snapshots, the most
obvious one being that updates are discarded silently.

This state is hard to reach as it requires a restart of a tablet
server with a considerable amount of data (i.e. not empty) with
a single wal segment (previous segments having been gc'd in the
previous incarnation), with a single op in it. In particular this
single op needs to be a NO_OP or a CHANGE_CONFIG op, as these are
the only kinds of operations whose timestamps aren't used to
update the clock.

In order to get to this and similar states in fuzz-itest this
patch adds three new types of operations:
- Roll log - Rolls the log if possible.
- GC log - Garbage collects log segments, if possible.
- Run election - Runs an (emulated) leader election increasing the
term and adding a NO_OP to the log.

These operations are presently not part of the operations
considered when generating random test sequences as those might
trigger the bug.

This patch adds a narrow, exact repro of the issue that is described
in KUDU-2233 in the form of an additional test that is presently
disabled. The repro is narrow because it attempts to mimic
the crash from the original ticket exactly, instead of trying to
catch the broader set of problems.

Change-Id: Ibf5685897ef7580dd743faac4d68690a25663e4c
---
M src/kudu/consensus/log.cc
M src/kudu/integration-tests/fuzz-itest.cc
2 files changed, 93 insertions(+), 1 deletion(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ibf5685897ef7580dd743faac4d68690a25663e4c
Gerrit-Change-Number: 8885
Gerrit-PatchSet: 6
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [tools] make kudu CLI auto-detect the replication scheme

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

Change subject: [tools] make kudu CLI auto-detect the replication scheme
..


Patch Set 4: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia536c1f64ef8173aa4385db8ba01581bc3528154
Gerrit-Change-Number: 8915
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:38:49 +
Gerrit-HasComments: No


[kudu-CR] [tools] make kudu CLI auto-detect the replication scheme

2018-01-08 Thread Mike Percy (Code Review)
Mike Percy has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8915 )

Change subject: [tools] make kudu CLI auto-detect the replication scheme
..

[tools] make kudu CLI auto-detect the replication scheme

Added functionality to allow for automatic detection of appropriate
replica move scenario by the 'kudu tablet replica move' sub-command.

This is a follow-up for 9120cdd1d288ef6b3e03e2cd8445436712a7d4a9.

Change-Id: Ia536c1f64ef8173aa4385db8ba01581bc3528154
Reviewed-on: http://gerrit.cloudera.org:8080/8915
Tested-by: Kudu Jenkins
Reviewed-by: Mike Percy 
---
M src/kudu/consensus/consensus.proto
M src/kudu/tools/kudu-admin-test.cc
M src/kudu/tools/tool_action_tablet.cc
M src/kudu/tserver/tablet_service.cc
4 files changed, 61 insertions(+), 48 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia536c1f64ef8173aa4385db8ba01581bc3528154
Gerrit-Change-Number: 8915
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [tablet] Avoid compactions in the past

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Kudu Jenkins, Todd Lipcon,

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

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

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

Change subject: [tablet] Avoid compactions in the past
..

[tablet] Avoid compactions in the past

A previous patch introduced a reproduction for a bug where,
in certain cases, mvcc state would not be advanced at all
during tablet bootstrap causing compactions to happen in
the past.

The fix is to make sure that all consensus rounds advance
safe time, even NO_OP and CHANGE_CONFIG rounds.

This patch adds a fix, enables the failing itest demonstrating
the fix works and adds the new operations to the set of ops
considered in the generation of random test cases so that we're
more likely to catch bugs like this in the future.

Change-Id: I6db9394d37b4ad1e7b1b1bc6ba0535558c20d9a8
---
M src/kudu/integration-tests/fuzz-itest.cc
M src/kudu/tablet/tablet_bootstrap.cc
2 files changed, 18 insertions(+), 12 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6db9394d37b4ad1e7b1b1bc6ba0535558c20d9a8
Gerrit-Change-Number: 8965
Gerrit-PatchSet: 3
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [master/tserver] enforce re-replication scheme consistency

2018-01-08 Thread Mike Percy (Code Review)
Mike Percy has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8901 )

Change subject: [master/tserver] enforce re-replication scheme consistency
..

[master/tserver] enforce re-replication scheme consistency

Don't register a tablet server with master if they run with different
tablet replica replacement schemes.

Added an integration test to verify the desired behavior.

Change-Id: I71c4c2e72bb2d62cec6de0f6d00b418377e8ae85
Reviewed-on: http://gerrit.cloudera.org:8080/8901
Tested-by: Kudu Jenkins
Reviewed-by: Mike Percy 
---
M src/kudu/consensus/CMakeLists.txt
A src/kudu/consensus/replica_management.proto
M src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc
M src/kudu/master/master.proto
M src/kudu/master/master_service.cc
M src/kudu/tserver/heartbeater.cc
6 files changed, 182 insertions(+), 15 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I71c4c2e72bb2d62cec6de0f6d00b418377e8ae85
Gerrit-Change-Number: 8901
Gerrit-PatchSet: 6
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [master/tserver] enforce re-replication scheme consistency

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

Change subject: [master/tserver] enforce re-replication scheme consistency
..


Patch Set 5: Code-Review+2

I think this is ready to go, so let's commit this for now. If there are still 
concerns later about the method of feature detection we can revisit the 
implementation.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I71c4c2e72bb2d62cec6de0f6d00b418377e8ae85
Gerrit-Change-Number: 8901
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:35:15 +
Gerrit-HasComments: No


[kudu-CR] Add some DVLOG statements to help in debugging compaction issues

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Mike Percy, Kudu Jenkins, Andrew Wong, Todd Lipcon,

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

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

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

Change subject: Add some DVLOG statements to help in debugging compaction issues
..

Add some DVLOG statements to help in debugging compaction issues

This adds some DVLOG statemenst that were crucial in debugging
KUDU-2233, particularly aroung merge compactions, clock advancement
and log gc.

Change-Id: I958045a75feceee19c09961de106bbacd343c739
---
M src/kudu/tablet/compaction.cc
M src/kudu/tablet/mvcc.cc
M src/kudu/tablet/tablet_replica.cc
3 files changed, 21 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I958045a75feceee19c09961de106bbacd343c739
Gerrit-Change-Number: 8886
Gerrit-PatchSet: 5
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [mvcc] Fix watermark advancement in the absence of committed transactions

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Kudu Jenkins, Todd Lipcon,

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

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

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

Change subject: [mvcc] Fix watermark advancement in the absence of committed 
transactions
..

[mvcc] Fix watermark advancement in the absence of committed transactions

MvccSnapshot's 'none_committed_at_or_after_' (ncaoa) watermark
indicates the point after which no transactions are committed.
This is used to cull redo deltas that cannot contain any
committed transactions under a snapshot, thus reducing work when
applying deltas.

By definition, this watermark is never supposed to be lower than
the 'all_committed_before_' watermark. If this invariant is broken
delta selection might be wrong by skipping whole delta files.

Normally the ncaoa watermark is advanced when transactions are
marked as committed, in which case this is done correctly. However
there is problem when the 'all_committed_before_' watermark
is advanced and there are no committed or in flight transactions.
In this case the ncaoa watermark might be left behind, manifesting
as incorrect delta application/skipping or even crashes.

This patch includes a fix and a very directed test that makes sure
it is correct. A follow up patch includes a new test in fuzz-itest
that would trigger a crash without the fix.

Change-Id: Icf94ea289204adf2eed797c3623cdea1b11b09db
---
M src/kudu/tablet/mvcc-test.cc
M src/kudu/tablet/mvcc.cc
M src/kudu/tablet/mvcc.h
3 files changed, 50 insertions(+), 1 deletion(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Icf94ea289204adf2eed797c3623cdea1b11b09db
Gerrit-Change-Number: 8964
Gerrit-PatchSet: 2
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [mvcc] Fix watermark advancement in the absence of committed transactions

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8964 )

Change subject: [mvcc] Fix watermark advancement in the absence of committed 
transactions
..


Patch Set 1:

(2 comments)

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

http://gerrit.cloudera.org:8080/#/c/8964/1//COMMIT_MSG@9
PS1, Line 9: ncaof
> this abbreviation doesn't seem to match the first letters of those words :)
Done


http://gerrit.cloudera.org:8080/#/c/8964/1/src/kudu/tablet/mvcc-test.cc
File src/kudu/tablet/mvcc-test.cc:

http://gerrit.cloudera.org:8080/#/c/8964/1/src/kudu/tablet/mvcc-test.cc@745
PS1, Line 745: // In this case we'll advance safe/clean time but not the 
'none_committed_at_or_after_',
 : // meaning this watermark remains lower than safe/clean time.
 : /
> i'm confused by this comment for this test... are you describing the test's
right, my bad. fixed



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Icf94ea289204adf2eed797c3623cdea1b11b09db
Gerrit-Change-Number: 8964
Gerrit-PatchSet: 1
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:32:49 +
Gerrit-HasComments: Yes


[kudu-CR] [master/tserver] enforce re-replication scheme consistency

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

Change subject: [master/tserver] enforce re-replication scheme consistency
..


Patch Set 5:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master.proto
File src/kudu/master/master.proto:

http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master.proto@294
PS4, Line 294: optional consensus.ReplicaManagementInfoPB 
replica_management_info = 7;
> After some consideration I decided to go with this approach.  The reasoning
Alexey and I just spent some time offline investigating the possibility of 
using feature flags. The biggest reason why feature flags alone don't appear to 
be sufficient for this use case is that we want to implement different behavior 
not only based on capabilities but also based on whether some feature is 
enabled from a configuration perspective. Since we have to implement some 
application logic on a per-message basis to achieve that, using a feature flag 
doesn't seem to be sufficient in this case.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I71c4c2e72bb2d62cec6de0f6d00b418377e8ae85
Gerrit-Change-Number: 8901
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:28:13 +
Gerrit-HasComments: Yes


[kudu-CR] Add some DVLOG statements to help in debugging compaction issues

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8886 )

Change subject: Add some DVLOG statements to help in debugging compaction issues
..


Patch Set 4:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/8886/4/src/kudu/tablet/compaction.cc
File src/kudu/tablet/compaction.cc:

http://gerrit.cloudera.org:8080/#/c/8886/4/src/kudu/tablet/compaction.cc@507
PS4, Line 507: 3
> why's this one 3 instead of 4 like the rest?
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I958045a75feceee19c09961de106bbacd343c739
Gerrit-Change-Number: 8886
Gerrit-PatchSet: 4
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:27:17 +
Gerrit-HasComments: Yes


[kudu-CR] Add some DVLOG statements to help in debugging compaction issues

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8886 )

Change subject: Add some DVLOG statements to help in debugging compaction issues
..


Patch Set 4:

I've had to rewrite a version of these in some form between 3 and 5 times, so I 
just figured I should make them permanent. These are DVLOG and a high level at 
that, so they're precisely to be used in unite test scenarios.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I958045a75feceee19c09961de106bbacd343c739
Gerrit-Change-Number: 8886
Gerrit-PatchSet: 4
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:26:11 +
Gerrit-HasComments: No


[kudu-CR] [consensus] add unsafe gflag to bypass "safe to evict" logic

2018-01-08 Thread Mike Percy (Code Review)
Mike Percy has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8889 )

Change subject: [consensus] add unsafe gflag to bypass "safe to evict" logic
..

[consensus] add unsafe gflag to bypass "safe to evict" logic

Replica replacement: added an option to attempt Raft configuration
update even in absence of healthy majority of tablet replicas.

This option is for testing purposes: as we could see during latest load
testing, an attempt to change the configuration under such unusual
circumstances allowed for exposing some bugs.

In run-time, the option is controlled by the newly introduced flag
--raft_attempt_to_replace_replica_without_majority.  It affects both
3-4-3 and 3-2-3 replica replacement schemes.

Change-Id: I4f89b6c584296e3da5047475c5c86c4cb1118ad0
Reviewed-on: http://gerrit.cloudera.org:8080/8889
Tested-by: Alexey Serbin 
Reviewed-by: Mike Percy 
---
M src/kudu/consensus/consensus_queue.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/consensus/raft_consensus.cc
M src/kudu/integration-tests/raft_consensus-itest.cc
M src/kudu/master/catalog_manager.cc
7 files changed, 504 insertions(+), 373 deletions(-)

Approvals:
  Alexey Serbin: Verified
  Mike Percy: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I4f89b6c584296e3da5047475c5c86c4cb1118ad0
Gerrit-Change-Number: 8889
Gerrit-PatchSet: 6
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [consensus] add unsafe gflag to bypass "safe to evict" logic

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

Change subject: [consensus] add unsafe gflag to bypass "safe to evict" logic
..


Patch Set 5: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4f89b6c584296e3da5047475c5c86c4cb1118ad0
Gerrit-Change-Number: 8889
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:21:43 +
Gerrit-HasComments: No


[kudu-CR] KUDU-1097: turn on 3-4-3 replica management scheme

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

Change subject: KUDU-1097: turn on 3-4-3 replica management scheme
..

KUDU-1097: turn on 3-4-3 replica management scheme

This patch enables 3-4-3 replica management scheme for tablets: now
the 3-4-3 scheme is used by default.  To switch back to 3-2-3 scheme,
set --raft_prepare_replacement_before_eviction=false for both masters
and tablet servers.

Change-Id: I781d02fe455140ed3a4693438eece74f07700946
Reviewed-on: http://gerrit.cloudera.org:8080/8862
Tested-by: Kudu Jenkins
Reviewed-by: Mike Percy 
---
M src/kudu/consensus/raft_consensus.cc
1 file changed, 1 insertion(+), 1 deletion(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I781d02fe455140ed3a4693438eece74f07700946
Gerrit-Change-Number: 8862
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [docs] Added steps to update HMS after migrating to multiple Kudu masters

2018-01-08 Thread Alex Rodoni (Code Review)
Hello Thomas Tauber-Marshall, Jean-Daniel Cryans, Kudu Jenkins,

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

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

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

Change subject: [docs] Added steps to update HMS after migrating to multiple 
Kudu masters
..

[docs] Added steps to update HMS after migrating to multiple Kudu masters

Change-Id: Iab3999c9e581ed3591b220c08491cdae867c91db
---
M docs/administration.adoc
M docs/security.adoc
2 files changed, 48 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iab3999c9e581ed3591b220c08491cdae867c91db
Gerrit-Change-Number: 8948
Gerrit-PatchSet: 8
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Thomas Tauber-Marshall 


[kudu-CR] KUDU-1097: turn on 3-4-3 replica management scheme

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

Change subject: KUDU-1097: turn on 3-4-3 replica management scheme
..


Patch Set 4: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I781d02fe455140ed3a4693438eece74f07700946
Gerrit-Change-Number: 8862
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 09 Jan 2018 01:12:36 +
Gerrit-HasComments: No


[kudu-CR] [docs] Added steps to update HMS after migrating to multiple Kudu masters

2018-01-08 Thread Alex Rodoni (Code Review)
Hello Thomas Tauber-Marshall, Jean-Daniel Cryans, Kudu Jenkins,

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

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

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

Change subject: [docs] Added steps to update HMS after migrating to multiple 
Kudu masters
..

[docs] Added steps to update HMS after migrating to multiple Kudu masters

Change-Id: Iab3999c9e581ed3591b220c08491cdae867c91db
---
M docs/administration.adoc
1 file changed, 35 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iab3999c9e581ed3591b220c08491cdae867c91db
Gerrit-Change-Number: 8948
Gerrit-PatchSet: 7
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Thomas Tauber-Marshall 


[kudu-CR](branch-1.5.x) Add 'kudu fs list' tool

2018-01-08 Thread Dan Burkert (Code Review)
Hello Kudu Jenkins, Adar Dembo,

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

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

to review the following change.


Change subject: Add 'kudu fs list' tool
..

Add 'kudu fs list' tool

This tool aims to replace exploratory usages of 'kudu fs dump' and
'kudu local_replica dump' with an improved, unified tool. 'kudu fs list' is
more flexible, easier to use, and can show more information.

Output is formatted using the DataTable abstraction, which gives it
good default pretty-printing, with options to output in CSV and JSON for
scripts. Results can easily be filtered to a specific table, tablet, column,
rowset, or block using flags.

The tool can output many different fields: table, table-id, tablet-id,
partition, rowset-id, block-id, block-kind, column, column-id,
cfile-data-type, cfile-encoding, cfile-compression, cfile-num-values,
cfile-size cfile-incompatible-features, cfile-compatible-features,
cfile-min-key, cfile-max-key, and cfile-delta-stats. More fields should
be straightforward to add.

The tool transparently joins information from tablet superblocks with
CFile footers, only materializing the metadata necessary to satisfy the
requested fields and filters.

Examples:

To get our bearings, let's look at what tablets are stored on a local
tablet server:

```bash
$ kudu fs list --fs-wal-dir=/data/kudu/tserver \
--columns="table, table-id, tablet-id, partition"

 table | table-id   
  |tablet-id |partition
---+--+--+-
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 2a631714f2d243ff92bf525630baa1ec | HASH 
(key) PARTITION 7, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 36827286a00049bc8b242243c6728157 | HASH 
(key) PARTITION 0, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 3880b30ccebd4ede867febd9c7d5580f | HASH 
(key) PARTITION 0, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 39436e9e17d84884b1cb689e88b8415f | HASH 
(key) PARTITION 5, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 44252efb9aaa4c2c963cf6dd5e875c04 | HASH 
(key) PARTITION 3, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 57c92ed8391b4d2bbfdeb339f9fb59fd | HASH 
(key) PARTITION 2, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 68a64aba5917499ebb7773f16bcd6f6d | HASH 
(key) PARTITION 7, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 6b5f0729a9bf454791239f77b0912f4e | HASH 
(key) PARTITION 1, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 8a2d120bd6984144ae963bfe8435206e | HASH 
(key) PARTITION 4, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 8b3ba4f415f945849a6a690a142cf1e4 | HASH 
(key) PARTITION 5, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 9656be3aa07248a69e3ad6edaa0048cb | HASH 
(key) PARTITION 1, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 9e8e444d079842a9b4a83ee9f8bed633 | HASH 
(key) PARTITION 6, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | a794a8e5d3f24e70a96b0beb5a355823 | HASH 
(key) PARTITION 3, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | bfb8f24b91cd4ecf924aacbb37125041 | HASH 
(key) PARTITION 2, RANGE (key) PARTITION UNBOUNDED
 foo   | 
e184a99893b44b17a7b2131123c6de0e | c3ce418c72ab4fea8548387f236dd1fa |
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | e00a284081ca468a994a3609a511e886 | HASH 
(key) PARTITION 4, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | efa22fc899a44bb2a16f620464a15c60 | HASH 
(key) PARTITION 6, RANGE (key) PARTITION UNBOUNDED
```

The 'foo' table looks interesting; let's drill down into its tablet, and
see what rowsets and blocks it has, and some of their associated metadata:

```bash
$ kudu fs list --fs-wal-dir=/data/kudu/tserver \
--

[kudu-CR] consensus: Reduce copy/paste for observer callbacks

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

Change subject: consensus: Reduce copy/paste for observer callbacks
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/8962/1/src/kudu/consensus/consensus_queue.cc
File src/kudu/consensus/consensus_queue.cc:

http://gerrit.cloudera.org:8080/#/c/8962/1/src/kudu/consensus/consensus_queue.cc@1323
PS1, Line 1323: void 
PeerMessageQueue::NotifyObserversTask(std::function
 func) {
> warning: the parameter 'func' is copied for each invocation but only used a
seems accurate



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
Gerrit-Change-Number: 8962
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 09 Jan 2018 00:10:21 +
Gerrit-HasComments: Yes


[kudu-CR] [mvcc] Fix watermark advancement in the absence of committed transactions

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

Change subject: [mvcc] Fix watermark advancement in the absence of committed 
transactions
..


Patch Set 1:

(2 comments)

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

http://gerrit.cloudera.org:8080/#/c/8964/1//COMMIT_MSG@9
PS1, Line 9: ncaof
this abbreviation doesn't seem to match the first letters of those words :)


http://gerrit.cloudera.org:8080/#/c/8964/1/src/kudu/tablet/mvcc-test.cc
File src/kudu/tablet/mvcc-test.cc:

http://gerrit.cloudera.org:8080/#/c/8964/1/src/kudu/tablet/mvcc-test.cc@745
PS1, Line 745: // In this case we'll advance safe/clean time but not the 
'none_committed_at_or_after_',
 : // meaning this watermark remains lower than safe/clean time.
 : /
i'm confused by this comment for this test... are you describing the test's 
status when it was failing?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Icf94ea289204adf2eed797c3623cdea1b11b09db
Gerrit-Change-Number: 8964
Gerrit-PatchSet: 1
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 09 Jan 2018 00:03:10 +
Gerrit-HasComments: Yes


[kudu-CR] Add some DVLOG statements to help in debugging compaction issues

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

Change subject: Add some DVLOG statements to help in debugging compaction issues
..


Patch Set 4:

(1 comment)

seems fine, but do you think these are useful enough to commit or were they 
one-offs for debugging this issue? it seems like enabling them outside of a 
unit test scenario would probably be so noisy as to be not useful

http://gerrit.cloudera.org:8080/#/c/8886/4/src/kudu/tablet/compaction.cc
File src/kudu/tablet/compaction.cc:

http://gerrit.cloudera.org:8080/#/c/8886/4/src/kudu/tablet/compaction.cc@507
PS4, Line 507: 3
why's this one 3 instead of 4 like the rest?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I958045a75feceee19c09961de106bbacd343c739
Gerrit-Change-Number: 8886
Gerrit-PatchSet: 4
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 08 Jan 2018 23:59:20 +
Gerrit-HasComments: Yes


[kudu-CR] [docs] Added a section for Kudu clients connecting to secure clusters

2018-01-08 Thread Alex Rodoni (Code Review)
Hello Alexey Serbin, Dan Burkert, Jean-Daniel Cryans, Kudu Jenkins,

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

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

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

Change subject: [docs] Added a section for Kudu clients connecting to secure 
clusters
..

[docs] Added a section for Kudu clients connecting to secure clusters

Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
---
M docs/security.adoc
1 file changed, 13 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
Gerrit-Change-Number: 8953
Gerrit-PatchSet: 8
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Alex Rodoni 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-2251: rowset size can overflow int in RowSetInfo

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

Change subject: KUDU-2251: rowset size can overflow int in RowSetInfo
..


Patch Set 6:

Without profiling it I don't have a great explanation for why TSAN is 
particularly slow on this workload. It's definitely slower on many workloads 
though, so increasing timeout in TSAN is probably reasonable if you don't want 
to take the time to profile it.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I74975cdab605b51617d93d1ae98ef72ce87e35cb
Gerrit-Change-Number: 8951
Gerrit-PatchSet: 6
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 08 Jan 2018 23:56:54 +
Gerrit-HasComments: No


[kudu-CR] [docs] Added additional steps for updating HMS when migrating to multiple Kudu masters

2018-01-08 Thread Alex Rodoni (Code Review)
Hello Alexey Serbin, Dan Burkert, Jean-Daniel Cryans, Kudu Jenkins,

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

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

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

Change subject: [docs] Added additional steps for updating HMS when migrating 
to multiple Kudu masters
..

[docs] Added additional steps for updating HMS when migrating to multiple Kudu 
masters

Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
---
M docs/security.adoc
1 file changed, 13 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
Gerrit-Change-Number: 8953
Gerrit-PatchSet: 7
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Alex Rodoni 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [fuzz-itest] Add the ability to roll/gc logs and to run elections

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has abandoned this change. ( 
http://gerrit.cloudera.org:8080/8884 )

Change subject: [fuzz-itest] Add the ability to roll/gc logs and to run 
elections
..


Abandoned

merged this with another patch
--
To view, visit http://gerrit.cloudera.org:8080/8884
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: abandon
Gerrit-Change-Id: I3708366fcd941098e784d911676a4deb32c67c50
Gerrit-Change-Number: 8884
Gerrit-PatchSet: 7
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot


[kudu-CR] [tablet] Avoid compactions in the past

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: [tablet] Avoid compactions in the past
..

[tablet] Avoid compactions in the past

A previous patch introduced a reproduction for a bug where,
in certain cases, mvcc state would not be advanced at all
during tablet bootstrap causing compactions to happen in
the past.

The fix is to make sure that all consensus rounds advance
safe time, even NO_OP and CHANGE_CONFIG rounds.

This patch adds a fix, enables the failing itest demonstrating
the fix works and adds the new operations to the set of ops
considered in the generation of random test cases so that we're
more likely to catch bugs like this in the future.

Change-Id: I6db9394d37b4ad1e7b1b1bc6ba0535558c20d9a8
---
M src/kudu/integration-tests/fuzz-itest.cc
M src/kudu/tablet/tablet_bootstrap.cc
2 files changed, 12 insertions(+), 10 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6db9394d37b4ad1e7b1b1bc6ba0535558c20d9a8
Gerrit-Change-Number: 8965
Gerrit-PatchSet: 2
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-2233 Add a test case for compactions in the past

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: KUDU-2233 Add a test case for compactions in the past
..

KUDU-2233 Add a test case for compactions in the past

In some cases we're performing compactions before the clock
has been updated at all, making the compaction snapshot an empty one.
This makes it so the compaction runs on a snapshot that discards
all redo deltas and applies all undos.

When a compaction with such a snapshot finds two duplicate rows
(a ghost and live row) it can't distinguish the two because the redo
DELETE of the ghost row has been discarded, causing the crash
reported in KUDU-2233.

This is a small subset of a broader set of problems that happen
when compactions are performed under such snapshots, the most
obvious one being that updates are discarded silently.

This state is hard to reach as it requires a restart of a tablet
server with a considerable amount of data (i.e. not empty) with
a single wal segment (previous segments having been gc'd in the
previous incarnation), with a single op in it. In particular this
single op needs to be a NO_OP or a CHANGE_CONFIG op, as these are
the only kinds of operations whose timestamps aren't used to
update the clock.

In order to get to this and similar states in fuzz-itest this
patch adds three new types of operations:
- Roll log - Rolls the log if possible.
- GC log - Garbage collects log segments, if possible.
- Run election - Runs an (emulated) leader election increasing the
term and adding a NO_OP to the log.

These operations are presently not part of the operations
considered when generating random test sequences as those might
trigger the bug.

This patch adds a narrow, exact repro of the issue that is described
in KUDU-2233 in the form of an additional test that is presently
disabled. The repro is narrow because it attempts to mimic
the crash from the original ticket exactly, instead of trying to
catch the broader set of problems.

Change-Id: Ibf5685897ef7580dd743faac4d68690a25663e4c
---
M src/kudu/consensus/log.cc
M src/kudu/integration-tests/fuzz-itest.cc
2 files changed, 89 insertions(+), 1 deletion(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ibf5685897ef7580dd743faac4d68690a25663e4c
Gerrit-Change-Number: 8885
Gerrit-PatchSet: 4
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [master/tserver] enforce re-replication scheme consistency

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

Change subject: [master/tserver] enforce re-replication scheme consistency
..


Patch Set 4:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master.proto
File src/kudu/master/master.proto:

http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master.proto@294
PS4, Line 294: optional consensus.ReplicaManagementInfoPB 
replica_management_info = 7;
> I thought about the feature flag, but I decided to go with a field.
After some consideration I decided to go with this approach.  The reasoning:

1. The feature flags, introduced at this point, are not going to help with this 
particular feature since the older version don't know about would-be-introduced 
feature flags yet.

2. We have to propagate the same information to the Kudu CLI tool to allow 
automatic detection of the replica management scheme (see 
https://gerrit.cloudera.org/#/c/8915/), so there we re-use the 
consensus.ReplicaManagementInfoPB structure.


If we want to have a feature flags here anyway, we can add those in a separate 
commit, after some quick design review.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I71c4c2e72bb2d62cec6de0f6d00b418377e8ae85
Gerrit-Change-Number: 8901
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Mon, 08 Jan 2018 23:50:40 +
Gerrit-HasComments: Yes


[kudu-CR](branch-1.6.x) Add 'kudu fs list' tool

2018-01-08 Thread Dan Burkert (Code Review)
Dan Burkert has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/8967


Change subject: Add 'kudu fs list' tool
..

Add 'kudu fs list' tool

This tool aims to replace exploratory usages of 'kudu fs dump' and
'kudu local_replica dump' with an improved, unified tool. 'kudu fs list' is
more flexible, easier to use, and can show more information.

Output is formatted using the DataTable abstraction, which gives it
good default pretty-printing, with options to output in CSV and JSON for
scripts. Results can easily be filtered to a specific table, tablet, column,
rowset, or block using flags.

The tool can output many different fields: table, table-id, tablet-id,
partition, rowset-id, block-id, block-kind, column, column-id,
cfile-data-type, cfile-encoding, cfile-compression, cfile-num-values,
cfile-size cfile-incompatible-features, cfile-compatible-features,
cfile-min-key, cfile-max-key, and cfile-delta-stats. More fields should
be straightforward to add.

The tool transparently joins information from tablet superblocks with
CFile footers, only materializing the metadata necessary to satisfy the
requested fields and filters.

Examples:

To get our bearings, let's look at what tablets are stored on a local
tablet server:

```bash
$ kudu fs list --fs-wal-dir=/data/kudu/tserver \
--columns="table, table-id, tablet-id, partition"

 table | table-id   
  |tablet-id |partition
---+--+--+-
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 2a631714f2d243ff92bf525630baa1ec | HASH 
(key) PARTITION 7, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 36827286a00049bc8b242243c6728157 | HASH 
(key) PARTITION 0, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 3880b30ccebd4ede867febd9c7d5580f | HASH 
(key) PARTITION 0, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 39436e9e17d84884b1cb689e88b8415f | HASH 
(key) PARTITION 5, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 44252efb9aaa4c2c963cf6dd5e875c04 | HASH 
(key) PARTITION 3, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 57c92ed8391b4d2bbfdeb339f9fb59fd | HASH 
(key) PARTITION 2, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 68a64aba5917499ebb7773f16bcd6f6d | HASH 
(key) PARTITION 7, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 6b5f0729a9bf454791239f77b0912f4e | HASH 
(key) PARTITION 1, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | 8a2d120bd6984144ae963bfe8435206e | HASH 
(key) PARTITION 4, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 8b3ba4f415f945849a6a690a142cf1e4 | HASH 
(key) PARTITION 5, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 9656be3aa07248a69e3ad6edaa0048cb | HASH 
(key) PARTITION 1, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | 9e8e444d079842a9b4a83ee9f8bed633 | HASH 
(key) PARTITION 6, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | a794a8e5d3f24e70a96b0beb5a355823 | HASH 
(key) PARTITION 3, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | bfb8f24b91cd4ecf924aacbb37125041 | HASH 
(key) PARTITION 2, RANGE (key) PARTITION UNBOUNDED
 foo   | 
e184a99893b44b17a7b2131123c6de0e | c3ce418c72ab4fea8548387f236dd1fa |
 loadgen_auto_fa03aaf7bdf54bb4896c534f38d177a1 | 
800af247c1424ecd8e96a37b5ee4d311 | e00a284081ca468a994a3609a511e886 | HASH 
(key) PARTITION 4, RANGE (key) PARTITION UNBOUNDED
 loadgen_auto_06c8038c02da40048397e4f6ad1662c3 | 
84ff589b979e4f90aa630e7179fcb644 | efa22fc899a44bb2a16f620464a15c60 | HASH 
(key) PARTITION 6, RANGE (key) PARTITION UNBOUNDED
```

The 'foo' table looks interesting; let's drill down into its tablet, and
see what rowsets and blocks it has, and some of their associated metadata:

```bash
$ kudu fs list --fs-wal-dir=/data/kudu/tserver \
--columns="rowset-id, column, column-id, block-kind, block-id" \
   

[kudu-CR] [tools] make kudu CLI auto-detect the replication scheme

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

Change subject: [tools] make kudu CLI auto-detect the replication scheme
..


Patch Set 3:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/8915/3//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/8915/3//COMMIT_MSG@7
PS3, Line 7: [tools] kudu CLI auto detects replication scheme
> nit: how about:
That seems a bit long.  I resorted to:

[tools] make kudu CLI auto-detect the replication scheme


http://gerrit.cloudera.org:8080/#/c/8915/3/src/kudu/consensus/consensus.proto
File src/kudu/consensus/consensus.proto:

http://gerrit.cloudera.org:8080/#/c/8915/3/src/kudu/consensus/consensus.proto@496
PS3, Line 496:   optional ReplicaManagementInfoPB replica_management_info = 3;
> nit: we usually leave the error as the last entry in the message, even if t
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia536c1f64ef8173aa4385db8ba01581bc3528154
Gerrit-Change-Number: 8915
Gerrit-PatchSet: 3
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Mon, 08 Jan 2018 23:42:16 +
Gerrit-HasComments: Yes


[kudu-CR] [tools] make kudu CLI auto-detect the replication scheme

2018-01-08 Thread Alexey Serbin (Code Review)
Hello Mike Percy, Kudu Jenkins,

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

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

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

Change subject: [tools] make kudu CLI auto-detect the replication scheme
..

[tools] make kudu CLI auto-detect the replication scheme

Added functionality to allow for automatic detection of appropriate
replica move scenario by the 'kudu tablet replica move' sub-command.

This is a follow-up for 9120cdd1d288ef6b3e03e2cd8445436712a7d4a9.

Change-Id: Ia536c1f64ef8173aa4385db8ba01581bc3528154
---
M src/kudu/consensus/consensus.proto
M src/kudu/tools/kudu-admin-test.cc
M src/kudu/tools/tool_action_tablet.cc
M src/kudu/tserver/tablet_service.cc
4 files changed, 61 insertions(+), 48 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ia536c1f64ef8173aa4385db8ba01581bc3528154
Gerrit-Change-Number: 8915
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [docs] Added steps to update HMS after migrating to multiple Kudu masters

2018-01-08 Thread Alex Rodoni (Code Review)
Hello Thomas Tauber-Marshall, Jean-Daniel Cryans, Kudu Jenkins,

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

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

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

Change subject: [docs] Added steps to update HMS after migrating to multiple 
Kudu masters
..

[docs] Added steps to update HMS after migrating to multiple Kudu masters

Change-Id: Iab3999c9e581ed3591b220c08491cdae867c91db
---
M docs/administration.adoc
1 file changed, 23 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iab3999c9e581ed3591b220c08491cdae867c91db
Gerrit-Change-Number: 8948
Gerrit-PatchSet: 5
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Thomas Tauber-Marshall 


[kudu-CR] [docs] Added additional steps for migrating to multiple Kudu masters

2018-01-08 Thread Alex Rodoni (Code Review)
Hello Alexey Serbin, Dan Burkert, Jean-Daniel Cryans, Kudu Jenkins,

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

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

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

Change subject: [docs] Added additional steps for migrating to multiple Kudu 
masters
..

[docs] Added additional steps for migrating to multiple Kudu masters

Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
---
M docs/administration.adoc
M docs/security.adoc
2 files changed, 33 insertions(+), 7 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
Gerrit-Change-Number: 8953
Gerrit-PatchSet: 6
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Alex Rodoni 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [master/tserver] enforce re-replication scheme consistency

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

Change subject: [master/tserver] enforce re-replication scheme consistency
..


Patch Set 4:

(9 comments)

http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master.proto
File src/kudu/master/master.proto:

http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master.proto@338
PS4, Line 338: fields
> field
Done


http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master.proto@340
PS4, Line 340:   optional consensus.ReplicaManagementInfoPB 
replica_management_info = 10;
> is this ever used? if not, let's drop it
Good catch -- it seems this is just a left-over.


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

http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master_service.cc@171
PS4, Line 171: $0
> ($0)
Done


http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master_service.cc@172
PS4, Line 172: $3
> ($3)
Done


http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master_service.cc@186
PS4, Line 186:   return rpc->RespondSuccess();
> nit: how about
It's two times more lines :)


http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master_service.cc@194
PS4, Line 194: unknown
> It's better to ignore tidy bot's warning than to add "unknown", IMHO.
Done


http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master_service.cc@195
PS4, Line 195:   return rpc->RespondFailure(s);
> nit: hmm, maybe this is personal preference but return x seems confusing in
In C++ that's legal: it returns void from a function which has 'void' as a 
return type.

All right -- I'll return back the two-line version.


http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/master/master_service.cc@258
PS4, Line 258:   return rpc->RespondSuccess();
> nit: "return" at the end of a void function seems confusing and there is re
This was an unification effort.  All right, I'll remove this.


http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/tserver/heartbeater.cc
File src/kudu/tserver/heartbeater.cc:

http://gerrit.cloudera.org:8080/#/c/8901/4/src/kudu/tserver/heartbeater.cc@460
PS4, Line 460:   return StatusFromPB(error->status());
> nit: this repeats the line below. maybe just don't swap above, but copy?
I resorted to

  return StatusFromPB(error ? error->status() : resp.error().status());



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I71c4c2e72bb2d62cec6de0f6d00b418377e8ae85
Gerrit-Change-Number: 8901
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Mon, 08 Jan 2018 23:35:15 +
Gerrit-HasComments: Yes


[kudu-CR] [master/tserver] enforce re-replication scheme consistency

2018-01-08 Thread Alexey Serbin (Code Review)
Hello Will Berkeley, Tidy Bot, Mike Percy, Kudu Jenkins,

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

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

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

Change subject: [master/tserver] enforce re-replication scheme consistency
..

[master/tserver] enforce re-replication scheme consistency

Don't register a tablet server with master if they run with different
tablet replica replacement schemes.

Added an integration test to verify the desired behavior.

Change-Id: I71c4c2e72bb2d62cec6de0f6d00b418377e8ae85
---
M src/kudu/consensus/CMakeLists.txt
A src/kudu/consensus/replica_management.proto
M src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc
M src/kudu/master/master.proto
M src/kudu/master/master_service.cc
M src/kudu/tserver/heartbeater.cc
6 files changed, 182 insertions(+), 15 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I71c4c2e72bb2d62cec6de0f6d00b418377e8ae85
Gerrit-Change-Number: 8901
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Will Berkeley 


[kudu-CR] [doc] Added a section for Kudu clients connecting to secure clusters.

2018-01-08 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8953 )

Change subject: [doc] Added a section for Kudu clients connecting to secure 
clusters.
..


Patch Set 5:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/8953/5//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/8953/5//COMMIT_MSG@7
PS5, Line 7: s.
nit: don't end the first line in a commit message with a period.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
Gerrit-Change-Number: 8953
Gerrit-PatchSet: 5
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Alex Rodoni 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Comment-Date: Mon, 08 Jan 2018 22:39:22 +
Gerrit-HasComments: Yes


[kudu-CR] [docs] Added steps to update HMS after migrating to multiple Kudu masters.

2018-01-08 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8948 )

Change subject: [docs] Added steps to update HMS after migrating to multiple 
Kudu masters.
..


Patch Set 4:

(1 comment)

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

http://gerrit.cloudera.org:8080/#/c/8948/4//COMMIT_MSG@7
PS4, Line 7: .
nit: don't end the first line in a commit message with a period.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iab3999c9e581ed3591b220c08491cdae867c91db
Gerrit-Change-Number: 8948
Gerrit-PatchSet: 4
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Thomas Tauber-Marshall 
Gerrit-Comment-Date: Mon, 08 Jan 2018 22:38:36 +
Gerrit-HasComments: Yes


[kudu-CR] [docs] Added steps to update HMS after migrating to multiple Kudu masters.

2018-01-08 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8948 )

Change subject: [docs] Added steps to update HMS after migrating to multiple 
Kudu masters.
..


Patch Set 4:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/8948/4/docs/administration.adoc
File docs/administration.adoc:

http://gerrit.cloudera.org:8080/#/c/8948/4/docs/administration.adoc@261
PS4, Line 261: HMS
Given that this is the first time we talk about the HMS, maybe give the full 
name first?


http://gerrit.cloudera.org:8080/#/c/8948/4/docs/administration.adoc@262
PS4, Line 262: * If you set up the DNS aliases, use the following statement, 
replacing `master-1`, `master-2`, and `master-3` with your actual aliases.
Even in docs we try to no go beyond 100 characters per line. Mind fixing this 
here and below?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iab3999c9e581ed3591b220c08491cdae867c91db
Gerrit-Change-Number: 8948
Gerrit-PatchSet: 4
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Thomas Tauber-Marshall 
Gerrit-Comment-Date: Mon, 08 Jan 2018 22:37:51 +
Gerrit-HasComments: Yes


[kudu-CR] [doc] Added a section for Kudu clients connecting to secure clusters.

2018-01-08 Thread Alex Rodoni (Code Review)
Hello Alexey Serbin, Dan Burkert, Jean-Daniel Cryans, Kudu Jenkins,

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

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

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

Change subject: [doc] Added a section for Kudu clients connecting to secure 
clusters.
..

[doc] Added a section for Kudu clients connecting to secure clusters.

Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
---
M docs/security.adoc
1 file changed, 15 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
Gerrit-Change-Number: 8953
Gerrit-PatchSet: 5
Gerrit-Owner: Alex Rodoni 
Gerrit-Reviewer: Alex Rodoni 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [doc] Added a section for Kudu clients connecting to secure clusters.

2018-01-08 Thread Anonymous Coward (Code Review)
arod...@cloudera.com has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8953 )

Change subject: [doc] Added a section for Kudu clients connecting to secure 
clusters.
..


Patch Set 4:

> (1 comment)

Updated.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iabee52216b4db0e18e5f693375f0a3e0f0a8a164
Gerrit-Change-Number: 8953
Gerrit-PatchSet: 4
Gerrit-Owner: arod...@cloudera.com
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: arod...@cloudera.com
Gerrit-Comment-Date: Mon, 08 Jan 2018 21:59:14 +
Gerrit-HasComments: No


[kudu-CR] consensus: Reduce copy/paste for observer callbacks

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

Change subject: consensus: Reduce copy/paste for observer callbacks
..


Patch Set 1: Code-Review+1

LGTM, maybe just fix what IWYU reports.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
Gerrit-Change-Number: 8962
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Comment-Date: Mon, 08 Jan 2018 21:39:31 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2251: rowset size can overflow int in RowSetInfo

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

Change subject: KUDU-2251: rowset size can overflow int in RowSetInfo
..


Patch Set 6: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I74975cdab605b51617d93d1ae98ef72ce87e35cb
Gerrit-Change-Number: 8951
Gerrit-PatchSet: 6
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 08 Jan 2018 21:34:30 +
Gerrit-HasComments: No


[kudu-CR] [raft] Add an EmulateElection variant that waits for one more commit

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8883 )

Change subject: [raft] Add an EmulateElection variant that waits for one more 
commit
..


Patch Set 2:

fair point, abandoning this one


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4815abf09d298f227ffe57b68d5b429c43c1d69b
Gerrit-Change-Number: 8883
Gerrit-PatchSet: 2
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Mon, 08 Jan 2018 20:55:54 +
Gerrit-HasComments: No


[kudu-CR] [raft] Add an EmulateElection variant that waits for one more commit

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has abandoned this change. ( 
http://gerrit.cloudera.org:8080/8883 )

Change subject: [raft] Add an EmulateElection variant that waits for one more 
commit
..


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: abandon
Gerrit-Change-Id: I4815abf09d298f227ffe57b68d5b429c43c1d69b
Gerrit-Change-Number: 8883
Gerrit-PatchSet: 2
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 


[kudu-CR] [mvcc] Fix watermark advancement in the absence of committed transactions

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/8964


Change subject: [mvcc] Fix watermark advancement in the absence of committed 
transactions
..

[mvcc] Fix watermark advancement in the absence of committed transactions

MvccSnapshot's 'none_committed_at_or_after_' (ncaof) watermark
indicates the point after which no transactions are committed.
This is used to cull redo deltas that cannot contain any
committed transactions under a snapshot, thus reducing work when
applying deltas.

By definition, this watermark is never supposed to be lower than
the 'all_committed_before_' watermark. If this invariant is broken
delta selection might be wrong by skipping whole delta files.

Normally the ncaof watermark is advanced when transactions are
marked as committed, in which case this is done correctly. However
there is problem when the 'all_committed_before_' watermark
is advanced and there are no committed or in flight transactions.
In this case the ncaof watermark might be left behind, manifesting
as incorrect delta application/skipping or even crashes.

This patch includes a fix and a very directed test that makes sure
it is correct. A follow up patch includes a new test in fuzz-itest
that would trigger a crash without the fix.

Change-Id: Icf94ea289204adf2eed797c3623cdea1b11b09db
---
M src/kudu/tablet/mvcc-test.cc
M src/kudu/tablet/mvcc.cc
M src/kudu/tablet/mvcc.h
3 files changed, 48 insertions(+), 1 deletion(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icf94ea289204adf2eed797c3623cdea1b11b09db
Gerrit-Change-Number: 8964
Gerrit-PatchSet: 1
Gerrit-Owner: David Ribeiro Alves 


[kudu-CR] KUDU-2233 Add a test case for compactions in the past

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: KUDU-2233 Add a test case for compactions in the past
..

KUDU-2233 Add a test case for compactions in the past

In some cases we're performing compactions before the clock
has been updated at all, making the compaction snapshot an empty one.
This makes it so the compaction runs on a snapshot that discards
all redo deltas and applies all undos.

When a compaction with such a snapshot finds two duplicate rows
(a ghost and live row) it can't distinguish the two because the redo
DELETE of the ghost row has been discarded, causing the crash
reported in KUDU-2233.

This is a small subset of a broader set of problems that happen
when compactions are performed under such snapshots, the most
obvious one being that updates are discarded silently.

This state is hard to reach as it requires a restart of a tablet
server with a considerable amount of data (i.e. not empty) with
a single wal segment (previous segments having been gc'd in the
previous incarnation), with a single op in it. In particular this
single op needs to be a NO_OP or a CHANGE_CONFIG op, as these are
the only kinds of operations whose timestamps aren't used to
update the clock.

This patch adds a narrow, exact repro of the issue that is described
in KUDU-2233. The repro is narrow because it attempts to mimic
the crash from the original ticket exactly, instead of trying to
catch the broader set of problems.

Follow up patches will add broader checks and a fix.

Change-Id: Ibf5685897ef7580dd743faac4d68690a25663e4c
---
M src/kudu/integration-tests/fuzz-itest.cc
1 file changed, 19 insertions(+), 0 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ibf5685897ef7580dd743faac4d68690a25663e4c
Gerrit-Change-Number: 8885
Gerrit-PatchSet: 3
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [fuzz-itest] Add the ability to roll/gc logs and to run elections

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Tidy Bot, Kudu Jenkins,

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

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

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

Change subject: [fuzz-itest] Add the ability to roll/gc logs and to run 
elections
..

[fuzz-itest] Add the ability to roll/gc logs and to run elections

There are certain bugs that depend on what is present in the WAL
at boostrap time. Just recently, we found KUDU-2233, a bug that only
manifested when the tablet server booted to a WAL that was devoid of
entries other than NO_OPs of CONFIG_CHANGEs. To make sure that these
cases also have a chance to occur in fuzz-itest this patch add three
new types of operations:
- Roll log - Rolls the log if possible.
- GC log - Garbage collects log segments, if possible.
- Run election - Runs an (emulated) leader election increasing the
term and adding a NO_OP to the log.

Change-Id: I3708366fcd941098e784d911676a4deb32c67c50
---
M src/kudu/consensus/log.cc
M src/kudu/integration-tests/fuzz-itest.cc
2 files changed, 69 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3708366fcd941098e784d911676a4deb32c67c50
Gerrit-Change-Number: 8884
Gerrit-PatchSet: 7
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot


[kudu-CR] [tablet] Add a pre-compaction check to avoid compactions in the past

2018-01-08 Thread David Ribeiro Alves (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: [tablet] Add a pre-compaction check to avoid compactions in the 
past
..

[tablet] Add a pre-compaction check to avoid compactions in the past

This adds a pre-compaction check that gets the max timestamp of all
the rows that will be considered for compaction and makes sure that
timestamp is considered committed under the compaction snapshot.

This is generalization of the repro introduced in previous patches
for KUDU-2233 but that now applies to all compactions in the past
and not only those which have duplicated rows in the inputs.

This is not a fix yet, that's left for follow up patches.

Change-Id: I80edc9dc8d5eec475998a9c721b9f591eb6180dc
---
M src/kudu/tablet/compaction.cc
M src/kudu/tablet/compaction.h
M src/kudu/tablet/delta_tracker.cc
M src/kudu/tablet/delta_tracker.h
M src/kudu/tablet/diskrowset.cc
M src/kudu/tablet/diskrowset.h
M src/kudu/tablet/memrowset.cc
M src/kudu/tablet/memrowset.h
M src/kudu/tablet/mock-rowsets.h
M src/kudu/tablet/rowset.cc
M src/kudu/tablet/rowset.h
M src/kudu/tablet/tablet.cc
12 files changed, 153 insertions(+), 2 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I80edc9dc8d5eec475998a9c721b9f591eb6180dc
Gerrit-Change-Number: 8887
Gerrit-PatchSet: 3
Gerrit-Owner: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [tablet] Avoid compactions in the past

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/8965


Change subject: [tablet] Avoid compactions in the past
..

[tablet] Avoid compactions in the past

A previous patch introduced a reproduction for a bug where,
in certain cases, mvcc state would not be advanced at all
during tablet bootstrap causing compactions to happen in
the past.

The fix is to make sure that all consensus rounds advance
safe time, even NO_OP and CHANGE_CONFIG rounds.

This patch does that and enables the failing itest demonstrating
the fix works.

Change-Id: I6db9394d37b4ad1e7b1b1bc6ba0535558c20d9a8
---
M src/kudu/integration-tests/fuzz-itest.cc
M src/kudu/tablet/tablet_bootstrap.cc
2 files changed, 4 insertions(+), 8 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6db9394d37b4ad1e7b1b1bc6ba0535558c20d9a8
Gerrit-Change-Number: 8965
Gerrit-PatchSet: 1
Gerrit-Owner: David Ribeiro Alves 


[kudu-CR] mini cluster: Remove tablet server index by uuid() from interface

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

Change subject: mini_cluster: Remove tablet_server_index_by_uuid() from 
interface
..


Patch Set 1: Code-Review+1

Looks good to me; but it seems IWYU has some warnings.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I67d25278ee8c2b9379ed83008f162d8ac36271ab
Gerrit-Change-Number: 8963
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Comment-Date: Mon, 08 Jan 2018 20:33:08 +
Gerrit-HasComments: No


[kudu-CR] [consensus] add unsafe gflag to bypass "safe to evict" logic

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

Change subject: [consensus] add unsafe gflag to bypass "safe to evict" logic
..


Patch Set 5: Verified+1

Unrelated flake in MultiThreadedHybridClockTabletTest/3.UpdateNoMergeCompaction


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4f89b6c584296e3da5047475c5c86c4cb1118ad0
Gerrit-Change-Number: 8889
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Mon, 08 Jan 2018 20:26:10 +
Gerrit-HasComments: No


[kudu-CR] [consensus] add unsafe gflag to bypass "safe to evict" logic

2018-01-08 Thread Alexey Serbin (Code Review)
Alexey Serbin has removed Kudu Jenkins from this change.  ( 
http://gerrit.cloudera.org:8080/8889 )

Change subject: [consensus] add unsafe gflag to bypass "safe to evict" logic
..


Removed reviewer Kudu Jenkins with the following votes:

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteReviewer
Gerrit-Change-Id: I4f89b6c584296e3da5047475c5c86c4cb1118ad0
Gerrit-Change-Number: 8889
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Mike Percy 


[kudu-CR] KUDU-2251: rowset size can overflow int in RowSetInfo

2018-01-08 Thread Dan Burkert (Code Review)
Dan Burkert has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8951 )

Change subject: KUDU-2251: rowset size can overflow int in RowSetInfo
..


Patch Set 6:

I changed the asserts and expects to checks, and it didn't have much of an 
effect.  The slowness appears to be specific to TSAN.  I'm able to repro the 
scan timing out (120s+) on a fast machine (va1022), whereas the scans take 2s 
and 7s with release and debug builds, respectively. Any thoughts on why TSAN 
may be slow in particular? Next I'm going to verify that the scans are actually 
completing given a much longer timeout.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I74975cdab605b51617d93d1ae98ef72ce87e35cb
Gerrit-Change-Number: 8951
Gerrit-PatchSet: 6
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 08 Jan 2018 20:07:09 +
Gerrit-HasComments: No


[kudu-CR] [java client] update propagated TS for AUTO FLUSH SYNC flush mode

2018-01-08 Thread Hao Hao (Code Review)
Hao Hao has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8837 )

Change subject: [java client] update propagated TS for AUTO_FLUSH_SYNC flush 
mode
..

[java client] update propagated TS for AUTO_FLUSH_SYNC flush mode

Commit be6b81057 updated propagated timestamp for all write modes
except AUTO_FLUSH_SYNC for the java client. This patch adds timestamp
propagation for this mode and updates TestHybridTime to ensure
propagated timestamp is updated for all flush modes.

Change-Id: Ibf0ca58b10842cb15ed5db7bcd4694c4d8cc3a89
Reviewed-on: http://gerrit.cloudera.org:8080/8837
Tested-by: Kudu Jenkins
Reviewed-by: David Ribeiro Alves 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduSession.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
5 files changed, 48 insertions(+), 12 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  David Ribeiro Alves: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ibf0ca58b10842cb15ed5db7bcd4694c4d8cc3a89
Gerrit-Change-Number: 8837
Gerrit-PatchSet: 7
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] consensus: Reduce copy/paste for observer callbacks

2018-01-08 Thread Mike Percy (Code Review)
Hello Alexey Serbin,

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

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

to review the following change.


Change subject: consensus: Reduce copy/paste for observer callbacks
..

consensus: Reduce copy/paste for observer callbacks

This is a net-negative line patch that unifies how the PeerMessageQueue
notifies PeerMessageQueueObserver instances that are registered with it.
The patch removes most of the copy/paste in this part of the code.

This patch has no functional changes.

Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
---
M src/kudu/consensus/consensus_queue.cc
M src/kudu/consensus/consensus_queue.h
2 files changed, 33 insertions(+), 84 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icbc4cb9d7b6e51a9f64d6f08c2f48d89705f5437
Gerrit-Change-Number: 8962
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 


[kudu-CR] KUDU-2251: rowset size can overflow int in RowSetInfo

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

Change subject: KUDU-2251: rowset size can overflow int in RowSetInfo
..


Patch Set 6:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/8951/6/src/kudu/integration-tests/heavy-update-compaction-itest.cc
File src/kudu/integration-tests/heavy-update-compaction-itest.cc:

http://gerrit.cloudera.org:8080/#/c/8951/6/src/kudu/integration-tests/heavy-update-compaction-itest.cc@206
PS6, Line 206:   // Scan the updated rows and ensure the final values are 
present.
 :   KuduScanner scanner(table_.get());
 :   ASSERT_OK(scanner.SetFaultTolerant());
 :   ASSERT_OK(scanner.AddConjunctPredicate(
 : table_->NewComparisonPredicate(
 :   "key", KuduPredicate::LESS, 
KuduValue::FromInt(FLAGS_rows;
 :
 :   // Walking the updates can take a long time.
 :   scanner.SetTimeoutMillis(120 * 1000);
 :
 :   LOG_TIMING(INFO, "scanning") {
 : ASSERT_OK(scanner.Open());
 : vector rows;
 : size_t final_values_offset = 0;
 : while (scanner.HasMoreRows()) {
 :   ASSERT_OK(scanner.NextBatch(&rows));
 :   for (const auto & row : rows) {
 : for (int idx = 1; idx <= 5; idx++) {
 :   ASSERT_GT(final_values.size(), final_values_offset);
 :   Slice actual_val;
 :   ASSERT_OK(row.GetString(idx, &actual_val));
 :   EXPECT_EQ(actual_val, 
final_values[final_values_offset++]);
 : }
 :   }
 : }
 :   }
> Thanks for doing this. I'm surprised that it might take so long. I guess th
i've also seen ASSERT_OK and EXPECT_* etc be slow in gtest, since it actually 
collects all the successes and not just failures. We have ASSERT_OK_FAST which 
is a faster version of ASSERT_OK but I don't think there is any such for _EQ. 
We could just use CHECK instead though and it might be faster?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I74975cdab605b51617d93d1ae98ef72ce87e35cb
Gerrit-Change-Number: 8951
Gerrit-PatchSet: 6
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 08 Jan 2018 19:50:06 +
Gerrit-HasComments: Yes


[kudu-CR] mini cluster: Remove tablet server index by uuid() from interface

2018-01-08 Thread Mike Percy (Code Review)
Hello Alexey Serbin,

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

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

to review the following change.


Change subject: mini_cluster: Remove tablet_server_index_by_uuid() from 
interface
..

mini_cluster: Remove tablet_server_index_by_uuid() from interface

The tablet_server_index_by_uuid() method, which common to the
InternalMiniCluster and ExternalMiniCluster, isn't really useful from
the parent interface (MiniCluster) and isn't compatible with a
MixedMiniCluster that I'm working on. Let's just remove it from the pure
virtual parent interface.

Change-Id: I67d25278ee8c2b9379ed83008f162d8ac36271ab
---
M src/kudu/mini-cluster/external_mini_cluster.h
M src/kudu/mini-cluster/internal_mini_cluster.h
M src/kudu/mini-cluster/mini_cluster.h
3 files changed, 6 insertions(+), 6 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I67d25278ee8c2b9379ed83008f162d8ac36271ab
Gerrit-Change-Number: 8963
Gerrit-PatchSet: 1
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 


[kudu-CR] [consensus] add unsafe gflag to bypass "safe to evict" logic

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

Change subject: [consensus] add unsafe gflag to bypass "safe to evict" logic
..


Patch Set 4:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/8889/4/src/kudu/consensus/quorum_util-test.cc
File src/kudu/consensus/quorum_util-test.cc:

http://gerrit.cloudera.org:8080/#/c/8889/4/src/kudu/consensus/quorum_util-test.cc@a454
PS4, Line 454:
 :
 :
 :
 :
 :
 :
 :
 :
> Was this test removed?
Woops, it's good catch -- I remember removing some duplicate scenario, but 
apparently it's not a duplicate (the value of the PROMOTE attribute is 
different from the case above).


http://gerrit.cloudera.org:8080/#/c/8889/4/src/kudu/consensus/quorum_util-test.cc@834
PS4, Line 834: :
> nit: missing space before colon
Done


http://gerrit.cloudera.org:8080/#/c/8889/4/src/kudu/consensus/quorum_util.h
File src/kudu/consensus/quorum_util.h:

http://gerrit.cloudera.org:8080/#/c/8889/4/src/kudu/consensus/quorum_util.h@40
PS4, Line 40:   // (this applies to both the current and the result 
configuration).
> I don't think this is true, it should only apply to the resulting configura
Yep, it seems that was a brainfart.  Sure, that's true only for the resulting 
config.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4f89b6c584296e3da5047475c5c86c4cb1118ad0
Gerrit-Change-Number: 8889
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Mon, 08 Jan 2018 19:42:06 +
Gerrit-HasComments: Yes


[kudu-CR] [consensus] add unsafe gflag to bypass "safe to evict" logic

2018-01-08 Thread Alexey Serbin (Code Review)
Hello Mike Percy, Kudu Jenkins,

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

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

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

Change subject: [consensus] add unsafe gflag to bypass "safe to evict" logic
..

[consensus] add unsafe gflag to bypass "safe to evict" logic

Replica replacement: added an option to attempt Raft configuration
update even in absence of healthy majority of tablet replicas.

This option is for testing purposes: as we could see during latest load
testing, an attempt to change the configuration under such unusual
circumstances allowed for exposing some bugs.

In run-time, the option is controlled by the newly introduced flag
--raft_attempt_to_replace_replica_without_majority.  It affects both
3-4-3 and 3-2-3 replica replacement schemes.

Change-Id: I4f89b6c584296e3da5047475c5c86c4cb1118ad0
---
M src/kudu/consensus/consensus_queue.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/consensus/raft_consensus.cc
M src/kudu/integration-tests/raft_consensus-itest.cc
M src/kudu/master/catalog_manager.cc
7 files changed, 504 insertions(+), 373 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I4f89b6c584296e3da5047475c5c86c4cb1118ad0
Gerrit-Change-Number: 8889
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 


[kudu-CR] consensus: Fix NON VOTER ack-counting bug

2018-01-08 Thread Mike Percy (Code Review)
Mike Percy has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8868 )

Change subject: consensus: Fix NON_VOTER ack-counting bug
..

consensus: Fix NON_VOTER ack-counting bug

This patch fixes an issue where we were not differentiating between
replicating to voters and non-voters.

This enables the test written by Alexey and also makes some changes to
it. The test fails without this patch and passes with the patch.

Tests added:
* Added a unit test in consensus_queue-test
* Updated and enabled the system test in raft_consensus_nonvoter-itest

Change-Id: I13143e9bb4b76af3fd6dada28fcec05b27d24476
Reviewed-on: http://gerrit.cloudera.org:8080/8868
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin 
---
M src/kudu/consensus/consensus-test-util.h
M src/kudu/consensus/consensus_peers-test.cc
M src/kudu/consensus/consensus_peers.cc
M src/kudu/consensus/consensus_queue-test.cc
M src/kudu/consensus/consensus_queue.cc
M src/kudu/consensus/consensus_queue.h
M src/kudu/consensus/raft_consensus.cc
M src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc
8 files changed, 233 insertions(+), 88 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I13143e9bb4b76af3fd6dada28fcec05b27d24476
Gerrit-Change-Number: 8868
Gerrit-PatchSet: 7
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot


[kudu-CR] [consensus] add test for non-voters in consensus queue

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

Change subject: [consensus] add test for non-voters in consensus queue
..


Patch Set 3: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I16382b75256a32d695d8bc9ce020f40276114511
Gerrit-Change-Number: 8867
Gerrit-PatchSet: 3
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Mon, 08 Jan 2018 19:37:58 +
Gerrit-HasComments: No


[kudu-CR] [consensus] add test for non-voters in consensus queue

2018-01-08 Thread Mike Percy (Code Review)
Mike Percy has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8867 )

Change subject: [consensus] add test for non-voters in consensus queue
..

[consensus] add test for non-voters in consensus queue

Added an integration test to verify that the consensus queue correctly
distinguishes between voter and non-voter replica acknowledgements
of the Raft consensus messages.

The test is currently disabled because it fails: currently, the
consensus queue does not differentiate between Raft acknowledgement
messages sent by voter and non-voter replicas.

Change-Id: I16382b75256a32d695d8bc9ce020f40276114511
Reviewed-on: http://gerrit.cloudera.org:8080/8867
Tested-by: Kudu Jenkins
Reviewed-by: Mike Percy 
---
M src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc
1 file changed, 108 insertions(+), 0 deletions(-)

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

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I16382b75256a32d695d8bc9ce020f40276114511
Gerrit-Change-Number: 8867
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 


[kudu-CR] KUDU-2236: use debug logging where appropriate

2018-01-08 Thread Andrew Wong (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: KUDU-2236: use debug logging where appropriate
..

KUDU-2236: use debug logging where appropriate

The previous fixes for KUDU-2236 adjusted the test to ensure its success
when they should have instead addressed the regression in logging
behavior. I.e. testCloseShortlyAfterOpen() should not catch any scary
log messages because it itself isn't doing anything scary.

This patch addresses the fact that exception messages are spewed even
when we might expect them because a connection has been explicitly
closed. In such cases, DEBUG-level messages will be logged instead of
INFO- or WARN-level messages.

CapturingLogAppenders can now specify what log levels to read from, and
testCloseShortlyAfterOpen will now parse INFO-level messages or higher
(i.e. not DEBUG-level).

Change-Id: I780df2eeb51a14b65dd4283dfe9d4d6daf909661
---
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToCluster.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Connection.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/util/CapturingLogAppender.java
4 files changed, 30 insertions(+), 10 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I780df2eeb51a14b65dd4283dfe9d4d6daf909661
Gerrit-Change-Number: 8961
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-2236: add debug logging where appropriate

2018-01-08 Thread Andrew Wong (Code Review)
Andrew Wong has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/8961


Change subject: KUDU-2236: add debug logging where appropriate
..

KUDU-2236: add debug logging where appropriate

The previous fixes for KUDU-2236 adjusted the test to ensure its success
when they should have instead addressed the regression in logging
behavior. I.e. testCloseShortlyAfterOpen() should not catch any scary
log messages because it itself isn't doing anything scary.

This patch addresses the fact that exception messages are spewed even
when we might expect them because a connection has been explicitly
closed. In such cases, DEBUG-level messages will be logged instead of
INFO- or WARN-level messages.

CapturingLogAppenders can now specify what log levels to read from, and
testCloseShortlyAfterOpen will now parse INFO-level messages or higher
(i.e. not DEBUG-level).

Change-Id: I780df2eeb51a14b65dd4283dfe9d4d6daf909661
---
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToCluster.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Connection.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/util/CapturingLogAppender.java
4 files changed, 30 insertions(+), 10 deletions(-)



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

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


[kudu-CR] [java client] update propagated TS for AUTO FLUSH SYNC flush mode

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8837 )

Change subject: [java client] update propagated TS for AUTO_FLUSH_SYNC flush 
mode
..


Patch Set 6: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ibf0ca58b10842cb15ed5db7bcd4694c4d8cc3a89
Gerrit-Change-Number: 8837
Gerrit-PatchSet: 6
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Comment-Date: Mon, 08 Jan 2018 19:03:35 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2251: rowset size can overflow int in RowSetInfo

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8951 )

Change subject: KUDU-2251: rowset size can overflow int in RowSetInfo
..


Patch Set 6:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/8951/6/src/kudu/integration-tests/heavy-update-compaction-itest.cc
File src/kudu/integration-tests/heavy-update-compaction-itest.cc:

http://gerrit.cloudera.org:8080/#/c/8951/6/src/kudu/integration-tests/heavy-update-compaction-itest.cc@206
PS6, Line 206:   // Scan the updated rows and ensure the final values are 
present.
 :   KuduScanner scanner(table_.get());
 :   ASSERT_OK(scanner.SetFaultTolerant());
 :   ASSERT_OK(scanner.AddConjunctPredicate(
 : table_->NewComparisonPredicate(
 :   "key", KuduPredicate::LESS, 
KuduValue::FromInt(FLAGS_rows;
 :
 :   // Walking the updates can take a long time.
 :   scanner.SetTimeoutMillis(120 * 1000);
 :
 :   LOG_TIMING(INFO, "scanning") {
 : ASSERT_OK(scanner.Open());
 : vector rows;
 : size_t final_values_offset = 0;
 : while (scanner.HasMoreRows()) {
 :   ASSERT_OK(scanner.NextBatch(&rows));
 :   for (const auto & row : rows) {
 : for (int idx = 1; idx <= 5; idx++) {
 :   ASSERT_GT(final_values.size(), final_values_offset);
 :   Slice actual_val;
 :   ASSERT_OK(row.GetString(idx, &actual_val));
 :   EXPECT_EQ(actual_val, 
final_values[final_values_offset++]);
 : }
 :   }
 : }
 :   }
Thanks for doing this. I'm surprised that it might take so long. I guess this 
is one of the cases where skipping updates is going to make a huge difference.


http://gerrit.cloudera.org:8080/#/c/8951/6/src/kudu/tablet/rowset_info.h
File src/kudu/tablet/rowset_info.h:

http://gerrit.cloudera.org:8080/#/c/8951/6/src/kudu/tablet/rowset_info.h@21
PS6, Line 21:
extra line



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I74975cdab605b51617d93d1ae98ef72ce87e35cb
Gerrit-Change-Number: 8951
Gerrit-PatchSet: 6
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 08 Jan 2018 19:02:48 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2251: rowset size can overflow int in RowSetInfo

2018-01-08 Thread Dan Burkert (Code Review)
Dan Burkert has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8951 )

Change subject: KUDU-2251: rowset size can overflow int in RowSetInfo
..


Patch Set 6:

OK I think I've satisfied everyone's requests WRT tests, however it now appears 
that the IT is taking more than 120 seconds to scan 500 rows in TSAN builds... 
so I'll be looking into that.  May just have to bump the timeout, but maybe I 
can figure out why it's taking that long.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I74975cdab605b51617d93d1ae98ef72ce87e35cb
Gerrit-Change-Number: 8951
Gerrit-PatchSet: 6
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 08 Jan 2018 18:59:36 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2249 Avoid sharing the client between the InputFormat and RecordReader

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8921 )

Change subject: KUDU-2249 Avoid sharing the client between the InputFormat and 
RecordReader
..


Patch Set 5: Code-Review+2

Ah, my bad, gerrit's column mark at 76 chars tricked me.
Thanks for addressing my nits.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I24f45ee9253790c5348cabd0afe6c6a4b6d3f3d4
Gerrit-Change-Number: 8921
Gerrit-PatchSet: 5
Gerrit-Owner: Clemens Valiente 
Gerrit-Reviewer: Clemens Valiente 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Comment-Date: Mon, 08 Jan 2018 18:57:07 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2249 Avoid sharing the client between the InputFormat and RecordReader

2018-01-08 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/8921 )

Change subject: KUDU-2249 Avoid sharing the client between the InputFormat and 
RecordReader
..

KUDU-2249 Avoid sharing the client between the InputFormat and RecordReader

This commit prevents a possible race condition between getSplits() method and
TableRecordReader in the KuduTableInputFormat, when both try to access and
shutdown the KuduClient.

Both are sharing the same client and shut it down after use. In some scenarios
the client might still be accessed after that and throwing an error.
So the TableRecordReader gets its own client with this commit. This increases
the number of opened Kudu clients by a MR application at most by one (The one
that was shared by getSplits() with a TableRecordReader)
Also clarified the behaviour of MR applications and how many open Kudu clients
one might have to expect in total.

Change-Id: I24f45ee9253790c5348cabd0afe6c6a4b6d3f3d4
Reviewed-on: http://gerrit.cloudera.org:8080/8921
Tested-by: Kudu Jenkins
Reviewed-by: David Ribeiro Alves 
---
M 
java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableInputFormat.java
1 file changed, 45 insertions(+), 21 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  David Ribeiro Alves: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I24f45ee9253790c5348cabd0afe6c6a4b6d3f3d4
Gerrit-Change-Number: 8921
Gerrit-PatchSet: 6
Gerrit-Owner: Clemens Valiente 
Gerrit-Reviewer: Clemens Valiente 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] consensus: Fix NON VOTER ack-counting bug

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

Change subject: consensus: Fix NON_VOTER ack-counting bug
..


Patch Set 6: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I13143e9bb4b76af3fd6dada28fcec05b27d24476
Gerrit-Change-Number: 8868
Gerrit-PatchSet: 6
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Comment-Date: Mon, 08 Jan 2018 15:31:18 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2249 Avoid sharing the client between the InputFormat and RecordReader

2018-01-08 Thread Clemens Valiente (Code Review)
Clemens Valiente has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/8921 )

Change subject: KUDU-2249 Avoid sharing the client between the InputFormat and 
RecordReader
..


Patch Set 4:

> Patch Set 4:
>
> (2 comments)

I added the clarification.
The lines should below 80 cols already if I am not mistaken?


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I24f45ee9253790c5348cabd0afe6c6a4b6d3f3d4
Gerrit-Change-Number: 8921
Gerrit-PatchSet: 4
Gerrit-Owner: Clemens Valiente 
Gerrit-Reviewer: Clemens Valiente 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Comment-Date: Mon, 08 Jan 2018 10:39:59 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2249 Avoid sharing the client between the InputFormat and RecordReader

2018-01-08 Thread Clemens Valiente (Code Review)
Hello David Ribeiro Alves, Kudu Jenkins,

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

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

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

Change subject: KUDU-2249 Avoid sharing the client between the InputFormat and 
RecordReader
..

KUDU-2249 Avoid sharing the client between the InputFormat and RecordReader

This commit prevents a possible race condition between getSplits() method and
TableRecordReader in the KuduTableInputFormat, when both try to access and
shutdown the KuduClient.

Both are sharing the same client and shut it down after use. In some scenarios
the client might still be accessed after that and throwing an error.
So the TableRecordReader gets its own client with this commit. This increases
the number of opened Kudu clients by a MR application at most by one (The one
that was shared by getSplits() with a TableRecordReader)
Also clarified the behaviour of MR applications and how many open Kudu clients
one might have to expect in total.

Change-Id: I24f45ee9253790c5348cabd0afe6c6a4b6d3f3d4
---
M 
java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableInputFormat.java
1 file changed, 45 insertions(+), 21 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I24f45ee9253790c5348cabd0afe6c6a4b6d3f3d4
Gerrit-Change-Number: 8921
Gerrit-PatchSet: 5
Gerrit-Owner: Clemens Valiente 
Gerrit-Reviewer: Clemens Valiente 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins