Kudu tablet internal storage design: flushes and deltas
New rowsDeltas to previously-flushed rows
Rowset 1
Rowset 2
Rowset 3
MemRowsetDeltaMemRowset 2DeltaMemRowset 1 DeltaMemRowset 3
INSERT k=5 (val=1)
UPDATE k=5 (val=2)
INSERT k=6 (val=1)
Future Rowset 4
UPDATE k=1 (val=3)
UPDATE k=1 (val=4)
DELETE k=1
UPDATE k=2 (val=4)
UPDATE k=4 (val=2)
DELETE k=4
REINSERT k=4 (val=4)
Rowset 1 BASE
k=1 (val=1)
Rowset 1 REDO
UPDATE k=1 (val=2)
Rowset 2 BASE
k=2 (val=2)
Rowset 2 REDO
UPDATE k=2 (val=3)
Rowset 2 UNDO
UPDATE k=2 (val=1)
Rowset 3 BASE
k=3 (val=1)
k=4 (val=1)
Future Rowset 4 BASE
k=5 (val=2)
k=6 (val=1)
to be flushed...
FLUSH
TO DISK
MEMORYDISK
Future Rowset 4 UNDO
DELETE k=6
DELETE k=2
Rowset 1 UNDO
DELETE k=1
Rowset 3 UNDO
DELETE k=4
DELETE k=3
UPDATE k=5 (val=1)
DELETE k=5