Last week in scylladb.git master (issue #219; 2024-02-25)

This short report brings to light some interesting commits to scylladb.git master from the last week. Commits in the e132ffdb60…57c408ab5d range are covered.

There were 104 non-merge commits from 14 authors in that period. Some notable commits:


Change Data Capture (CDC) has the concept of “generations” that describe changes to cluster topology. Each time topology changes, a new generation is creates with a new set of CDC streams for the application to listen to. We now allow writes to be written to the previous generation’s streams, to accomodate clients with unsynchronized clocks, or with lightweight transactions (LWT) which can have the same effect as unsynchronized clocks. This also works with consistent topology.

The native nodetool command now supports the following subcommands:

The range_to_endpoint_map API, that describes the ring topology for a keyspace, now supports tablets. Note it needs an additional table parameter for that.

The repair history table records the last time token ranges were repaired on a particular node; this in turn helps tombstone garbage collection determine whether tombstones can be purged or not. The table is now updated in tablet mode as well.

The repair history table now loads faster.

A hang when a decommissioned node is restarted was fixed; the operation now correctly fails.

The maintenance port is a unix-domain socket that can accept CQL statements even when the node is degraded. It now accepts connections from users in the server’s group as a simple authentication mechanism.

We now recover from tablet migration failures. In general, failures are retried, unless the node is being removed.

Materialized view memory accounting is now more accurate. This reduces the risk of running out of memory in materialized view intensive workloads.

Bundled tools now use the Seastar epoll reactor backend rather than linux-aio; this reduces the risk of startup failures.

The SELECT * FROM mutation_fragments() statement allows inspecting the underlying data storage in tables. It now supports tablets.

Cluster topology can be locked to avoid queries and operations from having the topology change under their feet; there is now a detector to see if locks are held for too long.

The removenode --force operation has been deprecated for gossip mode and disabled for consistent topology mode as unsafe.

The cluster_status virtual table now works in consistent topology mode.


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