ScyllaDB Enterprise 2020.1.6

The ScyllaDB team announces the release of ScyllaDB Enterprise 2020.1.6, a production-ready ScyllaDB Enterprise patch release for ScyllaDB Enterprise 2020.1. As always, ScyllaDB Enterprise customers are encouraged to upgrade to ScyllaDB Enterprise 2020.1.6 in coordination with the ScyllaDB support team.

New Feature: Space Amplification Goal (SAG) for ICS

2020.1.6 allow a new option to set a Space Amplification Goal (SAG) in Incremental Compaction Strategy (ICS)

Space Amplification Goal (SAG) is a new property that allows control of the Space Amplification. It’s intended for users with overwrite-intensive workloads, as this new feature consists of triggering compaction to deduplicate data whenever the compaction strategy finds the space amplification has crossed the configured goal. Please note that the SAG value is not an upper bound on space amplification, but the compaction strategy will be continuously working to control the space amplification according to the configured value.

The name of this new property is space_amplification_goal. Choose a value between 1 and 2, where a value closer to 1 leads to more write amplification and smaller space amplification, and value closer to 2 leads to less write amplification and higher space amplification. The penalty on write amplification is reduced as much as possible by being more aggressive on the two largest size tiers, but still allowing accumulation of data on the smaller tiers.

Let’s see how it works in action: If SAG was set with a value of 1.5, compaction would be triggered when the second-largest tier reaches half the size of the largest tier. That’s because the largest tier is assumed to contain the entire data set, therefore the second-largest tier contributes with a space amplification of 0.5, making the estimated space amplification go beyond the threshold value. By compacting those two tiers together in a process called cross-tier compaction, the actual space amplification will be reduced to below the space amplification goal.

space_amplification_goal is disabled (null) by default. For full ICS compaction options reference, see here.

For more improvements and stability bug fixes see below.

Related Links

Fixed issues in this release are listed below, with open source references, if present:

  • Stability: Wild pointer dereferenced when try_flush_memtable_to_sstable on shutdown fails to create sstable in a dropped keyspace #7792
  • Stability: Fix misread of schema mutations in a mixed cluster (during rolling upgrade) , more specifically, reading of non existent custom partitioner fields.
  • Stability: crash in row cache if a partition key is larger than 13k, with a managed_bytes::do_linearize() const: Assertion `lc._nesting' failed error  #7897
  • Stability: Error: sstable – Mutation stream ends with unclosed partition during write during scylla stopping and coredump #7482
  • Stability: fix(ebs_disks): Fix aws_instance.ebs_disks method when running on a AWS instance which is not preconfigured like I3 #7780
  • Stability: a rare race condition when a node is killed early in its boot process, and is replacing a node can cause ScyllaDB to exit #6436
  • Stability:ScyllaDB initialization freeze on on the activation of the API server  #6606
  • Stability: Moving of nodes between RACKS and altering keyspaces from SimpleStrategy to NetworkTopologyStrategy requires restarting nodes  #6459
  • Tracing: add tracing of MV update in the context of Write request trace #6175
  • Tools: node_exporter_install --force failing #6782
  • Install: OEL7.6: installation failed for kernel conflict, but both running kernel and installed kernel are all qualified #7675
  • Docker: image size was significantly reduced, by omitting kernel packages from the image, and instead prevents installation when the kernel is too old. Docker image for 2020.1.6 is 326MB, compare to 2020.1.5 543MB

04 Feb 2021