Skip to content

Migrating Cassandra data to Scylla

Tzach Livyatan edited this page Oct 2, 2018 · 18 revisions

For more on migration from Apach Cassandra to Scylla see https://docs.scylladb.com/operating-scylla/procedures/cassandra_to_scylla_migration_process/

Requirements/Details for migration

  • Scylla supports SSTable version ka (should be the version used in C* versions 2.1.8 and 2.1.9). If your database uses an older version of sstable, consider doing an upgrade (TBD: Is downgrade possible?).

  • Counter cell is currently not supported by Scylla, so make sure that a column family being migrated doesn't use counter cell. Scylla will not refuse to boot when loading a column family with counter cell, but reading and writing operations on it will fail (read may even crash Scylla because of an assert triggered in the SSTable parser).

  • Data-Tiered compaction strategy is currently not supported, so Scylla will fallback to Size-Tiered strategy. Scylla currently supports Size-tiered and Leveled compaction strategies. This should no longer be an issue after Scylla supports all compaction strategies.

Recommendations for migration

  • Run Cassandra before migration because there may be a need for commitlog replay, then run 'nodetool flush'. After that, your data is ready for migration.

  • Make sure Cassandra is not running during migration because partially written SSTable(s) may be copied.

Steps for migration

  • Copy the content of Cassandra data directory to /var/lib/scylla/data, the default data directory for Scylla.

  • Content of Cassandra commitlog directory can be ignored (after following the first recommendation in the section above).

  • Copy the content of Cassandra config file (cassandra.yaml) to /var/lib/scylla/conf/scylla.yaml.

Clone this wiki locally