In Greek mythology Scylla didn’t start out as a monster at all. Only when she reached adulthood was she transformed (by Circe) into the most powerful beast in the sea. With Project Circe, we look to transform our now mature database into an even more powerful entity.
Scylla is already more powerful than any other NoSQL database. It’s fast, cost effective, supports two widely adopted protocols (CQL and the DynamoDB API), has indexes, views and many deployment options. It supports tens of millions of users and an impressive number of mission-critical services that we all rely on.
However, we are not satisfied.
Project Circe is a one-year effort to improve important aspects of Scylla in order to bring greater consistency, elasticity and ease of use to our database. It includes twelve distinct milestones – one per month (or, one for each of Scylla’s powerful tentacles).
Consensus in a distributed system is complicated but important. Scylla gained Lightweight Transactions (LWT) through Paxos but these transactions require three roundtrips. Raft allows us to execute consistent transactions without a performance penalty. Unlike Paxos, which we use only for LWT, we plan to integrate Raft with most aspects of Scylla, making a leap forward in manageability and consistency.
Raft will become the default option for data manipulation. We will preserve regular operations as well as the Paxos protocol. As of December 2020, the core Raft protocol is implemented in Scylla.
Scylla supports smooth maintenance operations with its built-in IO and CPU schedulers and automatic tuning. But we can do more.
Scylla was modeled after Cassandra, which was designed before the cloud-native era. When cluster manipulation is complex or problematic, database admins refrain from changing the cluster size often. Yet with more workloads running as-a-service (-aaS), and when spiky Internet-scale traffic can hit your site at any time, a modern distributed database needs to be as elastic as possible.
Performance, especially price/performance, is one of the fundamental reasons we created and continue to build Scylla. This year our performance optimizations will emphasize several key improvements:
Many Project Circe improvements can be considered stability improvements. For example, making schema changes transactional eliminates a whole family of schema disagreement issues. Same for the elimination of seed nodes. There are, however, many directly related stability improvements.
Our goal is to make Scylla easily available and deployable wherever and however our users wish.
There are many more features and improvements we’re excited about. Change Data Capture (CDC) is going GA together with supportive libraries. We’re going to improve observability. We will implement additional protocols, traceability and much more. Look for announcements at our Scylla Summit and updates to this project page.
Get started on the path to Scylla expertise.
Spin up a 3-node Scylla cluster to see our light-speed performance
Interactive sessions with our NoSQL solution architects.