Last week in scylladb.git master (issue #158; 2022-12-11)

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

There were 92 non-merge commits from 16 authors in that period. Some notable commits:

Secondary indexes on static columns are now supported.

Usually repair can compare and update the same shard in different nodes, for example shard 3 in one node is compared against shard 3 in another. When the number of shards in nodes is dissimilar, this doesn’t work and each shard compares against data from multiple shards in other nodes. This is now made more efficient by reducing sstable reader thrashing for this dissimilar shard count case.

The algorithm for removing nodes from the token ring was corrected and made more efficient. It’s not known that this had any user impact.

Raft’s error handling when an ex-cluster-member tries to modify configuration was improved; it is now rejected with a permanent error.

The CQL server will now only run requests that benefit from concurrency (e.g. QUERY and EXECUTE) in parallel. Configuration and authentication related requests will be serialized, reducing the chance for errors in those code paths.

Alternator, ScyllaDB’s implementation of the DynamoDB API, implements Time-To-Live (TTL) by scanning data. Some shutdown-related hangs in the scanning process were fixed.

The bundled Java driver was updated to version

When a materialized view processes updates to the base table, it locks the partition and clustering key. In some rare cases involving one of the locks timing out but the other not, this can cause a crash. This was fixed by acquiring the locks sequentially.

The bundled scylla types tool can now serialize a value to the sstable binary format.

The node replace procedure, used to replace a dead node, will now work through Raft (when enabled).

A rare bug involving an allocation failure while updating cached rows was fixed.

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