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

Implement compaction for a specific token range

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 3.10
    • Local/Compaction

    Description

      We see repeated cases in production (using LCS) where small number of users generate a large number repeated updates or tombstones. Reading data of such users brings in large amounts of data in to java process. Apart from the read itself being slow for the user, the excessive GC affects other users as well.

      Our solution so far is to move from LCS to SCS and back. This takes long and is an over kill if the number of outliers is small. For such cases, we can implement the point compaction of a token range. We make the nodetool compact take a starting and ending token range and compact all the SSTables that fall with in that range. We can refuse to compact if the number of sstables is beyond a max_limit.

      Example:
      nodetool -st 3948291562518219268 -et 3948291562518219269 compact keyspace table

      Attachments

        1. 10643-trunk-REV01.txt
          14 kB
          Vishy Kasar
        2. 10643-trunk-REV02.txt
          18 kB
          Vishy Kasar
        3. 10643-trunk-REV03.txt
          22 kB
          Vishy Kasar

        Issue Links

          Activity

            People

              vkasar Vishy Kasar
              vkasar Vishy Kasar
              Vishy Kasar
              Marcus Eriksson
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: