Migration path from Datastax 6.0 to Cassandra 3

Viewed 220

I'm trying to find a migration path from Datastax Enterprise (DSE) 6.0.14 to Cassandra Community OSS 3. So far I'm not able to find a working migration path.

All keyspaces replications have been updated to NetworkTopologyStrategy or using LocalStrategy/SimpleStrategy.

When trying to add a Cassandra 3.11.10, schema agreement cannot be reached since gossip protocol seems not compatible and it crashes.

When trying to add a Cassandra 3.11.3, it's not crashing but schema does not seem to be compatible neither.

I'm running a 5 nodes DSE cluster and trying to replace it with 5 nodes Cassandra.

Cluster name is the same for all nodes while the new Cassandra node is using another DC name.

1 Answers

It is possible, the procedure we have found that works:

  1. Extract the schema of the current node / cluster
  2. Extract the data of table system_schema.tables
  3. Drain the node
  4. sstable downgrade your keyspaces (does not work work for system* keyspaces)
  5. Initialize the node as an empty (new) Cassandra OSS node
  6. Allow it to create it's sys tem keyspaces and roles
  7. Import schema from DSE (step 1)
  8. Overwrite table id's in system_schema.tables to match in the id of DSE
  9. Stop cassandra, move the downgraded sstables back into the relevant data directory and restart Cassandra to load the data
  10. The node should be part of the cluster and you can continue your other nodes in the same manner. But use the already migrated OSS node to get the schema.

From application side, we force the OSS node after migration the 1st node. This allows the application to see the OSS and DSE nodes and write to all nodes in the cluster.

After all nodes are migrated, run a full repair on the cluster.

Related