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

TWCS erroneously disabling tombstone compactions when unchecked_tombstone_compaction=true

    XMLWordPrintableJSON

Details

    Description

      This code:

      this.options = new TimeWindowCompactionStrategyOptions(options);
      if (!options.containsKey(AbstractCompactionStrategy.TOMBSTONE_COMPACTION_INTERVAL_OPTION) && !options.containsKey(AbstractCompactionStrategy.TOMBSTONE_THRESHOLD_OPTION))
      {
      disableTombstoneCompactions = true;
      logger.debug("Disabling tombstone compactions for TWCS");
      }
      else
      logger.debug("Enabling tombstone compactions for TWCS");
      }
      

      ... in TimeWindowCompactionStrategy.java disables tombstone compactions in TWCS if you have not explicitly set either tombstone_compaction_interval or tombstone_threshold.  Adding 'tombstone_compaction_interval': '86400' to the compaction stanza in a table definition has the (to me unexpected) side effect of enabling tombstone compactions. 

      This is surprising and does not appear to be mentioned in the docs.

      I would suggest that tombstone compactions should be run unless these options are both set to 0.

      If the concern is that (as with DTCS in CASSANDRA-9234) we don't want to waste time on tombstone compactions when we expect the tables to eventually be expired away, perhaps we should also check unchecked_tombstone_compaction and still enable tombstone compactions if that's set to true.

      May also make sense to set defaults for interval & threshold to 0 & disable if they're nonzero so that setting non-default values, rather than setting ANY value, is what determines whether tombstone compactions are enabled?

      Attachments

        Activity

          People

            alex.ivakov Alexander Ivakov
            tarrall Robert Tarrall
            Alexander Ivakov, Brandon Williams
            Marcus Eriksson
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: