Last week in scylladb.git master (issue #157; 2022-12-04)

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

There were 149 non-merge commits from 19 authors in that period. Some notable commits:

A crash was fixed during an illegal lightweight transaction INSERT with NULL clustering key

Alternator, ScyllaDB’s implementation of the DynamoDB API, now considers the time-to-live implementation stable and no longer experimental.

Transient errors in Alternator TTL scanning (where alternator looks for expired items) no longer cause Alternator to abort the scan; instead it continues.

ScyllaDB caches rows and (since 4.6) index entries in a single unified cache. It was observed that in some small-partition workloads index caching causes a performance regression, so index caching is now disabled by default. It can still be enabled for workloads that benefit from it. We plan to re-enable it when the regression is fixed.

The bundled cqlsh now considers system_distributed_everywhere a system keyspace.

Last week’s change to the scylla driver in cqlsh was reverted, as it causes regressions around the USE statement.

Evaluation of Boolean binary operators (e.g. “=”) has been refactored to use the same expression evaluation code as other expressions, paving the way for relaxation of the CQL grammar to be more similar to SQL.

WebAssembly (WASM) has been re-enabled for aarch64 (ARM).

The topology management code is more relaxed about unknown endpoints to prevent crashes in tests that check for edge cases. This fixes a recent regression.

Hinted handoff now checks that a node exists in topology before doing anything; this helps with a recent regression due to topology refactoring.

In SELECT JSON statements, column names can be given aliases (just as with traditional SELECT). However, ScyllaDB ignored those aliases. It will now honor them.

The container (docker) image now uses the C locale to reduce image size.

The Raft protocol implementation now supports changing a node’s IP address without changing its identity.

Raft failure detection now uses a separate RPC verb from gossip failure detection.

The task manager now controls repair tasks with shard granularity.

A crash in the task manager related to repair tasks has been fixed.

A crash while fetching repaid ids from the repair history table was fixed.

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