You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@kudu.apache.org by "Hao Hao (Code Review)" <ge...@cloudera.org> on 2020/12/08 01:00:05 UTC

[kudu-CR] tablet: allow interleaving of row liveness between compaction input rows

Hao Hao has posted comments on this change. ( http://gerrit.cloudera.org:8080/16752 )

Change subject: tablet: allow interleaving of row liveness between compaction input rows
......................................................................


Patch Set 2:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/16752/2/src/kudu/tablet/compaction.cc
File src/kudu/tablet/compaction.cc:

http://gerrit.cloudera.org:8080/#/c/16752/2/src/kudu/tablet/compaction.cc@318
PS2, Line 318: //   UNDO(del@5) <- BASE(a) -> REDO(del@10) -> REDO(reins@25)  // main MRS
             : //   UNDO(del@15) <- BASE(a) -> REDO(del@20)                   // txn MRS
Wondering what will happen if 
     UNDO(del@5) <- BASE(a) -> REDO(del@10) -> REDO(reins@25)  ->REDO(del@35) // main MRS
     UNDO(del@15) <- BASE(a) -> REDO(del@20) -> REDO(reins@40)   ->REDO(del@45)            // txn MRS
it will be transferred to the following?
    UNDO(del@15) <- BASE(a) -> REDO(del@20) -> REDO(reins@25)  ->REDO(del@35)-> REDO(reins@40)   ->REDO(del@45)            // txn MRS
   UNDO(del@5) <- BASE(a) -> REDO(del@10)  // main MRS


http://gerrit.cloudera.org:8080/#/c/16752/2/src/kudu/tablet/compaction.cc@390
PS2, Line 390: For instance this is a valid history with non-disjoint REDO histories
Just for my own understanding, wondering when this happen if all the ops are not in the same txn?


http://gerrit.cloudera.org:8080/#/c/16752/2/src/kudu/tablet/compaction.cc@453
PS2, Line 453: TransferRedoHistory
It seems for all REDOs in the 'older' that are greater than the REDO head of 'newer' will be transferred to the end of the 'newer' REDO. What if there is a overlapped between the transferred REDOs and the 'newer' REDO? e.g.
     UNDO(del@5) <- BASE(a) -> REDO(del@10) -> REDO(reins@25)  ->REDO(del@35) // main MRS
     UNDO(del@15) <- BASE(a) -> REDO(del@20) -> REDO(reins@40)   ->REDO(del@45)            // txn MRS
will be transferred to the following?
    UNDO(del@15) <- BASE(a) -> REDO(del@20) -> REDO(reins@40)  ->REDO(del@45) -> REDO(reins@25)  ->REDO(del@35)     // txn MRS

Do you think it is a valid example?Will it matter if the 'newer' REDO is out of sequence?



-- 
To view, visit http://gerrit.cloudera.org:8080/16752
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I042a7d70d32edf9d2a3a077790821893f162880a
Gerrit-Change-Number: 16752
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Tue, 08 Dec 2020 01:00:05 +0000
Gerrit-HasComments: Yes