Last week in scylladb.git master (issue #187; 2023-07-09)

This short report brings to light some interesting commits to scylladb.git master from the last week. Commits in the 1ab2bb69b8…c41f0ebd2a range are covered.

There were 102 non-merge commits from 13 authors in that period. Some notable commits:

In gossip-managed clusters, the schema is propagated by nodes contacting each other ad-hoc. In Raft-managed clusters, the schema is centrally managed by the group 0 leader. We now disable the ad-hoc schema pull method when Raft cluster management is enabled.

Raft cluster management still uses gossip to translate host IDs to IP addresses. It is now more careful not to let old IP address mappings overwrite new mappings.

Raft-managed clusters run Data Definition Language (DDL) statements in a transaction. The transaction scope has been extended to also include access checking and validation, and not just the actual schema change.

The experimental flag used to enable consistent topology changes has been renamed from “raft” to "consistent-topology-changes|.

The failure detector detects failed nodes by pinging them. Now it does not attempt to ping itself.

When topology changes, CDC streams also change. The metadata describing these streams is now committed in parts, to avoid overloading the system.

In Alternator, ScyllaDB’s implementation of the DynamoDB API, a bug was fixed that could cause error handling while streaming responses to the client to crash the server.

In Alternator, it’s now possible to disable the DescribeEndpoints API. This makes it possible to run the dynamodb shell against ScyllaDB.

When a base table of a materialized view is updated, the affected rows are also changed in the materialized view. For DELETE statements, many rows can be affected, and so the view update code splits the work into batches. However, this split was not performed correctly when range tombstones were involved. This is now fixed.

In older versions of ScyllaDB, different clauses of CQL statements were processed using different code bases. ScyllaDB is gradually moving towards a single code base for processing expressions. It is now the SELECT clause’s turn, moving us closer to the goal of a unified expression syntax. As this is an internal refactoring, there are no user visible changes, apart from some names of fields in SELECT JSON statements changing (specifically, if those fields are function evaluations).

See you in the next issue of last week in scylladb.git master!