[kudu-CR] KUDU-1696. Daemons should dump their version info to the INFO log at startup

2016-10-17 Thread Maxim Smyatkin (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: KUDU-1696. Daemons should dump their version info to the INFO 
log at startup
..

KUDU-1696. Daemons should dump their version info to the INFO log at startup

In addition to adding full version info on tserver and master startup,
I've added logging of command line arguments as suggested in the ticket.
Although the initial idea was to log only flags different from their defaults,
I merely implemented logging of all given command line arguments (after they're
successfully parsed by GFlags).
The reasons are: a) some flags differ from their defaults explicitly,
like FLAG_rpc_bind_addresses in master_main.cc, and b) others do it
that way and it seems good enough, right?
Here is what it looks like in ts log now, for example:

I1016 23:17:21.764128 10547 tablet_server_main.cc:55] Tablet server executed 
with:
--unlock_experimental_flags
--log_dir=/tmp/kudu/whzdP6lK
--fs_wal_dir=/tmp/kudu/whzdP6lK/ts
--fs_data_dirs=/tmp/kudu/whzdP6lK/ts
--rpc_bind_addresses=127.0.0.1
--local_ip_for_outbound_sockets=127.0.0.1
--webserver_interface=localhost
--webserver_port=8051
--tserver_master_addrs=127.0.0.1
Tablet server version:
kudu 1.1.0-SNAPSHOT
revision 0c52f161b4504480adcb9e06b7bb0bc5b3e192b0-dirty
build type RELEASE
built by max at 16 Oct 2016 16:24:01 MSK on destr-workspace

Change-Id: I846827c53e74ca364af61c690bf85af8a8f28601
---
M src/kudu/master/master_main.cc
M src/kudu/tserver/tablet_server_main.cc
M src/kudu/util/CMakeLists.txt
A src/kudu/util/flags-test.cc
M src/kudu/util/flags.cc
M src/kudu/util/flags.h
6 files changed, 95 insertions(+), 0 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I846827c53e74ca364af61c690bf85af8a8f28601
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Maxim Smyatkin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot


[kudu-CR] KUDU-1563. Add support for INSERT IGNORE

