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

Leveled compaction allows multiple simultaneous compaction Tasks

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 1.0.0
    • None
    • Normal

    Description

      CASSANDRA-1608 attempts to restrict itself to one compaction task per CF (see discussion there for why this is necessary) by synchronizing LCS.getBackgroundTasks but this is not sufficient. Consider this sequence of events:

      1. getBackgroundTasks returns a Task for compacting some L0 sstables. this Task is scheduled.
      2. Another SSTable for this CF is flushed, so CompactionManager.submitBackground is called. getBT is not currently in-progress so the synchronization does not stop another Task from being returned and scheduled.

      Attachments

        1. 3087.txt
          6 kB
          Jonathan Ellis
        2. 3087-v2.txt
          7 kB
          Benjamin Coverston

        Activity

          People

            jbellis Jonathan Ellis
            jbellis Jonathan Ellis
            Jonathan Ellis
            Benjamin Coverston
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: