David Ribeiro Alves has uploaded a new change for review.

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

Change subject: KUDU-237 (part 2) - Add support for REINSERT in delta files
......................................................................

KUDU-237 (part 2) - Add support for REINSERT in delta files

This patch goes the final mile in adding support for REINSERTs in
delta files. It does various things to achieve this:

- Transforms REDO DELETE/REINSERT mutation pairs into UNDO
REINSERT/DELETE mutation pairs, leaving at the most a REDO
delete.

- Merges ghost rows on compaction: When duplicated rows are
found a new algorithm finds out which one is the most recent
and adds the other one as a 'previous_version'. This can happen
for an arbitrary number of ghost rows. Of interest here is that
this process requires a copy. Since the oldest ghost row is
discarded from the compaction input we must make sure that its
data survives until the most recent is compacted. This is done
by copying the oldest to the youngest's arena.

- Adds new test to tablet-test and changes a test in
compaction-test proving that this works.

Follow up patches will add new itests that test this functionality
more broadly.

Change-Id: Ie1173b2bea721b376f2b6049be20f57307582c47
---
M src/kudu/common/row_changelist.h
M src/kudu/tablet/compaction-test.cc
M src/kudu/tablet/compaction.cc
M src/kudu/tablet/compaction.h
M src/kudu/tablet/delta_store.cc
M src/kudu/tablet/deltafile.cc
M src/kudu/tablet/tablet-test.cc
7 files changed, 355 insertions(+), 117 deletions(-)


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie1173b2bea721b376f2b6049be20f57307582c47
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: David Ribeiro Alves <dral...@apache.org>

Reply via email to