2016-10-17 Thread Brock Noland (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: KUDU-1563. Add support for INSERT IGNORE
..

KUDU-1563. Add support for INSERT IGNORE

Adds `INSERT IGNORE' operation which behaves like a
normal `INSERT' except in the case when a duplicate
row error would be raised by the primary key having been
previously inserted.

Follows upsert backend/c++ patch 56c431585ed7ad07ef.

Change-Id: I5bfc35e9d27bd5e2d3375b68e6e4716ed671f36c
---
M src/kudu/client/batcher.cc
M src/kudu/client/client-test.cc
M src/kudu/client/client.cc
M src/kudu/client/client.h
M src/kudu/client/write_op.cc
M src/kudu/client/write_op.h
M src/kudu/common/row_operations-test.cc
M src/kudu/common/row_operations.cc
M src/kudu/common/row_operations.h
M src/kudu/common/wire_protocol.proto
M src/kudu/integration-tests/fuzz-itest.cc
M src/kudu/tablet/local_tablet_writer.h
M src/kudu/tablet/row_op.cc
M src/kudu/tablet/row_op.h
M src/kudu/tablet/tablet-test-base.h
M src/kudu/tablet/tablet-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
M src/kudu/tablet/tablet_bootstrap.cc
M src/kudu/tablet/tablet_metrics.cc
M src/kudu/tablet/tablet_metrics.h
M src/kudu/tablet/tablet_random_access-test.cc
M src/kudu/tablet/transactions/transaction.cc
M src/kudu/tablet/transactions/transaction.h
M src/kudu/tablet/transactions/write_transaction.cc
M src/kudu/tserver/tablet_service.cc
M src/kudu/tserver/tserver.proto
27 files changed, 352 insertions(+), 69 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I5bfc35e9d27bd5e2d3375b68e6e4716ed671f36c
Gerrit-PatchSet: 10
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Brock Noland 
Gerrit-Reviewer: Brock Noland 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-1563. Add support for INSERT IGNORE

2016-10-17 Thread Brock Noland (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: KUDU-1563. Add support for INSERT IGNORE
..

KUDU-1563. Add support for INSERT IGNORE

Adds `INSERT IGNORE' operation which behaves like a
normal `INSERT' except in the case when a duplicate
row error would be raised by the primary key having been
previously inserted.

Follows upsert backend/c++ patch 56c431585ed7ad07ef.

Change-Id: I5bfc35e9d27bd5e2d3375b68e6e4716ed671f36c
---
M src/kudu/client/batcher.cc
M src/kudu/client/client-test.cc
M src/kudu/client/client.cc
M src/kudu/client/client.h
M src/kudu/client/write_op.cc
M src/kudu/client/write_op.h
M src/kudu/common/row_operations-test.cc
M src/kudu/common/row_operations.cc
M src/kudu/common/row_operations.h
M src/kudu/common/wire_protocol.proto
M src/kudu/integration-tests/fuzz-itest.cc
M src/kudu/tablet/local_tablet_writer.h
M src/kudu/tablet/row_op.cc
M src/kudu/tablet/row_op.h
M src/kudu/tablet/tablet-test-base.h
M src/kudu/tablet/tablet-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
M src/kudu/tablet/tablet_bootstrap.cc
M src/kudu/tablet/tablet_metrics.cc
M src/kudu/tablet/tablet_metrics.h
M src/kudu/tablet/tablet_random_access-test.cc
M src/kudu/tablet/transactions/transaction.cc
M src/kudu/tablet/transactions/transaction.h
M src/kudu/tablet/transactions/write_transaction.cc
M src/kudu/tserver/tablet_service.cc
M src/kudu/tserver/tserver.proto
27 files changed, 351 insertions(+), 69 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I5bfc35e9d27bd5e2d3375b68e6e4716ed671f36c
Gerrit-PatchSet: 11
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Brock Noland 
Gerrit-Reviewer: Brock Noland 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-1696. Daemons should dump their version info to the INFO log at startup

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: KUDU-1696. Daemons should dump their version info to the INFO 
log at startup
..


Patch Set 2:

(1 comment)

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

Line 360: string FormatCommandLineFlags(int argc, char** argv) {
the problem with this is that it won't dump flags that are specified from a 
flagsfile. For daemons, it's often the case that the only command line flag is 
--flagsfile /foo/bar, so it would be good to dump those, even if it means that 
we might also end up dumping a few things where we overrode default.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I846827c53e74ca364af61c690bf85af8a8f28601
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Maxim Smyatkin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] ITBLL: use a faster PRNG

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has submitted this change and it was merged.

Change subject: ITBLL: use a faster PRNG
..


ITBLL: use a faster PRNG

The SecureRandom PRNG is very very slow. Since we don't need
cryptographic random numbers, we can use a simpler random. This switches
to Xoroshiro128+, which is much faster but still has a long period
(2^128) necessary to avoid collisions.

The implementation is from Squidlib[1] which is Apache licensed. The
file itself has a license header indicating it is public domain. The
original C implementation is also in the public domain[2]. Given that, I
didn't reference this in LICENSE.txt or NOTICE.

It's copy-pasted rather than introduced as a dependency because SquidLib
is a library for writing turn-based games in Swing -- it just happens to
have a good RNG in it.

[1] 
https://github.com/SquidPony/SquidLib/blob/master/squidlib-util/src/main/java/squidpony/squidmath/XoRoRNG.java
at revision b4fb31efe527d3298b8f37f3cc72e957579ad6e3
[2] http://xoroshiro.di.unimi.it/xoroshiro128plus.c

Change-Id: I2f51664af25b9fb4309dd78556e954bf483d22c0
Reviewed-on: http://gerrit.cloudera.org:8080/4731
Tested-by: Kudu Jenkins
Reviewed-by: Jean-Daniel Cryans 
---
M 
java/kudu-client-tools/src/main/java/org/apache/kudu/mapreduce/tools/IntegrationTestBigLinkedList.java
1 file changed, 45 insertions(+), 2 deletions(-)

Approvals:
  Jean-Daniel Cryans: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I2f51664af25b9fb4309dd78556e954bf483d22c0
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-1649 - [python] Add Binary Type Support

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: KUDU-1649 - [python] Add Binary Type Support
..


Patch Set 2:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/4653/2/python/kudu/client.pyx
File python/kudu/client.pyx:

PS2, Line 2020: if isinstance(value, unicode):
  : value = value.encode('utf8')
hrm, I'm not sure on this. If it's a binary column, shouldn't we force the user 
to explicitly encode? ie throw an error if they pass unicode?


http://gerrit.cloudera.org:8080/#/c/4653/2/python/kudu/tests/util.py
File python/kudu/tests/util.py:

PS2, Line 222: Иордания
haha


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ib13539d040b754399c13031003a2cf64c71ba151
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jordan Birdsell 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] [IWYU] WIP: common/gutil/util/rpc

2016-10-17 Thread Alexey Serbin (Code Review)
Alexey Serbin has uploaded a new change for review.

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

Change subject: [IWYU] WIP: common/gutil/util/rpc
..

[IWYU] WIP: common/gutil/util/rpc

This are changes for the included headers recommended by IWYU
(taken with a grain of salt, though).  More is coming soon.
However, the main idea is the following: first pass is this
almost-all-manual approach, and then since we have IWYU pragmas
in place and appropriate mappings established (especiall for the
boost library), it should be much less manual involvement.

Change-Id: I6923091be36a1c03fac34dd73e6b17e17ac9ceaa
---
M src/kudu/codegen/code_cache.cc
M src/kudu/codegen/code_cache.h
M src/kudu/codegen/precompiled.cc
M src/kudu/common/column_predicate.cc
M src/kudu/common/column_predicate.h
M src/kudu/common/encoded_key-test.cc
M src/kudu/common/encoded_key.cc
M src/kudu/common/encoded_key.h
M src/kudu/common/generic_iterators-test.cc
M src/kudu/common/generic_iterators.cc
M src/kudu/common/generic_iterators.h
M src/kudu/common/id_mapping-test.cc
M src/kudu/common/id_mapping.h
M src/kudu/common/iterator_stats.cc
M src/kudu/common/key_encoder.cc
M src/kudu/common/key_encoder.h
M src/kudu/common/key_util-test.cc
M src/kudu/common/key_util.cc
M src/kudu/common/key_util.h
M src/kudu/common/partial_row-test.cc
M src/kudu/common/partial_row.cc
M src/kudu/common/partial_row.h
M src/kudu/common/partition-test.cc
M src/kudu/common/partition.cc
M src/kudu/common/partition.h
M src/kudu/common/partition_pruner-test.cc
M src/kudu/common/partition_pruner.cc
M src/kudu/common/row_changelist-test.cc
M src/kudu/common/row_changelist.cc
M src/kudu/common/row_changelist.h
M src/kudu/common/row_operations-test.cc
M src/kudu/common/row_operations.cc
M src/kudu/common/row_operations.h
M src/kudu/common/rowblock.cc
M src/kudu/common/rowblock.h
M src/kudu/common/scan_spec-test.cc
M src/kudu/common/scan_spec.cc
M src/kudu/common/scan_spec.h
M src/kudu/common/schema-test.cc
M src/kudu/common/schema.cc
M src/kudu/common/schema.h
M src/kudu/common/timestamp.cc
M src/kudu/common/timestamp.h
M src/kudu/common/types.cc
M src/kudu/common/types.h
M src/kudu/common/wire_protocol-test.cc
M src/kudu/common/wire_protocol.cc
M src/kudu/common/wire_protocol.h
M src/kudu/gutil/atomicops-internals-macosx.h
M src/kudu/gutil/atomicops-internals-powerpc.h
M src/kudu/gutil/atomicops-internals-tsan.h
M src/kudu/gutil/atomicops-internals-x86.cc
M src/kudu/gutil/atomicops-internals-x86.h
M src/kudu/gutil/atomicops.h
M src/kudu/gutil/bits.h
M src/kudu/gutil/callback_internal.cc
M src/kudu/gutil/callback_internal.h
M src/kudu/gutil/cpu.cc
M src/kudu/gutil/hash/builtin_type_hash.h
M src/kudu/gutil/hash/city.cc
M src/kudu/gutil/hash/hash.cc
M src/kudu/gutil/hash/hash.h
M src/kudu/gutil/hash/jenkins.cc
M src/kudu/gutil/mathlimits.h
M src/kudu/gutil/once.cc
M src/kudu/gutil/once.h
M src/kudu/gutil/ref_counted.cc
M src/kudu/gutil/ref_counted.h
M src/kudu/gutil/ref_counted_memory.cc
M src/kudu/gutil/ref_counted_memory.h
M src/kudu/gutil/spinlock.cc
M src/kudu/gutil/spinlock.h
M src/kudu/gutil/spinlock_internal.h
M src/kudu/gutil/stringprintf.cc
M src/kudu/gutil/strings/escaping.cc
M src/kudu/gutil/strings/escaping.h
M src/kudu/gutil/strings/human_readable.cc
M src/kudu/gutil/strings/human_readable.h
M src/kudu/gutil/strings/join.cc
M src/kudu/gutil/strings/join.h
M src/kudu/gutil/strings/memutil.h
M src/kudu/gutil/strings/numbers.cc
M src/kudu/gutil/strings/numbers.h
M src/kudu/gutil/strings/serialize.cc
M src/kudu/gutil/strings/serialize.h
M src/kudu/gutil/strings/split.cc
M src/kudu/gutil/strings/split.h
M src/kudu/gutil/strings/strcat.cc
M src/kudu/gutil/strings/strcat.h
M src/kudu/gutil/strings/stringpiece.cc
M src/kudu/gutil/strings/stringpiece.h
M src/kudu/gutil/strings/strip.cc
M src/kudu/gutil/strings/strip.h
M src/kudu/gutil/strings/substitute.cc
M src/kudu/gutil/strings/substitute.h
M src/kudu/gutil/strings/util.cc
M src/kudu/gutil/strings/util.h
M src/kudu/gutil/strtoint.cc
M src/kudu/gutil/strtoint.h
M src/kudu/gutil/sysinfo.cc
M src/kudu/gutil/sysinfo.h
M src/kudu/gutil/threading/thread_collision_warner.cc
M src/kudu/gutil/threading/thread_collision_warner.h
M src/kudu/gutil/walltime.h
M src/kudu/rpc/acceptor_pool.cc
M src/kudu/rpc/acceptor_pool.h
M src/kudu/rpc/auth_store.cc
M src/kudu/rpc/auth_store.h
M src/kudu/rpc/blocking_ops.cc
M src/kudu/rpc/blocking_ops.h
M src/kudu/rpc/connection.cc
M src/kudu/rpc/connection.h
M src/kudu/rpc/exactly_once_rpc-test.cc
M src/kudu/rpc/inbound_call.cc
M src/kudu/rpc/inbound_call.h
M src/kudu/rpc/messenger.cc
M src/kudu/rpc/messenger.h
M src/kudu/rpc/mt-rpc-test.cc
M src/kudu/rpc/negotiation.cc
M src/kudu/rpc/negotiation.h
M src/kudu/rpc/outbound_call.cc
M src/kudu/rpc/outbound_call.h
M src/kudu/rpc/proxy.cc
M src/kudu/rpc/proxy.h
M src/kudu/rpc/reactor-test.cc
M src/kudu/rpc/reactor.cc
M src/kudu/rpc/reactor.h
M src/kudu/rpc/remote_method.cc
M src/kudu/rpc/remot

[kudu-CR] [IWYU] WIP: common/gutil/util/rpc

2016-10-17 Thread Alexey Serbin (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: [IWYU] WIP: common/gutil/util/rpc
..

[IWYU] WIP: common/gutil/util/rpc

This are changes for the included headers recommended by IWYU
(taken with a grain of salt, though).  More is coming soon.
However, the main idea is the following: first pass is this
almost-all-manual approach, and then since we have IWYU pragmas
in place and appropriate mappings established (especiall for the
boost library), it should be much less manual involvement.

Change-Id: I6923091be36a1c03fac34dd73e6b17e17ac9ceaa
---
M src/kudu/codegen/code_cache.cc
M src/kudu/codegen/code_cache.h
M src/kudu/codegen/precompiled.cc
M src/kudu/common/column_predicate.cc
M src/kudu/common/column_predicate.h
M src/kudu/common/encoded_key-test.cc
M src/kudu/common/encoded_key.cc
M src/kudu/common/encoded_key.h
M src/kudu/common/generic_iterators-test.cc
M src/kudu/common/generic_iterators.cc
M src/kudu/common/generic_iterators.h
M src/kudu/common/id_mapping-test.cc
M src/kudu/common/id_mapping.h
M src/kudu/common/iterator_stats.cc
M src/kudu/common/key_encoder.cc
M src/kudu/common/key_encoder.h
M src/kudu/common/key_util-test.cc
M src/kudu/common/key_util.cc
M src/kudu/common/key_util.h
M src/kudu/common/partial_row-test.cc
M src/kudu/common/partial_row.cc
M src/kudu/common/partial_row.h
M src/kudu/common/partition-test.cc
M src/kudu/common/partition.cc
M src/kudu/common/partition.h
M src/kudu/common/partition_pruner-test.cc
M src/kudu/common/partition_pruner.cc
M src/kudu/common/row_changelist-test.cc
M src/kudu/common/row_changelist.cc
M src/kudu/common/row_changelist.h
M src/kudu/common/row_operations-test.cc
M src/kudu/common/row_operations.cc
M src/kudu/common/row_operations.h
M src/kudu/common/rowblock.cc
M src/kudu/common/rowblock.h
M src/kudu/common/scan_spec-test.cc
M src/kudu/common/scan_spec.cc
M src/kudu/common/scan_spec.h
M src/kudu/common/schema-test.cc
M src/kudu/common/schema.cc
M src/kudu/common/schema.h
M src/kudu/common/timestamp.cc
M src/kudu/common/timestamp.h
M src/kudu/common/types.cc
M src/kudu/common/types.h
M src/kudu/common/wire_protocol-test.cc
M src/kudu/common/wire_protocol.cc
M src/kudu/common/wire_protocol.h
M src/kudu/gutil/atomicops-internals-macosx.h
M src/kudu/gutil/atomicops-internals-powerpc.h
M src/kudu/gutil/atomicops-internals-tsan.h
M src/kudu/gutil/atomicops-internals-x86.cc
M src/kudu/gutil/atomicops-internals-x86.h
M src/kudu/gutil/atomicops.h
M src/kudu/gutil/bits.h
M src/kudu/gutil/callback_internal.cc
M src/kudu/gutil/callback_internal.h
M src/kudu/gutil/cpu.cc
M src/kudu/gutil/hash/builtin_type_hash.h
M src/kudu/gutil/hash/city.cc
M src/kudu/gutil/hash/hash.cc
M src/kudu/gutil/hash/hash.h
M src/kudu/gutil/hash/jenkins.cc
M src/kudu/gutil/mathlimits.h
M src/kudu/gutil/once.cc
M src/kudu/gutil/once.h
M src/kudu/gutil/ref_counted.cc
M src/kudu/gutil/ref_counted.h
M src/kudu/gutil/ref_counted_memory.cc
M src/kudu/gutil/ref_counted_memory.h
M src/kudu/gutil/spinlock.cc
M src/kudu/gutil/spinlock.h
M src/kudu/gutil/spinlock_internal.h
M src/kudu/gutil/stringprintf.cc
M src/kudu/gutil/strings/escaping.cc
M src/kudu/gutil/strings/escaping.h
M src/kudu/gutil/strings/human_readable.cc
M src/kudu/gutil/strings/human_readable.h
M src/kudu/gutil/strings/join.cc
M src/kudu/gutil/strings/join.h
M src/kudu/gutil/strings/memutil.h
M src/kudu/gutil/strings/numbers.cc
M src/kudu/gutil/strings/numbers.h
M src/kudu/gutil/strings/serialize.cc
M src/kudu/gutil/strings/serialize.h
M src/kudu/gutil/strings/split.cc
M src/kudu/gutil/strings/split.h
M src/kudu/gutil/strings/strcat.cc
M src/kudu/gutil/strings/strcat.h
M src/kudu/gutil/strings/stringpiece.cc
M src/kudu/gutil/strings/stringpiece.h
M src/kudu/gutil/strings/strip.cc
M src/kudu/gutil/strings/strip.h
M src/kudu/gutil/strings/substitute.cc
M src/kudu/gutil/strings/substitute.h
M src/kudu/gutil/strings/util.cc
M src/kudu/gutil/strings/util.h
M src/kudu/gutil/strtoint.cc
M src/kudu/gutil/strtoint.h
M src/kudu/gutil/sysinfo.cc
M src/kudu/gutil/sysinfo.h
M src/kudu/gutil/threading/thread_collision_warner.cc
M src/kudu/gutil/threading/thread_collision_warner.h
M src/kudu/gutil/walltime.h
M src/kudu/rpc/acceptor_pool.cc
M src/kudu/rpc/acceptor_pool.h
M src/kudu/rpc/auth_store.cc
M src/kudu/rpc/auth_store.h
M src/kudu/rpc/blocking_ops.cc
M src/kudu/rpc/blocking_ops.h
M src/kudu/rpc/connection.cc
M src/kudu/rpc/connection.h
M src/kudu/rpc/exactly_once_rpc-test.cc
M src/kudu/rpc/inbound_call.cc
M src/kudu/rpc/inbound_call.h
M src/kudu/rpc/messenger.cc
M src/kudu/rpc/messenger.h
M src/kudu/rpc/mt-rpc-test.cc
M src/kudu/rpc/negotiation.cc
M src/kudu/rpc/negotiation.h
M src/kudu/rpc/outbound_call.cc
M src/kudu/rpc/outbound_call.h
M src/kudu/rpc/proxy.cc
M src/kudu/rpc/proxy.h
M src/kudu/rpc/reactor-test.cc
M src/kudu/rpc/reactor.cc
M src/kudu/rpc/react

[kudu-CR] KUDU-1508: script for testing presence of bug and finding upper bounds

2016-10-17 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change.

Change subject: KUDU-1508: script for testing presence of bug and finding upper 
bounds
..


Patch Set 1:

(5 comments)

> can you write in the commit message or in the test header something
 > about what the finding here means? if I'm interpreting it
 > correctly, we're trying to find the max number of extents in the
 > tree before it becomes multi-level, and that's dependent on the
 > file system's block size?

Yes, I'll note that in the commit description.

http://gerrit.cloudera.org:8080/#/c/4730/1/src/kudu/experiments/KUDU-1508/hole_punch_range.c
File src/kudu/experiments/KUDU-1508/hole_punch_range.c:

Line 32: fprintf(stderr, "usage: %s
\n", argv[0]);
> clarify whether the file should exist or not, and how large it should be?
Clarified the existence and the arguments.

Size doesn't matter; fallocate() will no-op if you punch a hole beyond the size 
of the file.


Line 40:   int fd = open(argv[1], O_EXCL | O_WRONLY, 0644);
> O_EXCL without O_CREAT is undefined
Whoops, dropped O_EXCL.


Line 54:   for (block_num = start_block; block_num < end_block; block_num += 
stride) {
> any reason not to use C99 here?
Not a huge deal, but I didn't want to have to pass -std=c99 with older 
compilers (i.e. gcc 4.4 on el6). Given that this is the only C99ism, it seemed 
like a reasonable trade-off.


http://gerrit.cloudera.org:8080/#/c/4730/1/src/kudu/experiments/KUDU-1508/run_test.sh
File src/kudu/experiments/KUDU-1508/run_test.sh:

PS1, Line 70: 1
> instead of '1' how about using a string like 'fail_ok' so it's clearer
Sure, will use "fail_ok".

I couldn't get "... || :" to work with the run() method, though maybe there's 
some quoting that would make it work.


PS1, Line 77: -l 
> can you use the longer form (--length) here and elsewhere for flags that ar
Sure, though I think this is the only place I could use a longopt.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] [client.h] CountBufferedOperations marked as deprecated

2016-10-17 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [client.h] CountBufferedOperations marked as deprecated
..


Patch Set 3: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: If6293c0a3058f7056d24e7cee0120d1852ded548
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] [client.h] CountBufferedOperations marked as deprecated

2016-10-17 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [client.h] CountBufferedOperations marked as deprecated
..


[client.h] CountBufferedOperations marked as deprecated

KuduSession::CountBufferedOperations() is used only by tests now.
Also, the only flush mode to use this method consistently is
MANUAL_FLUSH mode, but in that mode it's easy to count for number of
buffered operations by a different means -- that's the count of Apply()
calls since last KuduSession::Flush() call (or invocation of
the callback passed into KuduSession::FlushAsync() method).

Change-Id: If6293c0a3058f7056d24e7cee0120d1852ded548
Reviewed-on: http://gerrit.cloudera.org:8080/4723
Tested-by: Kudu Jenkins
Reviewed-by: Jean-Daniel Cryans 
---
M src/kudu/client/client.h
1 file changed, 17 insertions(+), 5 deletions(-)

Approvals:
  Jean-Daniel Cryans: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: If6293c0a3058f7056d24e7cee0120d1852ded548
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-1508: script for testing presence of bug and finding upper bounds

2016-10-17 Thread Adar Dembo (Code Review)
Hello Kudu Jenkins,

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

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

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

Change subject: KUDU-1508: script for testing presence of bug and finding upper 
bounds
..

KUDU-1508: script for testing presence of bug and finding upper bounds

This patch introduces a script that tests for the presence of KUDU-1508 and
establishes a "safe" upper bound on the number of extents an ext4 file can
have before it becomes vulnerable to the bug. The upper bound is actually a
function of the filesystem's block size, since that's the granularity on
which hole punching operates.

When run on my laptop (Ubuntu 16.04):

  This kernel is not vulnerable to KUDU-1508, skipping test

When run on ve0518 (an el6.6 box):

  This kernel is vulnerable to KUDU-1508, finding per-block size upper bounds
  Block size 1024: searching for block number upper bound (MIN=0,MAX=16384)
  Block size 1024: 8192 bad (MIN=0,MAX=16384)
  Block size 1024: 4095 bad (MIN=0,MAX=8191)
  Block size 1024: 2047 bad (MIN=0,MAX=4094)
  Block size 1024: 1023 bad (MIN=0,MAX=2046)
  Block size 1024: 511 good (MIN=0,MAX=1022)
  Block size 1024: 767 bad (MIN=512,MAX=1022)
  Block size 1024: 639 good (MIN=512,MAX=766)
  Block size 1024: 703 bad (MIN=640,MAX=766)
  Block size 1024: 671 good (MIN=640,MAX=702)
  Block size 1024: 687 bad (MIN=672,MAX=702)
  Block size 1024: 679 bad (MIN=672,MAX=686)
  Block size 1024: 675 bad (MIN=672,MAX=678)
  Block size 1024: 673 good (MIN=672,MAX=674)
  Block size 1024: upper bound found at 673
  Block size 2048: searching for block number upper bound (MIN=0,MAX=16384)
  Block size 2048: 8192 bad (MIN=0,MAX=16384)
  Block size 2048: 4095 bad (MIN=0,MAX=8191)
  Block size 2048: 2047 bad (MIN=0,MAX=4094)
  Block size 2048: 1023 good (MIN=0,MAX=2046)
  Block size 2048: 1535 bad (MIN=1024,MAX=2046)
  Block size 2048: 1279 good (MIN=1024,MAX=1534)
  Block size 2048: 1407 bad (MIN=1280,MAX=1534)
  Block size 2048: 1343 good (MIN=1280,MAX=1406)
  Block size 2048: 1375 bad (MIN=1344,MAX=1406)
  Block size 2048: 1359 bad (MIN=1344,MAX=1374)
  Block size 2048: 1351 good (MIN=1344,MAX=1358)
  Block size 2048: 1355 bad (MIN=1352,MAX=1358)
  Block size 2048: 1353 good (MIN=1352,MAX=1354)
  Block size 2048: upper bound found at 1353
  Block size 4096: searching for block number upper bound (MIN=0,MAX=16384)
  Block size 4096: 8192 bad (MIN=0,MAX=16384)
  Block size 4096: 4095 bad (MIN=0,MAX=8191)
  Block size 4096: 2047 good (MIN=0,MAX=4094)
  Block size 4096: 3071 bad (MIN=2048,MAX=4094)
  Block size 4096: 2559 good (MIN=2048,MAX=3070)
  Block size 4096: 2815 bad (MIN=2560,MAX=3070)
  Block size 4096: 2687 good (MIN=2560,MAX=2814)
  Block size 4096: 2751 bad (MIN=2688,MAX=2814)
  Block size 4096: 2719 good (MIN=2688,MAX=2750)
  Block size 4096: 2735 bad (MIN=2720,MAX=2750)
  Block size 4096: 2727 bad (MIN=2720,MAX=2734)
  Block size 4096: 2723 bad (MIN=2720,MAX=2726)
  Block size 4096: 2721 good (MIN=2720,MAX=2722)
  Block size 4096: upper bound found at 2721

Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178
---
A src/kudu/experiments/KUDU-1508/hole_punch_range.c
A src/kudu/experiments/KUDU-1508/run_test.sh
2 files changed, 234 insertions(+), 0 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] consensus queue: make methods non-virtual

2016-10-17 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change.

Change subject: consensus_queue: make methods non-virtual
..


Patch Set 2: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: If90af3a3db2a1c513f7e587dfbfa076699426803
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-HasComments: No


[kudu-CR] KUDU-1135 (part 2): avoid flushing metadata twice when starting an election

2016-10-17 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change.

Change subject: KUDU-1135 (part 2): avoid flushing metadata twice when starting 
an election
..


Patch Set 3:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4702/3/src/kudu/consensus/raft_consensus.cc
File src/kudu/consensus/raft_consensus.cc:

Line 1852: if (result.decision == VOTE_DENIED) {
did you mean to have this change here? doesn't seem stricly related to the 
double flush thing.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I231273a1cfa92275788dd99c78e284ecd0543d7a
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Dinesh Bhat 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1135 (part 2): avoid flushing metadata twice when starting an election

2016-10-17 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change.

Change subject: KUDU-1135 (part 2): avoid flushing metadata twice when starting 
an election
..


Patch Set 3: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I231273a1cfa92275788dd99c78e284ecd0543d7a
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Dinesh Bhat 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] KUDU-1135 (part 2): avoid flushing metadata twice when starting an election

2016-10-17 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change.

Change subject: KUDU-1135 (part 2): avoid flushing metadata twice when starting 
an election
..


Patch Set 3:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4702/3/src/kudu/consensus/raft_consensus.cc
File src/kudu/consensus/raft_consensus.cc:

Line 1852: if (result.decision == VOTE_DENIED) {
> did you mean to have this change here? doesn't seem stricly related to the 
oops the change I was referring to went on another patch (was diffing against 
the previous rev)


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I231273a1cfa92275788dd99c78e284ecd0543d7a
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Dinesh Bhat 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] consensus: remove bits of dead code

2016-10-17 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change.

Change subject: consensus: remove bits of dead code
..


Patch Set 2: Code-Review+2

(1 comment)

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

Line 596:   // or if we had an actual IO error, which we currently don't handle.
> Done. Actually decided that there are no errors here we need to try to hand
sgtm


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I8dc0a129f4f136256083a31e4b4b27e6a673dbee
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] consensus peers: a little cleanup of cruft

