[RELEASE] Scylla 2.0

107 views
Skip to first unread message

Tzach Livyatan

<tzach@scylladb.com>
unread,
Oct 5, 2017, 3:08:21 PM10/5/17
to scylladb-dev, ScyllaDB users
The Scylla team is pleased to announce the release of Scylla 2.0, a production-ready Scylla major release. 
Scylla is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistently low latency. From now on, critical bugs will be fixed in 2.0 and 1.7 release series only. If you are still using open source Scylla 1.6 or earlier release - you are encouraged to upgrade. We will continue to fix bugs and add features on the master branch toward 2.1 and beyond. Please make sure to read the system impacts and known issue sections below before you upgrade.


New features in Scylla 2.0
Counters are now production ready and are enabled by default
Materialized Views (MV)  - Experimental. In many use cases, the same information record needs to be queried based on more than one key. For example, user data includes name and id fields, and needs to be queried once by name and once by id. Prior to the introduction of Materialized Views, the only way to implement this in Scylla was using denormalization, maintaining two tables and synchronizing them from within your application. With Materialized Views (MV), Scylla automates this process for you and allows for fast lookups of data in each view using the standard read path. More on MV support and limitations in Scylla 2.0 here
Row Cache. In Pre 2.0 releases Scylla cached full partitions only, and we chose not to cache partitions larger than 10MB. With the introduction of the row cache, Scylla can cache a single CQL row out of a large partition, removing this limitation. This change will significantly improve Scylla performance for use cases with large partitions, such as Time Series.
Heat Weighted Load BalancingWhen a Scylla node restarts for any reason (upgrade, config update, error), it starts with an empty cache. This means the node read path will always hit disk until it's cache is repopulated. During this time, this node will be slower, and as a result, can slow down the entire cluster.   Heat Weighted Load Balancing solves this issue by optimizing the node selection in the coordinator based on the heat of each node. A hot node, with a good cache-hit-ratio, will get more reads requests than a cold node with the same data and a lower cache hit ratio. After some time, the cold node will become hot, and the load balancing will become uniform again.  #1455. More on Heat Weighted Load Balancing here
Improved Performance for CPU-bound workloads. More here
DNS resolution. You can now use DNS names (FQDN), not only IPs, in scylla.yaml for seed nodes,  listen_address,  broadcast_address and broadcast_rpc_address #2357
Docker experimental flag: you can now use "--experimental 1" with Docker to use experimental features (like MV)
ext4 support: Scylla now supports ext4 file system in production, not just in dev mode. Using XFS is still recommended for best performance #2381
Native support for EC2 i3 instances: Scylla AMI is now optimized to get the most from i3 instances. Among others, Scylla now take advantage of the NVMe, i3.16xlarge instance’s network devices, and more
CPU isolation - Experimental. Improve latency using isolation between background tasks like memtable flushes and compaction and foreground tasks like CQL read/write. more here

System Impacts - read carefully
Driver support. Older versions of Cassandra drivers will no longer be supported. With the introduction of MV, Scylla has moved to Cassandra 3.0 system tables. This means old Cassandra drivers, which can not work with Cassandra 3.0, will stop working with Scylla.
To ensure your application will work properly after a Scylla upgrade, we highly recommend upgrading your Cassandra driver before upgrading to Scylla 2.0. The latest drivers are backward compatible and will work with all Scylla1.x releases, past and future.
At the very least, your Cassandra driver should be in the list below or later.
- C++ : 2.3+
- C#: 3.0+
- Java: 3.0+
- Node.js: 3.0+
- PHP: 1.2+
- Python: 3.5+ 
- Ruby: 3.0+
- GoCQL commit 8d27cdeae224463cadc1ee973386862baaf6662e (Mar 1, 2016) or later
Upgrade procedure: you can only upgrade to Scylla 2.0 from Scylla 1.7.4 or later. Upgrade from earlier Scylla release is not supported. 
Counter MigrationScylla does not support Counter SSTables created by Cassandra 2.1 or older. Note that if you upgraded from Cassandra 2.0 to 2.1, you may still have old Counters in the sstables. 
  The proper way to migrate Counters data from Cassandra to Scylla is to run a major compaction on the Cassandra node, and use sstableloader to load the sstable to Scylla.
  If you are using experimental Counters in 1.7.4, read the notes on upgrading to 1.7.5, they apply to 1.7.4 to 2.0 upgrade as well.
