You are browsing a read-only backup copy of Wikitech. The live site can be found at


From Wikitech-static
< Cassandra
Revision as of 20:48, 6 October 2016 by imported>Eevans (→‎Updating the deploy repo: nits)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

TimeWindowCompactionStrategy is an alternative to DateTieredCompactionStrategy, developed by Jeff Jirsa. It ships with Cassandra 3.0.7 and later, (where DateTieredCompactionStrategy has been officially deprecated). For Cassandra versions < 3.0.7, it is possible to install time-window compaction out-of-tree.


Wikimedia maintains a Github branch of the repository, with the Maven pom.xml patched to deploy the jar to


The compaction strategy is deployed from via Scap.

Updating the deploy repo

The deploy repository makes use of git-fat to sync the jar file to a working copy from Archiva, as necessary. If you need to deploy a new version of the strategy, the basic steps are:

  1. Build, and deploy to Archiva with Maven.
    $ cat ~/.m2/settings.xml
    $ mvn deploy
  2. Update the operations/software/cassandra-twcs with the jar
    $ cp /path/to/twcs/target/TimeWindowCompactionStrategy.jar lib/cassandra-v2.2
    $ git add lib/cassandra-v2.2/TimeWindowCompactionStrategy.jar
    $ git commit -m 'Adding TimeWindowCompactionStrategy.jar via git-fat'
    Note: Make sure that the jar you add to git is the same one uploaded in #1 (checksums should be matching). See Adding an artifact to your project for additional information.
  3. Deploy to the Cassandra nodes (see
  4. Update the Cassandra classpath entries as necessary (cassandra::extra_classpath in Puppet hiera)