2016-10-17 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change.

Change subject: consensus_peers: a little cleanup of cruft
..


Patch Set 3: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ie01c24b840e456482c12f96f3e2bcb3ad4388f0b
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] KUDU-1508: script for testing presence of bug and finding upper bounds

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: KUDU-1508: script for testing presence of bug and finding upper 
bounds
..


Patch Set 2: Code-Review+2

Seems fine. I'll admit I didn't review it that carefully, but it's just an 
experiment, so who cares :)

(btw in the future would prefer this kind of thing in python vs shell!)

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] KUDU-1508: script for testing presence of bug and finding upper bounds

2016-10-17 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change.

Change subject: KUDU-1508: script for testing presence of bug and finding upper 
bounds
..


Patch Set 2:

> (btw in the future would prefer this kind of thing in python vs
 > shell!)

Really? I think the amount of "invoke subprocesses" outweighs the amount of "do 
stuff with the results"; doesn't that balance favor shell?

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] KUDU-1508: script for testing presence of bug and finding upper bounds

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: KUDU-1508: script for testing presence of bug and finding upper 
bounds
..


Patch Set 2:

I suppose, except that the shell regexes make my eyes bleed. Plus the fallocate 
helper script probably could be written in python, too. Anyway water under the 
bridge, it's just an experiment

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] KUDU-1508: script for testing presence of bug and finding upper bounds

