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

upgradesstables does not maintain levels for existing SSTables

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Fix Version/s: 2.0.7
    • Component/s: None
    • Labels:
    • Severity:
      Normal

      Description

      Initially ran into this issue on a DSE 3.2 (C* 1.2) to DSE 4.0 (C* 2.0) upgrade, and then I was able to reproduce it when testing an upgrade from C* 2.0.5 to C* 2.1-beta so the problem still exists in the latest code.

      Basically after you've upgraded to the new version and run "nodetool upgradesstables" on a CF/table that has been using LCS, then all of the non-L0 SSTables will be changed to L0 in the upgraded SSTables. In other words, they don't maintain their level and will have to go through the compaction again. The problem is that if you've got thousands of non-L0 SSTables before the upgrade, then all of these files showing up in L0 will push the system to do STCS and start to build some huge L0 tables. If a user doesn't budget enough free space (for example, if they used the recommended guideline and only budgeted 10% of free space because LCS is in use), then this STCS in L0 effect will have them run out of space.

        Attachments

        1. 0001-Use-6958-v2.patch
          5 kB
          Marcus Eriksson
        2. 0001-Use-LeveledCompactionTask-for-upgradesstables-when-L.patch
          5 kB
          Marcus Eriksson

          Activity

            People

            • Assignee:
              marcuse Marcus Eriksson
              Reporter:
              weideng Wei Deng
              Authors:
              Marcus Eriksson
              Reviewers:
              Yuki Morishita
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: