Last week in scylladb.git master (issue #162; 2023-01-08)

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

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

Raft has graduated from being an experimental feature to a fully supported option. Currently is is disabled by default.

Raft group 0 verbs are used for metadata management, and so always run on shard 0. It was assumed that registering those RPC verbs only on shard 0 would therefore be sufficient, but that’s not the case on all configurations. This was fixed by registering the verbs on all shards.

A build time misconfiguration caused the CQL query parser to be compiled with a low optimization level. This is not important by itself, since generally prepared statements hide the parsing overhead, but the C++ compilation model can cause some functions in unrelated areas to also be compiled with the lower optimization level, reducing performance. This is now fixed.

Alternator, ScyllaDB’s implementation of the DynamoDB API, uses the rapidjson library to parse queries presented as JSON. Due to a compile-time misconfiguration, aggressive inlining was not enabled. This is now fixed, yielding a substantial performance improvement.

ScyllaDB sometimes reads ahead of the user request, in order to hide latency. In one case a read-ahead request which timed out caused errors to be emitted, even though this did not affect the query. The errors are now silenced.

The scylla-api-client tool is now documented. The tool is suitable for shell automation of the REST API.

Repair tasks can now be aborted via the task manager.

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