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

Implement compaction for a specific token range

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Fix Version/s: 3.10
    • Component/s: Local/Compaction
    • Labels:

      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

          Activity

            People

            • Assignee:
              vkasar Vishy Kasar
              Reporter:
              vkasar Vishy Kasar
              Authors:
              Vishy Kasar
              Reviewers:
              Marcus Eriksson
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: