[RELEASE] Scylla 2.2 Release Candidate(RC) 1

129 views
Skip to first unread message

Tzach Livyatan

<tzach@scylladb.com>
unread,
May 23, 2018, 6:23:09 AM5/23/18
to ScyllaDB users, scylladb-dev

The Scylla team is pleased to announce the release of Scylla 2.2 RC1, the first Release Candidate for Scylla 2.2. From now on only critical bugs, will be fixed in branch-2.2. We will continue to fix bugs and add features to the master branch.

Scylla 2.2 release includes improvements in latencies under different conditions, improved security with RBAC, improved HA with the hinted handoff, and many others.


Scylla is an open source, Apache-Cassandra-compatible NoSQL database, with superior performance and consistently low latency. Find Scylla 2.2 repository for your Linux distro here (under More Versions)

Use with caution; RC1 is not officially production-ready yet. Help us stabilize 2.2 by reporting bugs here. Please note only the last two minor releases of the Scylla open source project are supported. Once 2.2 is out, only 2.2 and 2.1 will be supported.


You can use Scylla 2.2-rc1 with Docker by running the following command:

docker run --name some-scylla-2.2rc1 -d scylladb/scylla:2.2-rc1


Related Links     

* Get Scylla 2.2 (under “More Versions”)

* Upgrade from Scylla 2.1 to Scylla 2.2

* Report a problem


New features in Scylla 2.2

* Role Based Access Control (RBAC) - compatible with Apache Cassandra 2.2

RBAC is a method of reducing lists of authorized users to a few roles assigned to multiple users. RBAC is sometimes referred to as role-based security.

For example:

CREATE ROLE agent;

GRANT CREATE ON customer.data TO agent;
GRANT DESCRIBE ON customer.data TO agent;
GRANT SELECT ON ALL KEYSPACES TO agent;
GRANT MODIFY ON customer.data TO agent;


CREATE ROLE supervisor;

GRANT agent TO supervisor;


For the rest of more on Scylla RBAC example here

For CQL RBAC reference here

Note that you need to have Authentication enabled to use roles.


* Hinted Handoff - experimental.

Hinted handoff is a Scylla feature that improves cluster consistency, compatible with Apache Cassandra 2.1 Hinted handoff feature. When a replica node is not available for any reason, the coordinator keeps a buffer of writes (hints) to this replica. When the node becomes available again, hints are replayed to the replica. The buffer size is limited and configurable. You enable or disable hinted handoff in the scylla.yaml file.

More on hinted handoff here


Performance improvements in Scylla 2.2

We continue to invest in increasing Scylla throughput and reduced latency, and in particular, improves consistent latency, focusing on high percentile latencies.


* Row-level cache eviction

Partitions are now evicted from in-memory cache with row granularity which improves the effectiveness of caching and reduces the impact of eviction on latency for workloads which have large partitions with many rows.


* Improve  paged single partition queries  #1865

Paged single partition queries are now stateful, meaning they save their state between pages so they don't have to redo the work of initializing the query on the beginning of each page. This results in improved latency and vastly improved throughput. This optimization is mostly relevant to workloads that hit the disk, as initializing such queries involves extra I/O. The results are 246% better performance with lower latency when selecting by partition key with an empty cache. More here.


* Improve row digest hash #2884

The algorithm used to calculate a row’s digest was changed from md5 to xxHash, improving throughput and latency for big cells. See the issue comment for a microbenchmark result. For an example of how digest is used in a Scylla Read Repair see here.


* CPU Scheduler and  Compaction controller for STCS

With Scylla’s thread-per-core architecture, many internal workloads are multiplexed on a single thread. These internal workloads include compaction, flushing memtables, serving user reads and writes, and streaming. The CPU scheduler isolates these workloads from each other, preventing, for example, a compaction using all of the CPU and preventing normal read and write traffic from using its fair share.

The CPU scheduler complements the I/O scheduler which solves the same problem for disk I/O. Together, these two are the building blocks for the compaction controller.


* Promoted index for wide partitions (#2981)
Queries seeking through a partition used to allocate memory for the entire promoted index of that partition. In case of really huge partitions, those allocations would also grow large and cause ‘oversized allocation’ warnings in logs. Now the promoted index is consumed incrementally so that the memory allocation never grows uncontrollably.


Metrics updates from 2.2

scylla Grafana Monitoring project now includes Scylla 2.2 dashboard

See here for all metrics change in 2.2


Regards
Tzach

Chan Lewis

<baiwfg2@gmail.com>
unread,
Jun 1, 2018, 6:35:17 AM6/1/18
to ScyllaDB users

Hi. Tzach

I have a question about read path and write path. 

I learn Cassandra's  read path (https://wiki.apache.org/cassandra/ReadPathForUsers) and write path (https://wiki.apache.org/cassandra/WritePathForUsers) , what I want to know is that how scylla is going to treat them ?
Make full compatible with Cassandra's path or just the subset of it and make extensions in the future ?

Tzach Livyatan

<tzach@scylladb.com>
unread,
Jun 1, 2018, 12:22:48 PM6/1/18
to ScyllaDB users
Hi Chan
I'm not sure I fully understand the question.
Scylla is Apache Cassandra compatible with external API (CQL, Thrift) level, configuration level, disk format level and more[1]
Scylla also shares features like tunable consistency, anti-entropy, HA.
The internal architecture is similar in some aspects, like Commit log, memtable,sstable, but very different, we think better, in others.
I will be happy to ask a more specific question.

Regards
Tzach

 

--
You received this message because you are subscribed to the Google Groups "ScyllaDB users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scylladb-users+unsubscribe@googlegroups.com.
To post to this group, send email to scylladb-users@googlegroups.com.
Visit this group at https://groups.google.com/group/scylladb-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/scylladb-users/878451e8-98f8-4376-ae77-1178cbb09723%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Message has been deleted

Tomasz Grabiec

<tgrabiec@scylladb.com>
unread,
Jul 9, 2018, 6:15:48 AM7/9/18
to ScyllaDB users


On Mon, Jul 9, 2018 at 9:17 AM, Chan Lewis <bai...@gmail.com> wrote:
Hi. Tzach. Right now I just want to know whether scylla's read path is totally same as cassandra's read path when a select request is received . The following is cassandra's read path:

  - our row cache covers only sstables (on-disk data), not sstables and memtables. So a read always combines from 


I feel scylla's row_cache may be not working like that, but I'm not sure. So is scylla's read path same as the above description ?

The above description is close to what we do, with the following differences:
  - we don't have a key cache
  - our row cache covers only sstables (on-disk data), it doesn't cover memtables, so a read always combines data from cache with data from memtables.
  - our row cache has CQL row granularity, so is capable of caching parts of partitions. A read may read some parts of the partition from cache, and some parts from sstables. 
  - the above description doesn't cover all the details of the read path processing, and there are differences in the uncovered parts between us and Cassandra

Reply all
Reply to author
Forward
0 new messages