Scylla review: Apache Cassandra supercharged


Imagine rewriting Cassandra from Java to C++. Cassandra is already one of the most highly available NoSQL databases, although its maximum latency under load can run on the high side, because the Java VM needs to garbage collect global memory (GC) and Cassandra needs to compact its SSTables, both at what are often inopportune times.


People try to get around the inconsistent latency problem by combining Cassandra with Memcached or Redis. So while you’re doing the rewrite, give the new database its own cache, and allow full-scan operations to bypass the cache to avoid flushing it.

Now imagine making every significant I/O operation in the new database asynchronous, to eliminate waits and spin locks. While you’re worrying about I/O, give the database its own I/O scheduler and load balancer. Finally, introduce a shard-per-core architecture and auto-tuning. Now you’ve got Scylla.