See all blog posts

ScyllaDB Release 2.1

release
The ScyllaDB team is pleased to announce the release of ScyllaDB 2.1, a production-ready ScyllaDB Open Source minor release.

ScyllaDB is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistently low latency. Starting from this release, critical bugs will be fixed in the ScyllaDB 2.1 and 2.0 release series only. If you are still using open source ScyllaDB 1.7 or prior – you are encouraged to upgrade. We will continue to fix bugs and add features to the master branch towards ScyllaDB 2.2 and beyond.

Related Links

Installation updates

Starting from ScyllaDB 2.1, ScyllaDB packages for Ubuntu 16 and Debian 8 are signed. You can find the keys and instructions per Linux distribution here: http://www.scylladb.com/download/

New features in ScyllaDB 2.1

  • Time Window Compaction Strategy (TWCS ). An improvement and simplification on Date Tiered Compaction Strategy (DTCS) as the go-to strategy for time series data. TWCS uses STCS on “time windowed“ groups of SSTables, using the maximum timestamp of the SSTable to decide which time window each SSTable will be part of. #1432
  • CQL additions:
    • Cast functions between types, for example: SELECT avg(cast(count as double)) FROM myTable.
    • Support Duration data type #2240.
    • CQL prepared statements are now properly evicted so that you’re not able to OOM a server just by preparing many unique statements. See #2474
    • Support non-reserved keywords as columns (without quotes) #2507, for example, a column named “frozen”.
  • CompressionInfo.db files, part of the SSTable format, are stored more efficiently in memory, allowing higher disk: RAM ratios #1946.
  • Transitional Auth – To enable access control without downtime, use transitional modes to temporarily support applications and users that do not have accounts without interrupting services.
  • New REST API /storage_service/force_terminate_repair allows aborting of a running repair and all the data streams related to it. #2105.
  • Secondary Indexing – experimental. ScyllaDB’s Ssecondary Index implementation is based on Materialized Views, introduced in ScyllaDB 2.0, and allows the creation of a Secondary Index using an Apache Cassandra compatible syntax: CREATE INDEX ON ks.users (email); More on ScyllaDB’s Secondary Indexing usage and advantages can be found here.
    Experimental Secondary Indexing (SI) limitations in ScyllaDB 2.1:

    • Only data inserted after the index is created is indexed (as per MV limitations).
    • SI only works for regular columns – not with partition key or their components, clustering key columns, static columns, or collection columns.
    • SI queries don’t support paging and will perform badly for low cardinality indexes (e.g. few unique indexed values that map to a large number of primary keys).

Metrics updates from 2.1

ScyllaDB Monitoring stack now includes ScyllaDB 2.1 dashboard.

The following metric names have changed:

Old Metric Name New Metric Name
ScyllaDB_database_active_reads_streaming scylla_database_active_reads {reads=streaming}
ScyllaDB_database_active_reads_system_keyspace scylla_database_active_reads {reads=system_keyspace}
scylla_database_queued_reads_streaming scylla_database_queued_reads {reads=streaming}
scylla_database_queued_reads_system_keyspace  scylla_database_queued_reads_system {reads=keyspace}

The following metrics are new in ScyllaDB 2.1:

scylla_cache_pinned_dirty_memory_overload
scylla_column_family_cache_hit_rate
scylla_column_family_live_disk_space
scylla_column_family_live_sstable
scylla_column_family_memtable_switch
scylla_column_family_pending_compaction
scylla_column_family_pending_tasks
scylla_column_family_read_latency
scylla_column_family_total_disk_space
scylla_column_family_write_latency
scylla_cql_prepared_cache_evictions
scylla_cql_prepared_cache_memory_footprint
scylla_cql_prepared_cache_size
scylla_database_active_reads_memory_consumption
scylla_io_queue_commitlog_shares
scylla_io_queue_compaction_shares
scylla_io_queue_default_shares
scylla_io_queue_memtable_flush_shares
scylla_scheduler_queue_length
scylla_scheduler_runtime_ms
scylla_scheduler_shares
scylla_scheduler_tasks_processed
scylla_storage_proxy_coordinator_speculative_data_reads
scylla_storage_proxy_coordinator_speculative_digest_reads
scylla_storage_proxy_coordinator_total_write_attempts_remote_node
scylla_transport_requests_blocked_memory_current
scylla_transport_unpaged_queries

For a full list of metrics and their descriptions: From a ScyllaDB node run:curl 127.0.0.1:9180/metrics

About Tzach Livyatan

Tzach Livyatan has a B.A. and MSc in Computer Science (Technion, Summa Cum Laude), and has had a 15 year career in development, system engineering and product management. In the past he worked in the Telecom domain, focusing on carrier grade systems, signalling, policy and charging applications.