You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kudu.apache.org by "Binglin Chang (Code Review)" <ge...@cloudera.org> on 2016/05/01 07:46:54 UTC

[kudu-CR] KUDU-1235. Add Get API

Hello Kudu Jenkins,

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

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

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

Change subject: KUDU-1235. Add Get API
......................................................................

KUDU-1235. Add Get API

This commit add Get API to kudu java and c++ client, it is more user
friendly than Scan API if user only want single record lookup by primary
key. Also YSCB is modified to add an option to config using Get or Scan
API for get operations, test has showed better performance.

This patch also add some optimization in RPC layer:

1. Add a lifo queue for rpc worker threads.
2. Change Connection::ReadHandler to handle multiple requests in single
   epoll loop.

Result on i7-4770 CPU @ 3.40GHz (4 core 8 thread):
100 concurrency 6 client thread 6 server reactor thread
1 tablet with 4K cfile block size
Get: ~220K qps

Change-Id: Id054a198373da04a3eca5b244516acc378e1e37c
---
A java/kudu-client/src/main/java/org/kududb/client/AbstractKuduGetterBuilder.java
M java/kudu-client/src/main/java/org/kududb/client/AsyncKuduClient.java
A java/kudu-client/src/main/java/org/kududb/client/AsyncKuduGetter.java
M java/kudu-client/src/main/java/org/kududb/client/KuduClient.java
A java/kudu-client/src/main/java/org/kududb/client/KuduGetter.java
A java/kudu-client/src/main/java/org/kududb/client/SingleRowResult.java
M java/kudu-client/src/test/java/org/kududb/client/TestAsyncKuduSession.java
A java/kudu-client/src/test/java/org/kududb/client/TestGetPerf.java
M src/kudu/cfile/binary_plain_block.cc
M src/kudu/client/CMakeLists.txt
M src/kudu/client/client-test.cc
M src/kudu/client/client.cc
M src/kudu/client/client.h
A src/kudu/client/getter-internal.cc
A src/kudu/client/getter-internal.h
M src/kudu/client/row_result.h
M src/kudu/client/scan_batch.h
M src/kudu/client/scan_configuration.cc
M src/kudu/client/scanner-internal.cc
M src/kudu/client/schema.cc
M src/kudu/client/schema.h
M src/kudu/common/rowblock.h
M src/kudu/common/schema-test.cc
M src/kudu/common/schema.cc
M src/kudu/common/schema.h
M src/kudu/common/wire_protocol.cc
M src/kudu/integration-tests/CMakeLists.txt
A src/kudu/integration-tests/get_perf-itest.cc
M src/kudu/rpc/CMakeLists.txt
M src/kudu/rpc/connection.cc
M src/kudu/rpc/mt-rpc-test.cc
M src/kudu/rpc/rpc-bench.cc
M src/kudu/rpc/rpc-test-base.h
M src/kudu/rpc/service_pool.cc
M src/kudu/rpc/service_pool.h
A src/kudu/rpc/service_queue-test.cc
A src/kudu/rpc/service_queue.cc
M src/kudu/rpc/service_queue.h
M src/kudu/rpc/transfer.cc
M src/kudu/rpc/transfer.h
M src/kudu/server/rpc_server.cc
M src/kudu/tablet/cfile_set.cc
M src/kudu/tablet/cfile_set.h
M src/kudu/tablet/diskrowset.cc
M src/kudu/tablet/diskrowset.h
M src/kudu/tablet/memrowset.cc
M src/kudu/tablet/memrowset.h
M src/kudu/tablet/mock-rowsets.h
M src/kudu/tablet/rowset.cc
M src/kudu/tablet/rowset.h
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
M src/kudu/tserver/tablet_service.cc
M src/kudu/tserver/tablet_service.h
M src/kudu/tserver/tserver.proto
M src/kudu/tserver/tserver_service.proto
M src/kudu/util/net/sockaddr.cc
57 files changed, 2,743 insertions(+), 217 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/19/2519/13
-- 
To view, visit http://gerrit.cloudera.org:8080/2519
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id054a198373da04a3eca5b244516acc378e1e37c
Gerrit-PatchSet: 13
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Binglin Chang <de...@gmail.com>
Gerrit-Reviewer: Binglin Chang <de...@gmail.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>