Scylla review: Apache Cassandra supercharged

A rewrite of Cassandra in C++, Scylla runs much faster and cheaper than the Java-based original

Scylla review: Apache Cassandra supercharged
Toa55 / Getty Images
At a Glance

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.

editors choice award logo plum InfoWorld

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.

Scylla has additional capabilities beyond Cassandra: materialized views, global and local secondary indexes, workload prioritization, and a DynamoDB-compatible API. The DynamoDB API is in addition to CQL (Cassandra Query Language) and a Cassandra-compatible API.

To continue reading this article register now