2016-10-17 Thread Adar Dembo (Code Review)
Adar Dembo has submitted this change and it was merged.

Change subject: KUDU-1508: script for testing presence of bug and finding upper 
bounds
..


KUDU-1508: script for testing presence of bug and finding upper bounds

This patch introduces a script that tests for the presence of KUDU-1508 and
establishes a "safe" upper bound on the number of extents an ext4 file can
have before it becomes vulnerable to the bug. The upper bound is actually a
function of the filesystem's block size, since that's the granularity on
which hole punching operates.

When run on my laptop (Ubuntu 16.04):

  This kernel is not vulnerable to KUDU-1508, skipping test

When run on ve0518 (an el6.6 box):

  This kernel is vulnerable to KUDU-1508, finding per-block size upper bounds
  Block size 1024: searching for block number upper bound (MIN=0,MAX=16384)
  Block size 1024: 8192 bad (MIN=0,MAX=16384)
  Block size 1024: 4095 bad (MIN=0,MAX=8191)
  Block size 1024: 2047 bad (MIN=0,MAX=4094)
  Block size 1024: 1023 bad (MIN=0,MAX=2046)
  Block size 1024: 511 good (MIN=0,MAX=1022)
  Block size 1024: 767 bad (MIN=512,MAX=1022)
  Block size 1024: 639 good (MIN=512,MAX=766)
  Block size 1024: 703 bad (MIN=640,MAX=766)
  Block size 1024: 671 good (MIN=640,MAX=702)
  Block size 1024: 687 bad (MIN=672,MAX=702)
  Block size 1024: 679 bad (MIN=672,MAX=686)
  Block size 1024: 675 bad (MIN=672,MAX=678)
  Block size 1024: 673 good (MIN=672,MAX=674)
  Block size 1024: upper bound found at 673
  Block size 2048: searching for block number upper bound (MIN=0,MAX=16384)
  Block size 2048: 8192 bad (MIN=0,MAX=16384)
  Block size 2048: 4095 bad (MIN=0,MAX=8191)
  Block size 2048: 2047 bad (MIN=0,MAX=4094)
  Block size 2048: 1023 good (MIN=0,MAX=2046)
  Block size 2048: 1535 bad (MIN=1024,MAX=2046)
  Block size 2048: 1279 good (MIN=1024,MAX=1534)
  Block size 2048: 1407 bad (MIN=1280,MAX=1534)
  Block size 2048: 1343 good (MIN=1280,MAX=1406)
  Block size 2048: 1375 bad (MIN=1344,MAX=1406)
  Block size 2048: 1359 bad (MIN=1344,MAX=1374)
  Block size 2048: 1351 good (MIN=1344,MAX=1358)
  Block size 2048: 1355 bad (MIN=1352,MAX=1358)
  Block size 2048: 1353 good (MIN=1352,MAX=1354)
  Block size 2048: upper bound found at 1353
  Block size 4096: searching for block number upper bound (MIN=0,MAX=16384)
  Block size 4096: 8192 bad (MIN=0,MAX=16384)
  Block size 4096: 4095 bad (MIN=0,MAX=8191)
  Block size 4096: 2047 good (MIN=0,MAX=4094)
  Block size 4096: 3071 bad (MIN=2048,MAX=4094)
  Block size 4096: 2559 good (MIN=2048,MAX=3070)
  Block size 4096: 2815 bad (MIN=2560,MAX=3070)
  Block size 4096: 2687 good (MIN=2560,MAX=2814)
  Block size 4096: 2751 bad (MIN=2688,MAX=2814)
  Block size 4096: 2719 good (MIN=2688,MAX=2750)
  Block size 4096: 2735 bad (MIN=2720,MAX=2750)
  Block size 4096: 2727 bad (MIN=2720,MAX=2734)
  Block size 4096: 2723 bad (MIN=2720,MAX=2726)
  Block size 4096: 2721 good (MIN=2720,MAX=2722)
  Block size 4096: upper bound found at 2721

Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178
Reviewed-on: http://gerrit.cloudera.org:8080/4730
Tested-by: Kudu Jenkins
Reviewed-by: Todd Lipcon 
---
A src/kudu/experiments/KUDU-1508/hole_punch_range.c
A src/kudu/experiments/KUDU-1508/run_test.sh
2 files changed, 234 insertions(+), 0 deletions(-)

