Reputation: 379
I have running 21 node Cassandra cluster with 150+ schema and about 20 TB data.I need to shift the schema and data from Cassandra to 7 node Scylla in no downtime scenario.
Both Scylla and Cassandra support the same cqlsh version and almost same in distributing the data and gossiping.
To shift the data I am trying to create new Scylla datacenter in existing Cassandra cluster and update the Keyspace topology to have Scylla also in the DC list of replication then Bootstrap/Rebuild the Scylla node in the cluster.
To do this I am getting error of TCP connection failure when adding seed list in node.
Scylla Error:-
scylla: [shard 0] rpc - client 10.200.1.2:34236: server connection dropped: connection is closed scylla: [shard 0] rpc - client 10.200.1.2:7000: fail to connect: Connection refused.
Cassandra Error:-
[MessagingService-Outgoing-/10.200.2.2-Gossip] OutboundTcpConnection.java:411 - Socket to /10.200.2.2 closed [HANDSHAKE-/10.200.2.2] OutboundTcpConnection.java:570 - Cannot handshake version with /10.200.2.2 [HANDSHAKE-/10.200.2.2] OutboundTcpConnection.java:561 - Handshaking version with /10.200.2.2
Please help me if anyone has done this already or any better idea of shifting data without downtime, without data loss in less risk.
Upvotes: 5
Views: 890
Reputation: 750
While Scylla is compatible with Cassandra across several axes (SSTables, CQL/Drivers, etc.), Scylla did need to make some changes to the gossip protocol which make it impossible to join a Cassandra cluster. There is no known way to join Scylla to a Cassandra cluster.
Scylla has published several suggested techniques for migration.
Blog describing the techniques: https://www.scylladb.com/2019/04/02/spark-file-transfer-and-more-strategies-for-migrating-data-to-and-from-a-cassandra-or-scylla-cluster/
Webinar walking through the migration techniques [requires registration]: https://go.scylladb.com/wbn-spark-scylla-migration-strategies-registration.html
Documentation: https://docs.scylladb.com/operating-scylla/procedures/cassandra_to_scylla_migration_process/
Community Slack for Q&A: http://slack.scylladb.com
Upvotes: 10
Reputation: 540
You can not have an heterogeneous cluster with C* and Scylla nodes on the same cluster.
Create a separate scylla cluster, create the schema, change the app to do double writes (to both clusters) and then migrate the C* historical data to Scylla.
There are multiple ways to migrate the data. This should help: https://youtu.be/CDOesdWDT9Y No downtime, no problem there are options for that too.
Upvotes: 11