Hello Kudu Jenkins,

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


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

Change subject: KUDU-456 Implement AUTO_FLUSH_BACKGROUND flush mode

KUDU-456 Implement AUTO_FLUSH_BACKGROUND flush mode

Implemented AUTO_FLUSH_BACKGROUND for the Kudu C++ client library.
KuduSession objects use RPC messenger's thread pool to schedule
background flush tasks.  In AUTO_FLUSH_BACKGROUND mode,
the KuduSession::Apply() method blocks if total amount of data
for operations not pushed to server reaches the buffer size limit.
The limit on the buffer size can be set by the
KuduSession::SetMutationBufferSpace() method or via the
--client_buffer_bytes_limit command-line flag.

The background flusher checks whether at least one of the following two
conditions is satisfied to determine whether it's time to flush
the accumulated write operations:
  * over-the-waterline criterion: check whether the total size of the
    freshly submitted (i.e. not-scheduled-for-flush) write operations
    is over the threshold.  The threshold can be set as a percentage
    of the total buffer size using the
    --client_buffer_flush_waterline_pct command-line flag.
  * maximum wait time criterion: check whether the previous flush
    happened more than the maximum wait time ago.  The maximum wait time
    can be specified in milliseconds using the
    --client_buffer_flush_timeout_ms command-line flag.

This change also addresses the following JIRA issue:
  KUDU-1376 KuduSession::SetMutationBufferSpace is not defined

Change-Id: I34905c30b3aad96f53cf7a1822b1cde6d25f33a8
M python/kudu/tests/test_client.py
M src/kudu/client/batcher.cc
M src/kudu/client/batcher.h
M src/kudu/client/client-internal.h
M src/kudu/client/client-test.cc
M src/kudu/client/client.cc
M src/kudu/client/client.h
M src/kudu/client/session-internal.cc
M src/kudu/client/session-internal.h
M src/kudu/client/write_op.cc
M src/kudu/client/write_op.h
M src/kudu/util/monotime.cc
M src/kudu/util/monotime.h
13 files changed, 1,221 insertions(+), 155 deletions(-)

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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I34905c30b3aad96f53cf7a1822b1cde6d25f33a8
Gerrit-PatchSet: 7
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins

Reply via email to