Approvals:
  Todd Lipcon: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I710918a153a9e8e05e989fe63281891c9ebc7178
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-1684 - [python] Add Scan Resource Metrics Capabilities

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: KUDU-1684 - [python] Add Scan Resource Metrics Capabilities
..


Patch Set 2:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/4675/2/python/kudu/tests/test_scanner.py
File python/kudu/tests/test_scanner.py:

PS2, Line 233: returns 0.
this part of the test doesn't seem that relevant anymore


http://gerrit.cloudera.org:8080/#/c/4675/2/python/kudu/tests/test_scantoken.py
File python/kudu/tests/test_scantoken.py:

Line 216: def test_resource_metrics(self):
this test seems pretty redundant with the other scanner test -- isn't it a safe 
assumption that once you create a scanner from a token that it acts the same as 
any other scanner?


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ib6c4057bd2644e46bdbf8bae0d4a768306e2dbd9
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jordan Birdsell 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jordan Birdsell 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1692: tie various reader memtrackers to the tablet tracker

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: KUDU-1692: tie various reader memtrackers to the tablet tracker
..


Patch Set 3:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4708/3/src/kudu/tablet/deltamemstore.cc
File src/kudu/tablet/deltamemstore.cc:

Line 65: HeapBufferAllocator::Get(), parent_tracker)),
this one shouldn't be a move?


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I40ea59dc5d70c8ec935f9d96bcdb914c1d23ec5a
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1365. Add leader pre-elections

