Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status

Current state[One of "Under Discussion", "Accepted", "Rejected"]Released

Discussion thread: 

JIRA or Github Issue: 

Released: <Doris Version>1.2.0

Google Doc:  DSIP-018: Support Merge-On-Write implementation for UNIQUE KEY data model

...

As shown in the figure below, compaction selects three rowsets [0-5], [6-6], [7-7]. During the compactio, the load job of version8 is finished successfully. In the compaction commit stage, it is necessary to process the bitmap generated by version8 load job.

Scheduling

  1. Index

    1. Add an index for primary key (leverage the

...

    1. `IndexedColumnWriter/Reader`)

    2. Add Bloom filter support

    3. Add a lookup interface, to integrate bloom filter and primary key index
    4. Delete Bitmap
  1. Delete Bitmap
    1. Add a versioned delete bitmap, as well as it's serialization code
    2. Add LRU cache
    3. Used in read process
    4. Update bitmap at the publish stage of a load job
  2. Lookup interface
    1. Add a Interval-Tree structure
    2. Add tablet lookup interface, as well as a structure `RowLocation`

...

    1. Add min/max key for segment 
    2. Add a structure for rowset tree
    3. Lookup interface implementation, leverage the rowset-tree and segment readers
    4. Optimizations on lookup interface
  1. Compaction
    1. Support rowid conversion
    2. Compaction update bitmap
    3. Some compaction policy optimization
    4. Process range deletion
  2. Other Supports
    1. Add the table option at BE side first
    2. UniqueKey index options on create table
    3. Process cases that duplicate key may be contained in multiple segment in one load job
  3. Performance optimization
    1. Add cuckoo filter support