See all blog posts

Scylla release: version 1.4

The Scylla team is pleased to announce the release of Scylla 1.4, a production-ready Scylla minor release. Scylla is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistently low latency. From now on, only critical bugs (showstoppers) will be fixed in 1.4 release series. We will continue to fix bugs and add features on the master branch toward 1.5 and beyond. In parallel, we are already working on Scylla 2.0, with many new goodies.

New features

  • Slow Query Tracing – Identifying slow requests with minimal overhead is critical in production systems. This new feature extends the current tracing that was introduced in Scylla 1.3 to capture only the distributed execution path which takes over a threshold of latency, defined in microseconds. Tracing can be enabled, disabled and configured dynamically using Scylla REST API. More on Slow Query Tracing
  • Native support for Prometheus metric collection – Prometheus and Grafana are the monitoring tools of choice for many Scylla users.
    Until 1.4, Scylla metrics were generated in collectd format, forward to collectd, then forward to collectd_exporter which expose them in an HTTP format Prometheus can use.
    Starting with 1.4, we are cutting the middle man. Scylla will directly export Prometheus compatible metrics in Protocol buffer format. System level metrics will be exported using Prometheus node_exporter.
    Scylla-grafana-monitoring dashboards will be updated to support the new metric format. Users who continue to use Scylla 1.3 or older should make sure to use scylla-grafana-monitoring 0.1 release. Collectd metrics will continue to be supported for backward compatibility.
  • Random Partitioner – a legacy, MD5 base, partitioner added to Scylla for users who are currently using it in Cassandra and want to migrate to Scylla. The default and recommended partitioner is Murmur3Partitioner.
    To use the new partitioner on a new cluster use:
    partitioner: org.apache.cassandra.dht.RandomPartitioner
    on scylla.yaml. More on Random Partitioner, #1438
  • CQL Snappy Compression – Scylla now supports CQL binary protocol compression using Snappy. Read your favorite driver documentation on how to enable Snappy. #1286
  • SStableTools – Scylla packages now include the following Cassandra SSTable tools. #1151
    • json2sstable
    • sstable2json
    • sstablelevelreset
    • sstablemetadata
    • sstablerepairedset
    • sstablesplit

New metrics added in Scylla 1.4

New streaming metrics

  • streaming_total_incoming_bytes
  • streaming_total_outgoing_bytes

New database metrics

  • database_total_operations{type=clustering_filter}
  • database_total_operations{type=total_writes}

New gossip metrics

  • gossip_heart_beat_version – Gossip heart beat version changes every second. If everything is working correctly, the gauge-heart_beat_version output should be 1.0. If not the gauge-heart_beat_version output should be less than 1.0.

New tracing metrics

  • tracing_total_operations{type=”dropped_sessions”}
  • tracing_total_operations{type=”dropped_records”}
  • tracing_total_operations{type=”trace_records_count}
  • tracing_queue_length{type=”cached_records”}
  • tracing_queue_length{type=”pending_for_write_records”}
  • tracing_queue_length{type=”flushing_records”}

New cache metrics

  • cache_total_operations{type=”concurrent_misses_same_key”} – incremented when two queries simultaneously access the same partition, and the partition is not in the cache. This path is currently inefficient in Scylla and is therefore tracked.

Noteworthy bug fix in this release:

  • Improve Repair and data streaming – many improvements was made to improve repair speed and reliability. Among them are: #382 #1617 #1682 #1685 #1655, #1741. If you have any issue with repair or data streaming, for example when adding a node – you should upgrade to 1.4.
  • Decommissioned nodes are not cleaned from gossip info #1704, #1714
  • Leveled compaction: High-level sstable on leveled compaction might not be compacted #1720, uniform token range distribution across sstables in a level > 1 is broken #1719
  • Scylla may crash during trace flushing #1678, #1647 #1605
  • Scylla do not use SSTable promoted index, slowing down large partitions reads #95
  • CQL select with filtering return wrong results. #1684. for example: select count(*) from ks.cf where c1 = ‘a’ allow filtering;
  • CQL connection compression negotiation is broken #1680
  • Scylla generation of UUID used for truncated_at column in system.local table caused an issue with Cassandra/Scylla C# driver #1196
  • Reading very large columns, or reading from slow disks may cause Scylla to crash #1690 #1622
  • Scylla sometimes report “Exceptional future ignored: std::out_of_range” during boot #1656
  • Wrong networking setup can cause sub-optimal performance of Scylla AMI on server with less than 8 v-cores, like c3.xlarge #1645, #1406
  • scylla.yaml failed to read initial_token string with spaces #1664
  • On server boot, Scylla service may start before networking service, causing Scylla to exit #1618
  • Thrift query for column family size estimation may return out of date result. This issue may affect queries from Presto and Spark, both using this API #1139
  • nodetool compactionstats reports wrong pending tasks number
  • Scylla may return empty query results for some clustering slices #1669
  • scylla_setup did not install scylla as a service #1556
  • Scylla AMI not reachable after kernel update #1597
  • Scylla AMI may fail to start correctly #1707, #1716
  • scylla_setup misleading execution order #1739
  • Grant permissions on a non-existent resource may cause a crash #1790
  • Authorization commands are case sensitive #1791
  • scylla_setup error on Ubuntu 14, when trying to set XFS #1740
  • Scylla Docker did not accept the new –listen-address option
Scylla Team

About Scylla Team

Scylla is the world’s fastest wide-column store database: the functionality of Apache Cassandra with the speed of a light key/value store.