2016-10-17 Thread David Ribeiro Alves (Code Review)
David Ribeiro Alves has posted comments on this change.

Change subject: KUDU-1365. Add leader pre-elections
..


Patch Set 5: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ifcfabd8c9ffe31f17ab768542a046426f656db43
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] KUDU-1365. Add leader pre-elections

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has submitted this change and it was merged.

Change subject: KUDU-1365. Add leader pre-elections
..


KUDU-1365. Add leader pre-elections

This implements the "pre-election" extension to the Raft algorithm.
The idea is that, before calling a leader election, a candidate first
sends a pre-election vote request to all voters. The voters respond
as they would have in a real vote, except they don't actually record
their vote.

Cluster tests verify that this substantially reduces the election storms
after a node has a temporarily slow disk or otherwise freezes.

A new experimental flag 'raft_enable_pre_election' is introduced which
defaults the feature to on, but provides a safety valve to disable this
in case we find some bug after release.

Tested this patch (along with the following series of cleanups) with:
 [1] 1000 loops of RaftConsensusITest.MultiThreadedInsertWithFailovers
 [2] 500 loops of raft-consensus-itest overall
 [3] 1000 loops of exactly_once_writes-itest

The above tests have usually been pretty good about finding bugs in
consensus in the past.

[1] http://dist-test.cloudera.org//job?job_id=todd.1476502616.16080
[2] http://dist-test.cloudera.org//job?job_id=todd.1476503111.17428
[3] http://dist-test.cloudera.org//job?job_id=todd.1476503268.18454

