Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-6441

Explore merging memtables directly with L1

    XMLWordPrintableJSON

Details

    Description

      Currently, memtables flush to L0 and are then compacted with L1, so you automatically have 100% write amplification for unique cells right off the bat.

      http://dl.acm.org/citation.cfm?id=2213862 suggests splitting the memtable into pieces corresponding to the ranges of the sstables in L1 and turning the flush + compact into a single write – that is, we'd "compact" the data in the L1 sstable with the corresponding data in the memtable.

      This would add some complexity around blocking memtable sections until the corresponding L1 piece is no longer involved in its own compaction with L2, and probably a "panic dump" to the old L0 behavior if we run low on memory. But in theory it sounds like a promising optimization.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jbellis Jonathan Ellis
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated: