Cassandra/TimeWindowCompactionStrategy
See task T343707
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.
Source
Wikimedia maintains a
Github branch
of the repository, with the Maven
pom.xml
patched to deploy the jar to
archiva.wikimedia.org
.
Deployment
The compaction strategy is deployed from https://gerrit.wikimedia.org/r/#/admin/projects/operations/software/cassandra-twcs 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:
-
Build, and deploy to
Archiva
with Maven.
$ cat ~/.m2/settings.xml <settings> <servers> <server> <id>wikimedia.releases</id> <username>archiva-deploy</username> <password>PASSWORD_GOES_HERE</password> </server> <server> <id>wikimedia.snapshots</id> <username>archiva-deploy</username> <password>PASSWORD_GOES_HERE</password> </server> </servers> </settings> $ mvn deploy ...
-
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.
- Deploy to the Cassandra nodes (see https://doc.wikimedia.org/mw-tools-scap/ )
-
Update the Cassandra classpath entries as necessary (
cassandra::extra_classpathin Puppet hiera)