Change-Id: Ifcfabd8c9ffe31f17ab768542a046426f656db43
Reviewed-on: http://gerrit.cloudera.org:8080/4694
Tested-by: Kudu Jenkins
Reviewed-by: David Ribeiro Alves 
---
M src/kudu/consensus/consensus.h
M src/kudu/consensus/consensus.proto
M src/kudu/consensus/leader_election-test.cc
M src/kudu/consensus/leader_election.cc
M src/kudu/consensus/leader_election.h
M src/kudu/consensus/raft_consensus.cc
M src/kudu/consensus/raft_consensus.h
M src/kudu/consensus/raft_consensus_quorum-test.cc
M src/kudu/integration-tests/raft_consensus-itest.cc
M src/kudu/tserver/tablet_service.cc
10 files changed, 309 insertions(+), 144 deletions(-)

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



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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifcfabd8c9ffe31f17ab768542a046426f656db43
Gerrit-PatchSet: 6
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-1135 (part 2): avoid flushing metadata twice when starting an election

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: KUDU-1135 (part 2): avoid flushing metadata twice when starting 
an election
..


Patch Set 4: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I231273a1cfa92275788dd99c78e284ecd0543d7a
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Dinesh Bhat 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] consensus peers: a little cleanup of cruft

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: consensus_peers: a little cleanup of cruft
..


