The ScyllaDB team is pleased to announce the availability of ScyllaDB Open Source 3.3.0, a production-ready release of our open source NoSQL database. ScyllaDB 3.3 is focused on bug fixes and stability.
ScyllaDB 3.3 includes major new or modified experimental features, including Lightweight Transactions (LWT), Change Data Capture (CDC), our Amazon DynamoDB Compatible API (Alternator) and Lua language based User Defined Functions (UDFs). These features are experimental and you are welcome to try them out and share feedback. Once stabilized they will be promoted to General Availability (GA) in a followup ScyllaDB release (see more below).
ScyllaDB is an open source, Apache-Cassandra-compatible NoSQL database with superior performance and consistently low latencies. Find the ScyllaDB Open Source 3.3 repository for your Linux distribution here.
Please note that only the last two minor releases of ScyllaDB Open Source project are supported. Starting today, only ScyllaDB Open Source 3.3 and 3.2 will be supported; ScyllaDB Open Source 3.1 will no longer be supported.
New features in ScyllaDB 3.3
- Snapshot enhancement: a table schema, schema.cql, is now part of each ScyllaDB snapshot created with “nodetool snapshot”. Schema is required as part of the ScyllaDB backup restore procedure. #4192
- Connection virtual table #4820
The new table system.clients table provides information about CQL clients currently connected to ScyllaDB.
Client Information includes: address, port, type, shard, protocol_version and username
- Stability: Large collections are now more resistant to memory fragmentation
- Stability: scylla-kernel-conf package which tunes the kernel for ScyllaDB’s needs. It now tunes vm.swappiness, to reduce the probability of the kernel swapping out ScyllaDB memory and introducing stalls.
- Export system uptime via REST endpoint /system/uptime_ms
Full list of bug fixes is available in the Git log, and in RC1, RC2 and RC3 notes.
Metrics changes ScyllaDB 3.2 to ScyllaDB 3.3
Full list of metrics is available here
For ScyllaDB 3.3 Dashboard, make sure to use ScyllaDB Monitoring Stack release 3.2
Experimental features in ScyllaDB 3.3
User Defined Functions (UDFs) #2204
ScyllaDB now has basic support for Lua based UDFs. ScyllaDB UDFs serve a function similar to Apache Cassandra’s UDFs, to provide server-side calculated functions, but are implemented with Lua
CREATE FUNCTION twice(val int) RETURNS NULL ON NULL INPUT RETURNS int LANGUAGE Lua AS 'return 2 * val'; SELECT twice(key) from tbl;
Please note that UDFs are under development, and are still missing integration with RBAC, ScyllaDB Tracing and ScyllaDB monitoring, and more performance improvements. More on UDAFs and UDAs here.
The following experimental features were already available in ScyllaDB 3.2, and we continue to improve and stabilize them toward production in one of the following ScyllaDB releases:
Lightweight Transactions (LWT) (Experimental) #1359
Lightweight transactions (LWT), also known as Compare and Set (CAS), add support for conditional INSERT and UPDATE CQL commands. ScyllaDB supports both equality and non-equality conditions for lightweight transactions (i.e., you can use <, <=, >, >=, != and IN operators in an IF clause).
Updates from ScyllaDB 3.2:
- LWT performance optimization: lightweight transactions query phase was optimized to reduce the number of round trips.
- LWT safety: allow commitlog to wait for specific entries to be flushed to disk
You can learn more on LWT in ScyllaDB and LWT optimizations from the latest LWT Webinar (registration required)
Change Data Capture (CDC) (Experimental) #4985
Change Data Capture is a feature that enables users to monitor data in a selected table and asynchronously consume the change events. You can enable CDC per table.
Updates from ScyllaDB 3.2:
- Better support for schema changes
- Support for rolling upgrade
Note that CDC has an impact on performance, as each update to a CDC enabled table is written to two tables (the original table and the CDC table). Enabling the preimage option affects performance further, as it includes read-before-update. CDC is still under continuous development, and the API and syntax are likely to change.
To learn more about the CDC capabilities register for our upcoming webinar on March 26th, 2020.
ScyllaDB Alternator: The Open Source DynamoDB-compatible API (Experimental)
Project Alternator is an open-source implementation for an Amazon DynamoDB™-compatible API. The goal of this project is to deliver an open source alternative to Amazon’s DynamoDB, deployable wherever a user would want: on-premises, on other public clouds like Microsoft Azure or Google Cloud Platform, or still on AWS (for users who wish to take advantage of other aspects of Amazon’s market-leading cloud ecosystem, such as the high-density i3en instances). DynamoDB users can keep their client code unchanged. Alternator is written in C++ and is included in ScyllaDB 3.3.
Updates from ScyllaDB 3.2:
- Correct support for all operators for the “Expected” parameter (previously some were unimplemented, some cases had bugs). #5034
- The DescribeTable operation now returns the table’s schema.
- Produce clear errors on unimplemented features (previously, some of them were silently ignored).
For the latest Alternator status: https://github.com/scylladb/scylla/blob/master/docs/alternator/alternator.md
Want to learn more about what you can do with ScyllaDB? Tune in to discover the capabilities of Change Data Capture (CDC) in ScyllaDB in our upcoming webinar on March 26th, 2020: