Last week in scylladb.git master (issue #236; 2024-06-30)

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

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

During compaction, we estimate the required bloom filter size and allocates it. Now, if after compaction it turns out we over-estimated the bloom filter size, we will rebuild the filter. This conserves memory since bloom filters are always held in RAM.

Batches (as generated by the BATCH statement) are held in the system.batchlog table. As this table can accumulate a lot of tombstones, we now take steps to ensure these tombstones are purged eagerly. This is important for repair, which replays the batch log.

When a node is started, it will now make a best-effort attempt to notify other nodes that it is up. This speeds up rolling restart, as we don’t have to wait for nodes to notice the node is up via pings.

The bundled cqlsh package now includes a Python driver that is compiled for the target architecture, making it faster.

Tracing of speculative retries is improved.

ALTER KEYSPACE will now refuse to switch a keyspace from tablets to vnodes.

The build toolchain is now based on Fedora 40; this moves the compiler from clang 16 to clang 18.

Due to compiler immaturity, we previously had to restrict optimization on the aarch64 platform. As the compiler bugs have been fixed, these restrictions are now removed.

The source language was updated from C++20 to C++23.

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