Patch Set 4: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ie01c24b840e456482c12f96f3e2bcb3ad4388f0b
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] KUDU-1135 (part 2): avoid flushing metadata twice when starting an election

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: KUDU-1135 (part 2): avoid flushing metadata twice when starting 
an election
..


Patch Set 4:

just a rebase

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I231273a1cfa92275788dd99c78e284ecd0543d7a
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Dinesh Bhat 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] consensus peers: a little cleanup of cruft

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has submitted this change and it was merged.

Change subject: consensus_peers: a little cleanup of cruft
..


consensus_peers: a little cleanup of cruft

* removes a test method that no longer was necessary
* removes an unimplemented method
* cleans up comments
* makes PeerManager methods non-virtual now that we no longer try to
  mock them

In particular I removed a big "state diagram" that I didn't find very
helpful and replaced it with a bit more text.

This is in prep for some work on KUDU-699.

Change-Id: Ie01c24b840e456482c12f96f3e2bcb3ad4388f0b
Reviewed-on: http://gerrit.cloudera.org:8080/4704
Tested-by: Kudu Jenkins
Reviewed-by: Todd Lipcon 
---
M src/kudu/consensus/consensus_peers-test.cc
M src/kudu/consensus/consensus_peers.cc
M src/kudu/consensus/consensus_peers.h
M src/kudu/consensus/peer_manager.h
4 files changed, 23 insertions(+), 67 deletions(-)

Approvals:
  Todd Lipcon: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie01c24b840e456482c12f96f3e2bcb3ad4388f0b
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-1135 (part 2): avoid flushing metadata twice when starting an election

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has submitted this change and it was merged.

Change subject: KUDU-1135 (part 2): avoid flushing metadata twice when starting 
an election
..


KUDU-1135 (part 2): avoid flushing metadata twice when starting an election

Change-Id: I231273a1cfa92275788dd99c78e284ecd0543d7a
Reviewed-on: http://gerrit.cloudera.org:8080/4702
Tested-by: Kudu Jenkins
Reviewed-by: Todd Lipcon 
---
M src/kudu/consensus/raft_consensus.cc
M src/kudu/consensus/raft_consensus.h
M src/kudu/consensus/raft_consensus_quorum-test.cc
3 files changed, 12 insertions(+), 12 deletions(-)

Approvals:
  Todd Lipcon: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I231273a1cfa92275788dd99c78e284ecd0543d7a
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Dinesh Bhat 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] consensus: move more logic from ReplicaState to RaftConsensus

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: consensus: move more logic from ReplicaState to RaftConsensus
..


Patch Set 3:

this one still needs a re-review

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I0f377ebb132f3f58f984605197831f41198d78c5
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] rpc: Add min / max negotiation threads

2016-10-17 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: rpc: Add min / max negotiation threads
..


Patch Set 1:

(1 comment)

Doing some tests on a very large cluster recently I ran into the fact that this 
wasn't configurable, so I think making the max configurable is a good idea.

http://gerrit.cloudera.org:8080/#/c/4574/1/src/kudu/server/server_base.cc
File src/kudu/server/server_base.cc:

PS1, Line 65: 4,
after some experimentation on clusters, I think we should bump this up 
substantially to 50+


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ife98b39d5f3a340702151ab27dc8026c8bac12ac
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes