I wad looking into Scylla yesterday so this is really cool timing! Does anyone have any experience with just switching out (Apache) Cassandra with Scylla?
I've managed medium sized Cassandra clusters (~18 nodes) for a couple years (since v1.2). At a new job, last year, I replaced the Cassandra cluster with Scylla. Performance was great, as it says on the in, but as an operator:
- No GC Tuning. It just works out of the box and I don't sleep over requests being dropped because of a multi-second GC.
- Compactions are fast. Compactions in Cassandra generate a lot of garbage (which cause a lot of GC), and end up taking a long time. This becomes worrisome as your largest, most compacted tables tend to be the ones you write a lot too - so performance degrades over time (until you have to shard again).
Cassandra is still very good software though and still a solid choice - it was far more stable than Mongo (pre-WiredTiger, I haven't used mongo past ~2.2), and while the above issues were annoying, they were entirely predictable. Capacity planning was easy, and with Scylla you may find yourself running fewer nodes (maybe DSE prefers Java because they charge per core, jk).
The only thing I've missed in Scylla so far is LWTs, but I have not used that much.
When you did the switch did you just swap out the software on each node, or did you provision new nodes with Scylla, adding them to the cluster, and removing old nodes with Cassandra?
I don't believe you can have a mixed Scylla/Cassandra cluster. In our case we cloned our drives and started a whole new cluster with Scylla. When we were happy with Scylla and done the appropriate testing, we shutdown the Cassandra cluster.
Yes. It's much faster, requires very little maintenance and no tuning. Run repairs every and that's it. It was missing some Cassandra features but looks like 3.0 finally is at parity, according to this press release, so we look forward to upgrading.
I can't directly answer your migration question, but, regarding comparison, our team was looking heavily into Cassandra when someone proposed Scylla. We immediately dove into it and was impressed that their claim of being a drop in for Cassandra, as far as our uses go, is totally true.
We're using it now as we approach Alpha, and love it. Extra bonus - no Zookeeper!
- No GC Tuning. It just works out of the box and I don't sleep over requests being dropped because of a multi-second GC.
- Compactions are fast. Compactions in Cassandra generate a lot of garbage (which cause a lot of GC), and end up taking a long time. This becomes worrisome as your largest, most compacted tables tend to be the ones you write a lot too - so performance degrades over time (until you have to shard again).
Cassandra is still very good software though and still a solid choice - it was far more stable than Mongo (pre-WiredTiger, I haven't used mongo past ~2.2), and while the above issues were annoying, they were entirely predictable. Capacity planning was easy, and with Scylla you may find yourself running fewer nodes (maybe DSE prefers Java because they charge per core, jk).
The only thing I've missed in Scylla so far is LWTs, but I have not used that much.