Deprecated partitioners byteordered and random partitioners were deprecated in 2.0 and will be removed in a future version. Please email scylladb-users@googlegroups.com if you use or are planning to use these partitioners.

Known Issues
* Slow gossip propagation in Scylla 2.0 may cause an issue when adding a node to a large cluster. To reduce this risk, it is recommended to set ring_delay_ms value to 120000 ms (2 minutes) in scylla.yaml of the new node. The default is 30000 (30s). #2861 #2855

 
Metrics updates from 1.7
Scylla Grafana Monitoring project now includes Scylla 2.0 dashboard by default

The following metric names have changed:
scylla_cache_evictions To scylla_cache_partition_evictions
scylla_cache_hits To scylla_cache_partition_hits
scylla_cache_insertions To scylla_cache_partition_insertions
scylla_cache_merges To scylla_cache_partition_merges
scylla_cache_misses To scylla_cache_partition_misses
scylla_cache_removals To scylla_cache_partition_removals
scylla_cache_total To scylla_cache_bytes_total
scylla_cache_used To scylla_cache_bytes_used

The following metrics are no longer available
scylla_cache_uncached_wide_partitions
scylla_cache_wide_partition_evictions
scylla_cache_wide_partition_mispopulations

The following metrics are new in Scylla 2.0:
scylla_cache_mispopulations
scylla_cache_reads
scylla_cache_active_reads
scylla_cache_reads_with_misses
scylla_cache_row_hits
scylla_cache_row_insertions
scylla_cache_row_misses
scylla_cache_sstable_partition_skips
scylla_cache_sstable_reader_recreations
scylla_cache_sstable_row_skips
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_total_disk_space
scylla_database_active_reads_streaming
scylla_database_counter_cell_lock_acquisition
scylla_database_counter_cell_lock_pending
scylla_database_cpu_flush_quota
scylla_database_queued_reads_streaming
scylla_execution_stages_function_calls_enqueued
scylla_execution_stages_function_calls_executed
scylla_execution_stages_tasks_preempted
scylla_execution_stages_tasks_scheduled
scylla_scylladb_current_version
scylla_sstables_index_page_blocks
scylla_sstables_index_page_hits
scylla_sstables_index_page_misses
scylla_storage_proxy_coordinator_background_read_repairs
scylla_storage_proxy_coordinator_foreground_read_repair
scylla_storage_proxy_coordinator_read_latency
scylla_storage_proxy_coordinator_write_latency
scylla_storage_proxy_replica_received_counter_updates

For a description of each metrics, go to http://scylla-ip:9180/metrics

Noteworthy Bug fixes
* CQL: Dropping a table doesn't drop its dropped columns #2633#2634
* CQL: "enabled" compaction attribute on schema is ignored #2547
* CQL: metadata describes counter columns as bigint #2569
* CQL: no support for Cannot SELECT MAX(TEXT) #2459
* CQL: Cannot create table with non-alphanumeric UDT #2491
* CQL: tracing not working on big clusters #2243
* Security: unauthorized user can drop system_auth #2346
* Docker: Scylla docker write Reactor stalled report on every activation #2162
Scylla install: Installation on Ubuntu/Debian systems fails if a "scylla" user already exists #2389
Scylla install: no support for installing specific, not latest, Scylla patch version on CentOS  #2642
Scylla install: scylla_cpuscaling_setup doesn't work on AWS/GCE, because these VMs doesn't support cpufreq #2051
Scylla install: on Ubuntu16.04, device /dev/md0 is renamed to /dev/md127 after reboot #2502
* Systemd: scylla-server.service should start after network-online.target instead of network.target #2337
* Streaming: on some cases, streaming reads may block user reads #2663
* Streaming: repair can fail due to reads overloads #2659
* Multi DC:  inter_dc_tcp_nodelay configuration parameter ignored #6
* Gossip: bootstrapping node might be overwhelmed with streaming, delay the update the gossip heartbeat and appears to be down #2150
Scylla: On large nodes reporting metrics via Prometheus may effect requests latency  #2475
* Repair: Do not allow repair until node is in NORMAL status #2723
Reply all
Reply to author
Forward
0 new messages