Last week in scylladb.git master (issue #221; 2024-03-10)

This short report brings to light some interesting commits to scylladb.git master from the last week. Commits in the 94cd235888…af90910687 range are covered.

There were 197 non-merge commits from 26 authors in that period. Some notable commits:

Authentication and authorization use system tables in the system_auth keyspace. It now uses a new keyspace, system_auth_v2, which is replicated to all nodes using Raft. This prevents problems due to missing repair, and increases performance, as now the data can always be read locally. Existing clusters will automatically migrate auth data to the new keyspace after an upgrade.

Tables that use tablets now maintain their sstables in a specialized data structure that efficiently selects the sstables based on the tablets being accessed, reducing read amplification.

Load-and-stream is a mechanism where the database operator can load sstables into any node, and the node then streams the data into nodes which are replicas for that data. This is now supported with tablets.

Reading tablet metadata (the system.tablets table) is now careful to avoid stalls.

Reshape compaction changes sstables to conform to compaction strategy goals. Reshape compaction now works within tablet boundaries, so it doesn’t violate tablet constraints.

More failures are now handled when migrating tablets between nodes.

The bundled Python driver was updated to version 3.26.7, in order to fix test stability problems.

A recent regression in calculating whether we reached the in-flight hint limit was fixed.

There is now more automation for backporting fixes to release branches.

The documentation for various scaling procedures was updated to reflect changes for raft-based consistent topology.

A deadlock in repair has been fixed.

A use-after-free error that manifested during repair with very large partition keys is now fixed.

The bundled cqlsh has been updated, with a fix for a COPY TO STDOUT regression.

A rare failure when a materialized view update happened to be empty was fixed.

The native nodetool command now supports the info subcommand.

The native nodetool command now handles ring --resolve-ip correctly.

The perf-simple-query benchmark has been enhanced with features around tablets, compaction, and sstable count.

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