Hao Hao has uploaded a new change for review.

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

Change subject: KUDU-2134: Defer block transaction commit to the end of a 
tablet copy
......................................................................

KUDU-2134: Defer block transaction commit to the end of a tablet copy

KUDU-2131 uncovered a regression that causes a tablet copy session
expires reliably if the copied tablet is large and the tserver already
has a high number of containers. Even though the issue is mitigated by
LIFO container selection, we can completely avoid it by deferring the
block transaction commit to the end of tablet copy seesion. There are
mainly two reasons we may still want to do so:
 1) If DownloadWALs fails there's no reason to pay the fsync() price
    and commit all those blocks.
 2) While DownloadWALs is running the kernel has more time to eagerly
    flush the blocks, so the fsync()s at the end could be cheaper.

This patch moves the block transaction commit out from FetchAll() and
commits all downloaded blocks before replacing the superblock.

Change-Id: I4feabc08c2199aad8d08be56f09ac06924345f2b
---
M src/kudu/integration-tests/tablet_copy-itest.cc
M src/kudu/tools/tool_action_local_replica.cc
M src/kudu/tserver/tablet_copy_client-test.cc
M src/kudu/tserver/tablet_copy_client.cc
M src/kudu/tserver/tablet_copy_client.h
M src/kudu/tserver/ts_tablet_manager.cc
6 files changed, 58 insertions(+), 23 deletions(-)


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4feabc08c2199aad8d08be56f09ac06924345f2b
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Hao Hao <[email protected]>

Reply via email to