[RELEASE] ScyllaDB Enterprise 2022.2.1

The ScyllaDB team announces ScyllaDB Enterprise 2022.2.1, a bug-fix production-ready ScyllaDB Enterprise patch release for ScyllaDB Enterprise 2022.2.

Related Links

Below is a list of performance and stability improvements and bug fixes, each with an open-source reference if available:

  • CQL: Deleting a long base partition may leave some undeleted materialized view rows #12297

  • CQL: scylla: types: is_tuple(): doesn’t handle reverse types. For example, a schema with reversed clustering key component; this component will be incorrectly represented in the schema CQL dump: the UDT will lose the frozen attribute. When attempting to recreate this schema based on the dump, it will fail as the only frozen UDTs are allowed in primary key components.

  • Alternator Streaming API: unexpected ARN values by list streams paged responses. This issue may only affect users with many, more than 100, tables with streams #12601

  • Stability: Memtable(s) are not flushed when cleaning up a table, leaving disowned tokens in the memtable, which might be resurrected.#1239

  • Stability: error “reader_concurrency_semaphore - Semaphore sl:oltp_read_concurrency_sem with 0/100 count and -74538773/0 memory resources”. Root cause is reader_concurrency_semaphore_group partitioning memory is broken. In some cases, this bug may, after a few cycles of updates, lead to semaphore without any memory units unable to admit any reads. In turn this may lead to high latency and even denial of service.

  • Stability: reader_concurrency_semaphore: inactive readers are only evicted on the admission path #11770

  • Stability: Enabling table encryption (see Encryption at Rest) aborts Scylla when key_provider is not specified.

  • CQL: USING TIMESTAMP allows setting the mutation timestamp on a CQL statement level. It has a sanity check that prevents setting timestamps in the future, as these can be hard to delete, but sometimes one wishes to do so anyway. There is now a configuration option that allows disabling the feature. #12527

  • Stability: During rebuild on asymmetric cluster several aborts and coredump happened #11923 (introduced by the fix for #11770 above)

  • Stability: 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. #12157

  • Stability: ScyllaDB tracks transient memory used by queries. However, it did not track decompressed memory buffers, which could lead to running out of memory in some complicated queries. #12448

  • Stability: Cached reads may temporarily miss rows under rare conditions #12451

  • Parallel aggregation: Timeout point sent in forward_request verb comes from seastar::lowres_clock #12458

  • Stability: During startup, ScyllaDB makes sstables conform to the compaction strategy reshaping, so that future reads will perform well. It is now more careful when reshaping Leveled Compaction Strategy tables, to avoid doing unnecessary work and using too much disk space #12495.

  • Stability: prevent heap use-after-free of forward_aggregates in parallel aggregators #12528

  • Stability: crash in Materialized View update row locking, caused by a race condition #12632

  • Stability: commitlog: segment recycling breaks on segment file removal #12645

  • Stability: Crash when reporting error on invalid CQL query involving field selection from a user-defined type #12739

  • Performance: parsers are compiled without inlining, even in release mode #12463