[kudu-CR] KUDU-1982 Java client calls NetworkInterface.getByInetAddress too often NetworkInterface.getByInetAddress (which is used by NetUtil.isLocalAddress) is very slow on Windows, so cache added.
Pavel Martynov has posted comments on this change. Change subject: KUDU-1982 Java client calls NetworkInterface.getByInetAddress too often NetworkInterface.getByInetAddress (which is used by NetUtil.isLocalAddress) is very slow on Windows, so cache added. .. Patch Set 1: (1 comment) Reply on TestServerInfo.java comments http://gerrit.cloudera.org:8080/#/c/6735/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java File java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java: Line 12: @Test(timeout = 500) > was it previously so slow that this timeout would fire? Yes, without my patch this test runs about 5 seconds on my desktop. Also, I checked NetworkInterface.getNetworkInterfaces() on my Windows desktop and laptop, it returns 35 and 41 respectively (most of them - some virtual interfaces, not manageable by a user). Slow DNS respond is not a problem, because it simply not performed: "If a literal IP address is supplied, only the validity of the address format is checked." (see http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html#getByName%28java.lang.String%29). Yes, I already verified on my initial insert-loadgen sample program and insert pace increased by 15-20 times. Well, I am also not a big fan of such tests, so I understand you correctly that is better to remove it completely? -- To view, visit http://gerrit.cloudera.org:8080/6735 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8fc9d40ebffa17ef43973dc23237dd31dd309c06 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Pavel MartynovGerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Pavel Martynov Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] external mini cluster: spawn perf record for each daemon during Start()
Hello David Ribeiro Alves, Todd Lipcon, I'd like you to do a code review. Please visit http://gerrit.cloudera.org:8080/6742 to review the following change. Change subject: external mini cluster: spawn perf record for each daemon during Start() .. external mini cluster: spawn perf record for each daemon during Start() I want this for the dense node test, but it's not really possible to do from outside ExternalMiniCluster without missing out on time spent in Start(), which I was interested in measuring. So here's a generic approach that can be used by any itest. I wasn't sure whether this should be configured via EMC option or gflag. I ended up with the latter because it's not really something a test needs programmatic access to; it's just something the dev running the test might want to enable manually. Change-Id: I92079f616648788b461d550057b8e23bc9174b71 --- M src/kudu/integration-tests/external_mini_cluster.cc M src/kudu/integration-tests/external_mini_cluster.h 2 files changed, 41 insertions(+), 0 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/42/6742/1 -- To view, visit http://gerrit.cloudera.org:8080/6742 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I92079f616648788b461d550057b8e23bc9174b71 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Adar DemboGerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Todd Lipcon
[kudu-CR] subprocess: remove progname argument
Hello David Ribeiro Alves, Todd Lipcon, I'd like you to do a code review. Please visit http://gerrit.cloudera.org:8080/6740 to review the following change. Change subject: subprocess: remove progname argument .. subprocess: remove progname argument When constructing a subprocess, 'argv[0]' always duplicates 'program', and is typically BaseName()'d as well. Let's just codify that in the subprocess code so that callers need not worry about it. Change-Id: I42d3cb551c350d8f10308035084a8807a1ae240b --- M src/kudu/benchmarks/tpch/tpch_real_world.cc M src/kudu/integration-tests/external_mini_cluster.cc M src/kudu/integration-tests/full_stack-insert-scan-test.cc M src/kudu/rpc/rpc_stub-test.cc M src/kudu/security/test/mini_kdc.cc M src/kudu/util/pstack_watcher.cc M src/kudu/util/pstack_watcher.h M src/kudu/util/subprocess-test.cc M src/kudu/util/subprocess.cc M src/kudu/util/subprocess.h 10 files changed, 33 insertions(+), 46 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/40/6740/1 -- To view, visit http://gerrit.cloudera.org:8080/6740 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I42d3cb551c350d8f10308035084a8807a1ae240b Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Adar DemboGerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Todd Lipcon
[kudu-CR] subprocess: add ScopedSubprocess
Hello David Ribeiro Alves, Todd Lipcon, I'd like you to do a code review. Please visit http://gerrit.cloudera.org:8080/6741 to review the following change. Change subject: subprocess: add ScopedSubprocess .. subprocess: add ScopedSubprocess This patch introduces an RAII wrapper around a Subprocess, best suited for processes that should run alongside a unit test and should be killed indiscriminately when the test ends. I intend to use this in the dense node test for "perf", and I changed the existing perf calls in full_stack-insert-scan-test to use it. While there I fixed the handling of "--call-graph"; passing it without "fp" is a syntax error on both el6.6 and Ubuntu 16.04. Change-Id: Iaf31bd4ea6de2917521a9852714fb33cfbec1f61 --- M src/kudu/integration-tests/full_stack-insert-scan-test.cc M src/kudu/util/subprocess-test.cc M src/kudu/util/subprocess.h 3 files changed, 99 insertions(+), 30 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/41/6741/1 -- To view, visit http://gerrit.cloudera.org:8080/6741 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iaf31bd4ea6de2917521a9852714fb33cfbec1f61 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Adar DemboGerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-579 [java client] Scanner fault tolerance
Jean-Daniel Cryans has posted comments on this change. Change subject: KUDU-579 [java_client] Scanner fault tolerance .. Patch Set 8: (5 comments) http://gerrit.cloudera.org:8080/#/c/6566/8/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java File java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java: PS8, Line 731: final nit: doesn't need to be final. http://gerrit.cloudera.org:8080/#/c/6566/8/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanner.java File java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanner.java: PS8, Line 124: . nit, remove http://gerrit.cloudera.org:8080/#/c/6566/8/java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java File java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java: Line 515: error.getCode() == Tserver.TabletServerErrorPB.Code.TABLET_NOT_RUNNING) { master.proto says: > The request or response involved a tablet which is not yet running. Shouldn't we be calling handleRetryableError instead? Basically we just need to check back later. http://gerrit.cloudera.org:8080/#/c/6566/8/java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java File java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java: Line 132: Can you add tests that do the same as below but that aren't fault tolerant? Line 159: private void verifyFaultTolerantScanner(boolean shouldRestart) throws Exception { Can you also add tests that kill/restart servers after we're done scanning the first tablet? Below only makes sure that we can continue in the middle of a tablet. -- To view, visit http://gerrit.cloudera.org:8080/6566 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I89d3634c4255b69e28f2de5412e6a5a9d34e931b Gerrit-PatchSet: 8 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Hao HaoGerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Hao Hao Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-HasComments: Yes
[kudu-CR] Improve unsupported application feature flags error status
Jean-Daniel Cryans has posted comments on this change. Change subject: Improve unsupported application feature flags error status .. Patch Set 1: Code-Review+2 -- To view, visit http://gerrit.cloudera.org:8080/6722 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ie59fba2b5ff57a22d16c7b7eca55ab4581e9b64c Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan BurkertGerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-HasComments: No
[kudu-CR] Improve unsupported application feature flags error status
Jean-Daniel Cryans has submitted this change and it was merged. Change subject: Improve unsupported application feature flags error status .. Improve unsupported application feature flags error status It can be helpful to have the exact set of unsupported flags when debugging compatibility issues. Change-Id: Ie59fba2b5ff57a22d16c7b7eca55ab4581e9b64c Reviewed-on: http://gerrit.cloudera.org:8080/6722 Tested-by: Kudu Jenkins Reviewed-by: Jean-Daniel Cryans--- M src/kudu/rpc/service_pool.cc 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: Jean-Daniel Cryans: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/6722 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ie59fba2b5ff57a22d16c7b7eca55ab4581e9b64c Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan Burkert Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins
[kudu-CR] KUDU-861 Support changing column defaults and storage attributes
Jean-Daniel Cryans has posted comments on this change. Change subject: KUDU-861 Support changing column defaults and storage attributes .. Patch Set 3: Code-Review+1 Carrying my +1 -- To view, visit http://gerrit.cloudera.org:8080/6725 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I48dcfd1ced488943c3da1eb0a26f62780ac9214f Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Will BerkeleyGerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Will Berkeley Gerrit-HasComments: No
[kudu-CR] [docs] Add troubleshooting for KuduStorageHandler
Hello Dan Burkert, I'd like you to do a code review. Please visit http://gerrit.cloudera.org:8080/6738 to review the following change. Change subject: [docs] Add troubleshooting for KuduStorageHandler .. [docs] Add troubleshooting for KuduStorageHandler Change-Id: I80e028a6f827269d97f26ec7a2cf4b8c22d2a838 --- M docs/troubleshooting.adoc 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/38/6738/1 -- To view, visit http://gerrit.cloudera.org:8080/6738 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I80e028a6f827269d97f26ec7a2cf4b8c22d2a838 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Dan Burkert
[kudu-CR] KUDU-1875: Refuse unauthenticated connections from publicly routable IP addrs
Hao Hao has posted comments on this change. Change subject: KUDU-1875: Refuse unauthenticated connections from publicly routable IP addrs .. Patch Set 7: (8 comments) http://gerrit.cloudera.org:8080/#/c/6514/5//COMMIT_MSG Commit Message: PS5, Line 9: : This rejects unauthenticated connections from publicly routable IPs, : even if authentication and encryption are not configured. An unsafe : flag 'allow_unauthenticated_public_connections' is provided to enable : unauthentic > nit: could you keep the lines under 72 chars length? Done http://gerrit.cloudera.org:8080/#/c/6514/1/src/kudu/rpc/negotiation.cc File src/kudu/rpc/negotiation.cc: Line 68: DEFINE_bool(allow_unauthenticated_public_connections, false, > I re-ran the checks with testing public connectivity to some of their used Thanks Harsh! I am bringing this discussion to dev mailing list. http://gerrit.cloudera.org:8080/#/c/6514/5/src/kudu/rpc/server_negotiation.cc File src/kudu/rpc/server_negotiation.cc: PS5, Line 149: RETURN_NOT_OK(RejectUntrustedPublicConnection(addr)); : } > nit: why not just Done PS5, Line 679: negotiated_mech_ == SaslMechanism::PLAIN) { : Sockaddr addr; > RETURN_NOT_OK(RejectUntrustedPublicConnection(addr)); Done PS5, Line 858: > nit: Status::OK() is set by the default constructor, so no assignment is ne Done PS5, Line 861: rivateAddress() > are prohibited Done http://gerrit.cloudera.org:8080/#/c/6514/5/src/kudu/util/net/sockaddr.cc File src/kudu/util/net/sockaddr.cc: PS5, Line 114: Sockaddr::IsPrivateAddress > What about link-local addresses like 169.254.0.0/16 except for first and la Yeah, thanks for point it out. I think we should consider it as private address. This is under discussion in the dev mailing list. PS5, Line 115: uint32 first_byte, sec_byte; : first_byte = NetworkByteOrder::FromHost32(addr_.sin_addr.s_addr) >> 24; : sec_byte = (NetworkByteOrder::FromHost32(addr_.sin_addr.s_addr) >> 16) & 0xff; > nit: why not to initialize the variables at the point of definition, like Done -- To view, visit http://gerrit.cloudera.org:8080/6514 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I6c3fbb5491785874c5701d6c9d866949cfac905e Gerrit-PatchSet: 7 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Hao HaoGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Hao Hao Gerrit-Reviewer: Harsh J Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1875: Refuse unauthenticated connections from publicly routable IP addrs
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/6514 to look at the new patch set (#7). Change subject: KUDU-1875: Refuse unauthenticated connections from publicly routable IP addrs .. KUDU-1875: Refuse unauthenticated connections from publicly routable IP addrs This rejects unauthenticated connections from publicly routable IPs, even if authentication and encryption are not configured. An unsafe flag 'allow_unauthenticated_public_connections' is provided to enable unauthenticated connections from publicly routable IPs. Even though it is highly recommended to disable it. Change-Id: I6c3fbb5491785874c5701d6c9d866949cfac905e --- M src/kudu/rpc/negotiation-test.cc M src/kudu/rpc/negotiation.cc M src/kudu/rpc/server_negotiation.cc M src/kudu/rpc/server_negotiation.h M src/kudu/util/net/net_util-test.cc M src/kudu/util/net/sockaddr.cc M src/kudu/util/net/sockaddr.h M src/kudu/util/net/socket.h 8 files changed, 142 insertions(+), 2 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/14/6514/7 -- To view, visit http://gerrit.cloudera.org:8080/6514 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6c3fbb5491785874c5701d6c9d866949cfac905e Gerrit-PatchSet: 7 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Hao HaoGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Hao Hao Gerrit-Reviewer: Harsh J Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-861 Support changing column defaults and storage attributes
Jean-Daniel Cryans has posted comments on this change. Change subject: KUDU-861 Support changing column defaults and storage attributes .. Patch Set 2: Code-Review+1 Java side looks good. -- To view, visit http://gerrit.cloudera.org:8080/6725 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I48dcfd1ced488943c3da1eb0a26f62780ac9214f Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Will BerkeleyGerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Will Berkeley Gerrit-HasComments: No
[kudu-CR] KUDU-1982 Java client calls NetworkInterface.getByInetAddress too often NetworkInterface.getByInetAddress (which is used by NetUtil.isLocalAddress) is very slow on Windows, so cache added.
Todd Lipcon has posted comments on this change. Change subject: KUDU-1982 Java client calls NetworkInterface.getByInetAddress too often NetworkInterface.getByInetAddress (which is used by NetUtil.isLocalAddress) is very slow on Windows, so cache added. .. Patch Set 1: (3 comments) http://gerrit.cloudera.org:8080/#/c/6735/1/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java File java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java: PS1, Line 51: if (isLocalAddressCache.containsKey(resolvedAddr)) { : this.local = isLocalAddressCache.get(resolvedAddr); better to avoid the double lookup here, and instead just do a 'get' and check the result against null (it's a boxed boolean so would return null if missing). Boolean isLocal = ...get(resolvedAddr); if (isLocal == null) { isLocal = ...isLocal(); ..put(resolvedAddr, isLocal); } this.local = isLocal something like the above http://gerrit.cloudera.org:8080/#/c/6735/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java File java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java: Line 1: package org.apache.kudu.client; add license header Line 12: @Test(timeout = 500) was it previously so slow that this timeout would fire? I'm nervous that this test will be flaky -- eg if DNS is slow to respond on a machine, would it potentially take >500ms for a single lookup? Perhaps better to not bother with a test for this fix, since the codepath is well covered by existing tests, and it should really be tested by a perf regression test. Unfortunately we don't have any infra for setting up regular Windows perf tests, but would be great if you can verify that this fixed the issue on your box. -- To view, visit http://gerrit.cloudera.org:8080/6735 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8fc9d40ebffa17ef43973dc23237dd31dd309c06 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Pavel MartynovGerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] [KUDU-754] add an environment variable for kudu client debugging to stderr
Todd Lipcon has posted comments on this change. Change subject: [KUDU-754] add an environment variable for kudu client debugging to stderr .. Patch Set 1: (12 comments) http://gerrit.cloudera.org:8080/#/c/6736/1//COMMIT_MSG Commit Message: Line 9: read environment variable "KUDU_CLIENT_VERBOSE", calls SetVerboseLogLevel to set the specific verbose level. The InitiGoogleLoggingSafeBasic() already sets the debugging to stderr. nit: can you re-wrap and format this into full sentences with appropriate capitalization, etc? https://chris.beams.io/posts/git-commit/ has a good guide http://gerrit.cloudera.org:8080/#/c/6736/1/src/kudu/client/client-test.cc File src/kudu/client/client-test.cc: Line 5049: nit: whitespace here and below Line 5050: // Test that, if a different verbose level through environment varialble is set, it reflects to the FLAGS_v nit: please wrap (here and a few lines down as well) Line 5053: char sample_verboseLevel[] = "5"; // select a specific verbose level different from 0 no need for a separate variable here. I think it's clear what you're doing so the comment can also be removed. Line 5059: ASSERT_EQ(std::atoi(sample_verboseLevel), FLAGS_v); I think it's fine to just use '5' here literal instead of std::atoi() it above, since the test is so short it doesn't really aid clarity http://gerrit.cloudera.org:8080/#/c/6736/1/src/kudu/client/client.cc File src/kudu/client/client.cc: PS1, Line 148: kLevel this isn't a constant, so it should just be 'int level' PS1, Line 149: char const* temp const char*? Line 151: { style: { goes on the same line as 'if'. Same below. Line 152: kLevel = std::atoi(temp); use safe_strto32() from numbers.h instead, so you can check validity. Maybe LOG(WARNING) if the env var is invalid? PS1, Line 153: kLevel <= 6 why <= 6? Is there some limit on the vlog level as far as glog is concerned? http://gerrit.cloudera.org:8080/#/c/6736/1/src/kudu/client/client.h File src/kudu/client/client.h: PS1, Line 125: /// Set the logging verbose level through environment variable : void KUDU_EXPORT SetClientVerboseLevelFromEnvironmentVariable(); given this is called by the client during initialization, I don't think it's necessary to export it as a public API. If you put it here just for testing, you could move it to client-internal.h (which the tests are allowed to include but don't get shipped) Line 129: static const char* kClientVerboseEnvironmentVariable = "KUDU_CLIENT_VERBOSE"; This should probably be declared extern in the header, and defined in the .cc file. -- To view, visit http://gerrit.cloudera.org:8080/6736 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Iab5c7c24395c25184489200283dd38da024c07bb Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: William LiGerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] [KUDU-754] add an environment variable for kudu client debugging to stderr
William Li has uploaded a new change for review. http://gerrit.cloudera.org:8080/6736 Change subject: [KUDU-754] add an environment variable for kudu client debugging to stderr .. [KUDU-754] add an environment variable for kudu client debugging to stderr read environment variable "KUDU_CLIENT_VERBOSE", calls SetVerboseLogLevel to set the specific verbose level. The InitiGoogleLoggingSafeBasic() already sets the debugging to stderr. Change-Id: Iab5c7c24395c25184489200283dd38da024c07bb --- M src/kudu/client/client-test.cc M src/kudu/client/client.cc M src/kudu/client/client.h 3 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/36/6736/1 -- To view, visit http://gerrit.cloudera.org:8080/6736 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iab5c7c24395c25184489200283dd38da024c07bb Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: William Li
[kudu-CR] Make NO FATALS work standalone
Todd Lipcon has posted comments on this change. Change subject: Make NO_FATALS work standalone .. Patch Set 1: (1 comment) http://gerrit.cloudera.org:8080/#/c/6730/1/src/kudu/util/test_macros.h File src/kudu/util/test_macros.h: Line 23: // ASSERT_NO_FATAL_FAILURE is just too long to type. > This needs to be updated; NO_FATALS is no longer just shorthand, it now is would it be clearer to leave this as is, and add a new #define like 'NO_PENDING_FATALS' or something which does the latter half of this? (26-28) and use that in all cases where we have a no-argument form of NO_FATALS()? -- To view, visit http://gerrit.cloudera.org:8080/6730 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia004214d21a09ca0523ea11d88d2cd4ff783a1ca Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Mike PercyGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] Simplify MemTracker and move process throttling elsewhere
Todd Lipcon has submitted this change and it was merged. Change subject: Simplify MemTracker and move process throttling elsewhere .. Simplify MemTracker and move process throttling elsewhere This takes a first step towards simplifying MemTracker: - Remove the "GC function" callbacks (we never used this) - Remove the 'ExpandLimits' code which was unimplemented. - Remove the logging functionality, which we've never used as far as I can remember. - Remove soft limiting. We only used this on the root tracker, so I just moved it to a new process_memory.{h,cc} - Remove 'consumption_func' and un-tie the root tracker from the global process memory usage. Now the root tracker is a simple sum of its descendents. For a stress/benchmark I ran a 500GB YCSB with a memory limit set to 10GB. Results showed no major difference with this patch (throughput was a few percent faster but within the realm of noise). Details at [1] [1] https://docs.google.com/document/d/1dOe5-L5BWUhF-uV4-AE5hduvfUWctXizlaoSLlp38yM/edit?usp=sharing Change-Id: Id16bad7d9a29a83e820a38e9d703811391cffe90 Reviewed-on: http://gerrit.cloudera.org:8080/6620 Tested-by: Kudu Jenkins Reviewed-by: Adar Dembo--- M src/kudu/consensus/raft_consensus.cc M src/kudu/integration-tests/raft_consensus-itest.cc M src/kudu/server/default-path-handlers.cc M src/kudu/tablet/multi_column_writer.cc M src/kudu/tserver/tablet_service.cc M src/kudu/util/CMakeLists.txt M src/kudu/util/maintenance_manager-test.cc M src/kudu/util/maintenance_manager.cc M src/kudu/util/maintenance_manager.h M src/kudu/util/mem_tracker-test.cc M src/kudu/util/mem_tracker.cc M src/kudu/util/mem_tracker.h A src/kudu/util/process_memory.cc A src/kudu/util/process_memory.h 14 files changed, 373 insertions(+), 613 deletions(-) Approvals: Adar Dembo: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/6620 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: Id16bad7d9a29a83e820a38e9d703811391cffe90 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR] tpch: allow hash partitioning
Todd Lipcon has submitted this change and it was merged. Change subject: tpch: allow hash partitioning .. tpch: allow hash partitioning This enables a hash-partitioning mode for tpch_real_world. In this mode, we still create one tablet per thread, but we use hash-partitioning so that we don't get the perfect one-to-one insert pattern that we get with range partitioning. This is a bit more realistic for many batch insert scenarios, in which many writers write locally-sorted (but overlapping) data ranges into a single hash-partitioned table. Change-Id: Icbbb643447dff58b32e67764f6fb632441a4f6e4 Reviewed-on: http://gerrit.cloudera.org:8080/6709 Tested-by: Kudu Jenkins Reviewed-by: Adar Dembo--- M src/kudu/benchmarks/tpch/rpc_line_item_dao-test.cc M src/kudu/benchmarks/tpch/rpc_line_item_dao.cc M src/kudu/benchmarks/tpch/rpc_line_item_dao.h M src/kudu/benchmarks/tpch/tpch1.cc M src/kudu/benchmarks/tpch/tpch_real_world.cc 5 files changed, 59 insertions(+), 15 deletions(-) Approvals: Adar Dembo: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/6709 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: Icbbb643447dff58b32e67764f6fb632441a4f6e4 Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR](gh-pages) FAQ refresh
Jean-Daniel Cryans has posted comments on this change. Change subject: FAQ refresh .. Patch Set 1: (1 comment) http://gerrit.cloudera.org:8080/#/c/6697/1/faq.md File faq.md: Line 194 > Why was this removed? Don't we still have recommendations on maximum cell s I moved the limitations stuff to the new limitations doc. -- To view, visit http://gerrit.cloudera.org:8080/6697 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Idd8a79e3067bedbef71b0dcf9921be673e9dfaa0 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: gh-pages Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Ambreen Kazi Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR](gh-pages) FAQ refresh
Adar Dembo has posted comments on this change. Change subject: FAQ refresh .. Patch Set 1: (1 comment) http://gerrit.cloudera.org:8080/#/c/6697/1/faq.md File faq.md: Line 194 Why was this removed? Don't we still have recommendations on maximum cell size? -- To view, visit http://gerrit.cloudera.org:8080/6697 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Idd8a79e3067bedbef71b0dcf9921be673e9dfaa0 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: gh-pages Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Ambreen Kazi Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] WIP: KUDU-463. Add checksumming to cfile
Adar Dembo has posted comments on this change. Change subject: WIP: KUDU-463. Add checksumming to cfile .. Patch Set 10: (21 comments) I didn't review the checksumming stuff yet, just looked at the rest and the plumbing. Since the ReadV() stuff turned out to be pretty substantial, could you move it into its own commit? Would be nice to finish reviewing it separately. http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/cfile/cfile_reader.h File src/kudu/cfile/cfile_reader.h: Line 210: bool has_checksums_; This will be padded to 8 bytes, which is actually quite a bit given how many CFileReaders we instantiate. Perhaps we can calculate this on the fly instead, using a mask on footer_'s features? http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/fs/block_manager-test.cc File src/kudu/fs/block_manager-test.cc: PS10, Line 262: gscoped_ptr Nit: use unique_ptr. Actually, these scratch spaces are tiny; can you just allocate them on the stack? Line 267: ReadResult { Surprised that this style of struct initialization works; isn't it C99 but not C++11 compatible? http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/fs/block_manager.h File src/kudu/fs/block_manager.h: Line 38: class Env; No need for this anymore. Though if you decide to pass the vector by pointer as I suggested in env.h, you can omit the env.h include, forward declare ReadResult, and continue to forward declare Env. PS10, Line 162: result You mean results? http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/fs/fs-test-util.h File src/kudu/fs/fs-test-util.h: PS10, Line 72: vector This is a header so we retain namespace qualifications (i.e. this should be std::vector). http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/util/crc.cc File src/kudu/util/crc.cc: PS10, Line 50: Nit: extra space here. http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/util/crc.h File src/kudu/util/crc.h: PS10, Line 38: crc32 Maybe previous_crc32 to be more clear? http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/util/env.h File src/kudu/util/env.h: Line 371: struct ReadResult { Should provide a short high-level struct document too. PS10, Line 403: results I'm finding this to be somewhat confusing. Part of the issue is with the name ReadResult: the majority of stuff in it aren't "results"; they're actually input to the function. Maybe ReadEntry or ReadVEntry would be better? Part of the issue is that the Slice* means an extra level of indirection in the setup that callers have to do. Perhaps they can be regular Slices, that are default-initialized by the caller and set by the callee? That means 'results' should be passed by pointer, but I think that's a clearer model anyway, since we pass by pointer things that the function is expected to modify. Also, could you reorganize ReadResult so that the pure IN parameters precede IN/OUT and OUT? Meaning, the order should probably be length, scratch, then result. Line 536: // TODO (GH): Document Yep. :) http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/util/env_posix.cc File src/kudu/util/env_posix.cc: PS10, Line 175: const struct iovec * Should be const struct iovec* Line 180: return read_bytes; Nit: if you're going to elide the braces, merge this line into the conditional line. This makes it harder to accidentally mess up the conditional if another line is added. Line 182: break; Don't we need to update total_read_bytes with our partial read results before breaking? Line 334: virtual Status ReadV(uint64_t offset, vector results) const OVERRIDE { Could you add TRACE_EVENT1() calls to ReadV() and Read()? Not sure why they were missing in the first place. PS10, Line 340: ReadResult Can be cref? Line 341: return iovec { Again, surprised this kind of initialization works in C++11. PS10, Line 347: results.size() arraylength(iov) is more idiomatic. Line 353: // Adjust slice sizes based on bytes read for short reads As we discussed, let's make short reads an error, for Read() too. Do it as a separate patch and layer this one on top of it. PS10, Line 355: ReadResult Nit: auto is fine for short-scoped types like this one. http://gerrit.cloudera.org:8080/#/c/6630/10/src/kudu/util/env_util.h File src/kudu/util/env_util.h: Line 66: Status ReadVFully(RandomAccessFile* file, uint64_t offset, std::vector results); If you end up solving the partial read stuff directly in RandomAccessFile, this won't be necessary. But if it is, please also doc it. -- To view, visit http://gerrit.cloudera.org:8080/6630 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I6756834cd7f27af258797a3654a95244abeb0976 Gerrit-PatchSet: 10 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Grant HenkeGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Grant Henke
[kudu-CR] [rpc] reopen outbound connections mode for reactor
Alexey Serbin has submitted this change and it was merged. Change subject: [rpc] reopen_outbound_connections mode for reactor .. [rpc] reopen_outbound_connections mode for reactor Introduced a test mode for the RPC ReactorThread: reopen already existing idle outbound connection upon making another remote call to the same server. This is a groundwork for follow-up patches which contain tests requiring connection negotiation to be done upon every RPC call. Added a couple of new ReactorThread metrics to count total number of server- and client-side connections open during ReactorThread lifetime. Added unit test to cover the newly introduced functionality. Also, did a minor clean-up on the ReactorThread code and its inline documentation. Change-Id: I71ada660d8c92de1813a261e221f73017c2c764a Reviewed-on: http://gerrit.cloudera.org:8080/6710 Tested-by: Kudu Jenkins Reviewed-by: Dan Burkert--- M src/kudu/rpc/connection.h M src/kudu/rpc/messenger.h M src/kudu/rpc/reactor.cc M src/kudu/rpc/reactor.h M src/kudu/rpc/rpc-test.cc 5 files changed, 102 insertions(+), 24 deletions(-) Approvals: Dan Burkert: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/6710 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I71ada660d8c92de1813a261e221f73017c2c764a Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey Serbin Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1853 (redux). tablet copy: Don't orphan blocks on failure
Adar Dembo has posted comments on this change. Change subject: KUDU-1853 (redux). tablet copy: Don't orphan blocks on failure .. Patch Set 1: (4 comments) http://gerrit.cloudera.org:8080/#/c/6733/1/src/kudu/tserver/tablet_copy_client-test.cc File src/kudu/tserver/tablet_copy_client-test.cc: Line 187: vector GetAllSortedBlocks(const tablet::TabletSuperBlockPB& sb) { This can use the new test method you added to get all the blocks, right? PS1, Line 218: // Verify that the new superblock reflects the changes in block IDs. : // : // As long as block IDs are generated with UUIDs or something equally : // unique, there's no danger of a block in the new superblock somehow : // being assigned the same ID as a block in the existing superblock. This comment is out of date, I think? Also, you aren't relying on the sorted nature of GetAllSortedBlocks(); you could use the new test method you added that doesn't sort. PS1, Line 288: FIXME: The data loss check here will rarely (never) trigger : // until we fix KUDU-1980. Not sure I understand this. AFAICT tablet copy doesn't use the block cache at all, so why is KUDU-1980 related? Also, reformat as TODO(mpercy). http://gerrit.cloudera.org:8080/#/c/6733/1/src/kudu/tserver/tablet_copy_client.cc File src/kudu/tserver/tablet_copy_client.cc: Line 30: #include "kudu/gutil/gscoped_ptr.h" Not used? -- To view, visit http://gerrit.cloudera.org:8080/6733 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ic999ccd27859ace0d635255e86729dff8e1d8349 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Mike PercyGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] tablet copy: Ensure no data loss on tablet copy failure
Adar Dembo has posted comments on this change. Change subject: tablet copy: Ensure no data loss on tablet copy failure .. Patch Set 1: (1 comment) http://gerrit.cloudera.org:8080/#/c/6732/1//COMMIT_MSG Commit Message: PS1, Line 9: This patch adds an integration test to ensure that we don't see data : loss on tablet copy failure. Tablet copy failure is triggered a couple : of different ways at the source server side. If you unrevert the patch that Todd reverted, does this test fail in the desired manner? -- To view, visit http://gerrit.cloudera.org:8080/6732 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ie57590e2473e09a6836bb02d5fccb7689614f8e7 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Mike PercyGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] tablet copy: Ensure no data loss on tablet copy failure
Adar Dembo has posted comments on this change. Change subject: tablet copy: Ensure no data loss on tablet copy failure .. Patch Set 1: (7 comments) http://gerrit.cloudera.org:8080/#/c/6732/1/src/kudu/integration-tests/tablet_copy-itest.cc File src/kudu/integration-tests/tablet_copy-itest.cc: Line 969: const char* kTableA = "table_a"; Move this down to L976. Line 985: const char* kTableB = "table_b"; Move down. Line 1000: // Shut down replica with only [A]. Maybe before doing this, assert that you got the replica distribution that you wanted? Line 1022: // The early timeout flag will also cause the tablet copy to fail, but ASSERT that failure_flag is the other flag. http://gerrit.cloudera.org:8080/#/c/6732/1/src/kudu/tserver/tablet_copy_service.cc File src/kudu/tserver/tablet_copy_service.cc: Line 69: TAG_FLAG(tablet_copy_early_session_timeout_prob, unsafe); Tag it hidden too. The rest as well (instead of unsafe), if they're supposed to be testing-only. Line 162: // For testing: Close the session prematurely if unsafe gflag is set but Is there a particular reason why this must happen here (after the session has been created) vs. above, where responding with a failure doesn't require tearing down a session? Plus responding earlier with RPC_RETURN_NOT_OK means app_error will actually make it back to the client. Line 288: CHECK_OK(DoEndTabletCopySessionUnlocked(session_id, _error)); Should probably be WARN_NOT_OK. -- To view, visit http://gerrit.cloudera.org:8080/6732 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ie57590e2473e09a6836bb02d5fccb7689614f8e7 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Mike PercyGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] tablet copy: Refactor to avoid separate expiration map
Adar Dembo has posted comments on this change. Change subject: tablet copy: Refactor to avoid separate expiration map .. Patch Set 1: (6 comments) http://gerrit.cloudera.org:8080/#/c/6731/1/src/kudu/tserver/tablet_copy_service.cc File src/kudu/tserver/tablet_copy_service.cc: Line 122: const auto& iter = sessions_.find(session_id); Couldn't you still use FindCopy() as long as the third argument was a SessionEntry? I think it's a little more idiomatic than find() + comparison against end(). Line 134: InsertOrDie(_, session_id, { .session = session, .expires = GetNewExpireTime() }); I thought this was illegal in C++11: http://stackoverflow.com/questions/18731707/why-does-c11-not-support-designated-initializer-list-as-c99 If it compiles for you, can you make sure it's not because of a GNU extension? PS1, Line 261: for (const auto& entry : sessions_) { : session_ids.push_back(entry.first); : } : for (const string& session_id : session_ids) { Can these loops be merged? Line 276: const auto& entry = sessions_.find(session_id); Here too. Line 319: auto iter = sessions_.find(session_id); Here maybe FindOrNull, so you can get a pointer to the SessionEntry in order to modify the expiration time? http://gerrit.cloudera.org:8080/#/c/6731/1/src/kudu/tserver/tablet_copy_service.h File src/kudu/tserver/tablet_copy_service.h: Line 49: struct SessionEntry { Maybe declare this as a nested and private member of TabletCopyServiceImpl, since it's not supposed to be used by anyone except the class itself? -- To view, visit http://gerrit.cloudera.org:8080/6731 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Idcf4e57722e4e34e99064713a6e8d246d3ebf920 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Mike PercyGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Mike Percy Gerrit-Reviewer: Tidy Bot Gerrit-HasComments: Yes
[kudu-CR] Make NO FATALS work standalone
Adar Dembo has posted comments on this change. Change subject: Make NO_FATALS work standalone .. Patch Set 1: (1 comment) http://gerrit.cloudera.org:8080/#/c/6730/1/src/kudu/util/test_macros.h File src/kudu/util/test_macros.h: Line 23: // ASSERT_NO_FATAL_FAILURE is just too long to type. This needs to be updated; NO_FATALS is no longer just shorthand, it now is more featureful (in that it can work on empty statements while ASSERT_NO_FATAL_FAILURES can't. IIRC the original problem was that ASSERT_NO_FATAL_FAILURES doesn't compile properly when the statement includes a lambda, right? Ideally that's something that should be addressed upstream (or by us, in a patch to gtest). I took a quick look but couldn't find any bugs like this in the upstream bug tracker; perhaps you can file one and link to it here? Separately, is there anything we can do to prevent the use of NO_FATALS/ASSERT_NO_FATAL_FAILURE on a lambda? The compile failure wasn't universal; IIRC it only affected newer gcc. See commit 7034bff for details. -- To view, visit http://gerrit.cloudera.org:8080/6730 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia004214d21a09ca0523ea11d88d2cd4ff783a1ca Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Mike PercyGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-HasComments: Yes
[kudu-CR] tpch: allow hash partitioning
Adar Dembo has posted comments on this change. Change subject: tpch: allow hash partitioning .. Patch Set 2: Code-Review+2 -- To view, visit http://gerrit.cloudera.org:8080/6709 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Icbbb643447dff58b32e67764f6fb632441a4f6e4 Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] Simplify MemTracker and move process throttling elsewhere
Adar Dembo has posted comments on this change. Change subject: Simplify MemTracker and move process throttling elsewhere .. Patch Set 4: Code-Review+2 (1 comment) http://gerrit.cloudera.org:8080/#/c/6620/3/src/kudu/util/mem_tracker.cc File src/kudu/util/mem_tracker.cc: Line 240: if (bytes == 0) { > I don't think Consume() can fail (only TryConsume fails). Consume always su Ah yes, my bad. Was looking at TryConsume() when I wrote that comment. -- To view, visit http://gerrit.cloudera.org:8080/6620 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id16bad7d9a29a83e820a38e9d703811391cffe90 Gerrit-PatchSet: 4 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] WIP: KUDU-463. Add checksumming to cfile
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/6630 to look at the new patch set (#10). Change subject: WIP: KUDU-463. Add checksumming to cfile .. WIP: KUDU-463. Add checksumming to cfile Adds optional checksumming and validation to cfile blocks. Introduces 2 flags to control cfile checksumming: - cfile_write_checksums (default false) - cfile_verify_checksums (default true) cfile_write_checksums is used in the CFileWriter to enable computing and appending Crc32 checksums to the end of each cfile block, header and footer cfile_write_checksums is defaulted to false to ensure upgrades don't immediately result in performance degredation and incompatible data on downgrade. It can and likely should be defaulted to true in a later release. When cfile_write_checksums is set to true, the existing incompatible_features bitset in the cfile footer is used. A "checksum" bit is set to ensure a clear error message when older versions of Kudu try to read the file. If checksums are not written the incompatible_features "checksum" bit is not set. cfile_verify_checksums is used in the CFileReader to enable validating the data against the written checksum. cfile_verify_checksums is defaulted to true since validation only occurs if checksums are written. Any data that was written before checksumming was an option or when cfile_write_checksums was false will not be verified. Change-Id: I6756834cd7f27af258797a3654a95244abeb0976 --- M docs/design-docs/cfile.md M src/kudu/cfile/cfile-test.cc M src/kudu/cfile/cfile_reader.cc M src/kudu/cfile/cfile_reader.h M src/kudu/cfile/cfile_util.h M src/kudu/cfile/cfile_writer.cc M src/kudu/fs/block_manager-test.cc M src/kudu/fs/block_manager.h M src/kudu/fs/file_block_manager.cc M src/kudu/fs/fs-test-util.h M src/kudu/fs/log_block_manager.cc M src/kudu/util/crc.cc M src/kudu/util/crc.h M src/kudu/util/env-test.cc M src/kudu/util/env.h M src/kudu/util/env_posix.cc M src/kudu/util/env_util.cc M src/kudu/util/env_util.h M src/kudu/util/file_cache.cc 19 files changed, 792 insertions(+), 51 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/30/6630/10 -- To view, visit http://gerrit.cloudera.org:8080/6630 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6756834cd7f27af258797a3654a95244abeb0976 Gerrit-PatchSet: 10 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Grant HenkeGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Grant Henke Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR] [rpc] reopen outbound connections mode for reactor
Alexey Serbin has posted comments on this change. Change subject: [rpc] reopen_outbound_connections mode for reactor .. Patch Set 3: (1 comment) http://gerrit.cloudera.org:8080/#/c/6710/3//COMMIT_MSG Commit Message: Line 7: [rpc] reopen_outbound_connections mode for reactor > There are a couple of issues I have with modes. Well, most of our tests either have run-time parameters different from what they are by default in production, or turn on some non-production modes (e.g. fault injection and alike) to exercise some particular code paths for better coverage. And the follow-up tests are not exception. We could look at this new option as the boundary case of the RPC keepalive-related parameters -- in the real production, connections are closed after some period of inactivity (65 seconds by default). The regular long-lived connection scenarios are not in the scope of coming new tests: the authn token is verified only when connection is established, as I understand. Those long-lived scenarios cannot be addressed in the scope of our integration tests because they cannot run for too long without being killed by the test framework. If you think it's necessary to address those and specifically target some possible issues you know about, let's open a separate JIRA item for that. Yes, combination of different modes might give a huge matrix of different behaviors to test and verify. However, adding a multitude of change-of-behavior points in the client code is not any better: it would not be like in the production code anyway, and it would change the behavior in many places, so variation matrix would be of much greater dimensions. As I see it, if not doing multiple incisions, current client code does not allow to implement a clean cut, driven-from-the-test-only scenario which would give good coverage for authn token verification paths. If not touching the production code, then it would be necessary to implement a massive mock proxy for the client. The latter wouldn't give any assurance that it would be close to the behavior of the real production code. -- To view, visit http://gerrit.cloudera.org:8080/6710 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I71ada660d8c92de1813a261e221f73017c2c764a Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] [docs] Refresh and augment the known issues
Jean-Daniel Cryans has submitted this change and it was merged. Change subject: [docs] Refresh and augment the known issues .. [docs] Refresh and augment the known issues We've learned a lot about Kudu since people have started using it. I've gathered in this patch what I think should be the new recommendations we make to users. Change-Id: I5d8e817a402f419aeb5ed9d700a8207ad9f91e4d Reviewed-on: http://gerrit.cloudera.org:8080/6699 Tested-by: Kudu Jenkins Reviewed-by: Dan Burkert--- M docs/developing.adoc M docs/installation.adoc M docs/known_issues.adoc M docs/kudu_impala_integration.adoc 4 files changed, 107 insertions(+), 21 deletions(-) Approvals: Dan Burkert: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/6699 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I5d8e817a402f419aeb5ed9d700a8207ad9f91e4d Gerrit-PatchSet: 6 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jean-Daniel Cryans Gerrit-Reviewer: Ambreen Kazi Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon
[kudu-CR] [docs] Refresh and augment the known issues
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/6699 to look at the new patch set (#5). Change subject: [docs] Refresh and augment the known issues .. [docs] Refresh and augment the known issues We've learned a lot about Kudu since people have started using it. I've gathered in this patch what I think should be the new recommendations we make to users. Change-Id: I5d8e817a402f419aeb5ed9d700a8207ad9f91e4d --- M docs/developing.adoc M docs/installation.adoc M docs/known_issues.adoc M docs/kudu_impala_integration.adoc 4 files changed, 107 insertions(+), 21 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/99/6699/5 -- To view, visit http://gerrit.cloudera.org:8080/6699 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5d8e817a402f419aeb5ed9d700a8207ad9f91e4d Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Ambreen Kazi Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon
[kudu-CR] [docs] Refresh and augment the known issues
Dan Burkert has posted comments on this change. Change subject: [docs] Refresh and augment the known issues .. Patch Set 4: (1 comment) http://gerrit.cloudera.org:8080/#/c/6699/4/docs/developing.adoc File docs/developing.adoc: Line 167: - `NULL`, `NOT NULL`, `<>`, `OR`, `LIKE`, and `IN` predicates are not pushed to This needs to be updated, `IN`, `NOT NULL`, `NULL`, can be taken out. And some `LIKE` queries are also pushed down now (LIKE "foo%") -- To view, visit http://gerrit.cloudera.org:8080/6699 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I5d8e817a402f419aeb5ed9d700a8207ad9f91e4d Gerrit-PatchSet: 4 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Ambreen Kazi Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1982 Java client calls NetworkInterface.getByInetAddress too often NetworkInterface.getByInetAddress (which is used by NetUtil.isLocalAddress) is very slow on Windows, so cache added.
Pavel Martynov has uploaded a new change for review. http://gerrit.cloudera.org:8080/6735 Change subject: KUDU-1982 Java client calls NetworkInterface.getByInetAddress too often NetworkInterface.getByInetAddress (which is used by NetUtil.isLocalAddress) is very slow on Windows, so cache added. .. KUDU-1982 Java client calls NetworkInterface.getByInetAddress too often NetworkInterface.getByInetAddress (which is used by NetUtil.isLocalAddress) is very slow on Windows, so cache added. Change-Id: I8fc9d40ebffa17ef43973dc23237dd31dd309c06 --- M java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java A java/kudu-client/src/test/java/org/apache/kudu/client/TestServerInfo.java 2 files changed, 33 insertions(+), 1 deletion(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/35/6735/1 -- To view, visit http://gerrit.cloudera.org:8080/6735 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8fc9d40ebffa17ef43973dc23237dd31dd309c06 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Pavel Martynov