ScyllaDB Enterprise 2019.1.4

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

The focus of ScyllaDB Enterprise 2019.1.4 is improving stability and robustness, reducing storage requirements with the new Incremental Compaction Strategy and enabling IPv6. More below.

Related Links

New features in ScyllaDB Enterprise 2019.1.4

Incremental Compaction Strategy (ICS)

The new compaction strategy is an improvement on the default Size Tiered Compaction Strategy (STCS). While it shares the same read and writes amplification factors as STCS, it fixes its doubling of temporary disk usage issue by breaking huge SSTables into smaller chunks, all of which are named an SSTable run.

While STCS forces you to keep 50% of your storage reserved for temporary compaction allocation, ICS reduces most of this overhead, allowing you to use more of the disk — up to 80% — for regular usage. This can translate to using fewer nodes, saving more than a third of your overall storage costs, or allow you to store far more data on your existing cluster. For example, a typical node with 4 TB and 16 shards will have less than 20% temporary space amplification with ICS, allowing the user to run at up to 80% capacity. In a follow-up blog post we will provide a deep dive into ICS disk usage saving.

ICS is only available in ScyllaDB Enterprise.

More on ICS:


As you might have heard, there are no more IPv4 addresses available. As such you can now run ScyllaDB Enterprise with IPv6 addresses for client-to-node and node-to-node communication.

ScyllaDB now supports IPv6 Global Scope Addresses and Unique local addresses for all IPs: seeds, listen_address, broadcast_address etc. Note that ScyllaDB Monitoring stack and ScyllaDB Manager 2.0 already support IPv6 addresses as well. Make sure to enable enable_ipv6_dns_lookup in scylla.yaml (see below)

Example from scylla.yaml

Enable_ipv6_dns_lookup: true
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
          - seeds: "fcff:69:46::7b"
listen_address: fcff:69:46::7b
broadcast_rpc_address: fcff:69:46::7b
rpc_address: fcff:69:46::7b

See related ScyllaDB Open Source issue #2027

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

  • Stability: non-graceful handling of end-of-disk space state may cause ScyllaDB to exit with a coredump #4877
  • Stability: core dump on OOM during cache update after memtable flush, with !_snapshot->is_locked()’ failed error message #5327
  • Stability: Adding a DC with MV might fail with assertion _closing_state == state::closed #4948
  • Oversized allocation warning in reconcilable_result, for example, when paging is disabled #4780
  • Stability: running manual operations like nodetool compact will crash if the controller is disabled #5016
  • Stability: Under heavy read load, the read execution stage queue size can grow without bounds #4749
  • Stability: repair: assert failure when a local node fails to produce checksum #5238
  • CQL: One second before expiration, TTLed columns return as null values #4263, #5290
  • Stability: long-running cluster sees bad gossip generation when a node restarts #5164 (similar to CASSANDRA-10969)
  • CQL: wrong key type used when creating non-frozen map virtual column #5165
  • CQL: using queries with paging, ALLOW FILTERING and aggregation functions return intermediate aggregated results, not the full one #4540

06 Jan 2020

Edit: 14 Jan 2020 – Clarification on ICS