ScyllaDB Enterprise 2021.1.1

The ScyllaDB team announces ScyllaDB Enterprise 2021.1.1, a bug-fix production-ready patch release for ScyllaDB Enterprise 2021.1. ScyllaDB Enterprise customers are encouraged to upgrade to ScyllaDB Enterprise 2021.1.1 in coordination with the ScyllaDB support team.

ScyllaDB Enterprise 2021.1.1 includes  Change Data Capture (CDC) into an Enterprise release, CQL Timeout per Operation, and moves the EC2 AMI to be Ubuntu 20.04 based. More below.

Change Data Capture (CDC)

Change Data Capture (CDC) allows users to track data updates in their ScyllaDB database. While it is similar to the feature with the same name in Apache Cassandra and other databases, how it is implemented in ScyllaDB is unique, more accessible, and more powerful.

With ScyllaDB’s CDC, you can choose to keep track of the updates, original values and/or new values. The data is stored in regular ScyllaDB tables (SSTables) and can be queried asynchronously using a standard ScyllaDB/Cassandra CQL driver. Data in a CDC table is set with a TTL, minimizing the possibility of an overflow.

A common use case for CDC is using it as a source to a Kafka stream. This is now easy with the Kafka CDC Source Connector.

Writing your own CDC consumer? You can use the example libraries in Go and Java.

Example: creating a table with CDC for delta and preimage:

CREATE TABLE base_table (
   pk text,
   ck text,
   val1 text,
   val2 text,
   PRIMARY KEY (pk, ck)
) WITH cdc = { 'enabled': 'true', 'preimage': 'true' };

Note that the CDC API in 2021.1.1 is compatible with the latest API from ScyllaDB Open source 4.4

More information:

Timeout per Operation

There is now new syntax for setting timeouts for individual queries with “USING TIMEOUT”. #7777

This is particularly useful when one has queries that are known to take a long time. Till now, you could either increase the timeout value for the entire system (with request_timeout_in_ms), or keep it low and see many timeouts for the longer queries. 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).

Examples:

SELECT * FROM t USING TIMEOUT 200ms;

INSERT INTO t(a,b,c) VALUES (1,2,3) USING TIMESTAMP 42 AND TIMEOUT 50ms;

Working with prepared statements works as usual — the timeout parameter can be explicitly defined or provided as a marker:

SELECT * FROM t USING TIMEOUT ?;

INSERT INTO t(a,b,c) VALUES (?,?,?) USING TIMESTAMP 42 AND TIMEOUT 50ms;

Ubuntu base EC2 AMI

Starting from this release, ScyllaDB Enterprise EC2 AMI (and soon GCP images) will be based on Ubuntu 20.04.

You should now use “scyllaadm” user to login to your instance.

Example:

ssh -i your-key-pair.pem scyllaadm@ec2-public-ip

For backward compatibility, the old “centos” login will be supported for 2021.1.x releases.

Performance improvement

  • Zap dummy cache entries when populating or reading a range. See #8153

Bug fixes

List of stability improvements and bug fixes below, each with open source reference is available

  • GCE:  when running with local disks within GCE using the NVMe interface, ScyllaDB will start timing out as those disks come configured with write-cache by default #7341
  • Stability: abort streaming of data which is triggered by removenode operation if that node is already forcefully removed #8651
  • Install: scylla_raid_setup may fails when mounting a volume with: “can't find UUID” error #8279
  • Stability: unbounded memory usage when consuming a large run of partition tombstones can cause an out of memory exit #8071
  • Stability: a race condition can cause coredump in truncating a table after refresh #7732
  • Install: Unified Installer: Incorrect file security context cause scylla_setup to fail #8589
  • CQL: Mismatched types for base and view columns id: timeuuid and timeuuid, generating ”Unable to complete the operation against any hosts” error  #8666
  • Stability: Exceptions in resharding and reshaping are being incorrectly swallowed #8657
  • Stability: TWCS: in some cases, SSTables are not compacted together when time window finishes #8569

Related Links

14 Jun 2021