Scylla Open Source has a rich set of new production-ready features, including Lightweight Transactions (LWT), DynamoDB API compatibility, Change Data Capture, offline installers and more. Already the best high-performance NoSQL database for big data workloads, Scylla builds upon the best attributes of Apache Cassandra and Amazon DynamoDB by improving performance, scalability, and cost-efficiency.
There is now new syntax for setting timeouts for individual queries with “USING TIMEOUT”. The new Timeout per Operation allows you to define the timeout in a more granular way. Conversely, some queries might have tight latency requirements, in which case it makes sense to set their timeout to a small value. Such queries would get time out faster, which means that they won’t needlessly hold the server’s resources. You can use the new TIMEOUT parameters for both queries (SELECT) and updates (INSERT, UPDATE, DELETE).
The Seastar I/O scheduler is used to maximize the requests throughput from all shards to the storage. Till now, the scheduler was running in a per shard scope: each shard runs its own scheduler, balanced between its I/O tasks, like reads, updates and compactions. This works well when the workload between shards is approximately balanced; but when, as often happened, one shard was more loaded, it could not take more I/O, even if other shards were not using their share. I/O scheduler 2.0 included in Scylla 4.4 fixes this. As storage bandwidth and IOPS are shared, each shard can use the whole disk if required.
This feature allows you to track changes made to a base table in your database for visibility or auditing. Changes made to the base table are stored in a separate table that can be queried by standard CQL. Our CDC implementation uses a configurable Time To Live (TTL) to ensure it does not occupy an inordinate amount of your disk.
Prior to Scylla Open Source 4.2, lookups in the promoted index were done by scanning the index linearly, so that the lookup took O(n) time. This is inefficient for large partitions, consuming a great deal of CPU and I/O. Now the reader scans the SSTable promoted index with a binary search, reducing search time to O(log n). In our testing, searches were conducted 12x faster, CPU utilization was only 1/10th (10%), and disk I/O was reduced to 1/20th (5%) the prior rate.
Our Amazon DynamoDB API implementation, known as Project Alternator, enables you to connect applications/services built for the DynamoDB API to Scylla without changing your client code. This gives your team multi-cloud, multi-vendor flexibility to improve system resilience and include a disaster recovery plan in your playbook.
Scylla LWTs allow stronger consistency guarantees using the Paxos consensus algorithm. They ensure requests on a distributed database are processed in a strict, linearized (serial) method, in a process known as ‘Compare and Set.’. They are also called ‘Conditional Updates,’ because they can test the databases’ existing values before submitting the update. This provides atomic consistency for single keys, allowing updates to be performed in order on a global basis. They can also be used for batches, to ensure all conditions are met before submitting a batch update.
User Defined Functions (UDF) in Lua adds the ability for teams to build server-side scripts that can run complex transforms such as aggregations, sums, averages, minimums, and maximums. This allows developers to simplify their database queries and the use of multiple large queries with large payloads.
How to use lightweight transactions in Scylla; learn the similarities and differences between Scylla’s Paxos implementation and Cassandra’s.
CDC enables the user to track updates to tables in real time. Learn how they work under the hood, and why they are a vast improvement over Cassandra.
Get started on the path to Scylla expertise
It’s easy to get started with our NoSQL DBaaS