Scylla is a new, open-source NoSQL data store with a novel design optimized for modern hardware, capable of 1.8 million requests per second per node, while providing Apache Cassandra compatibility and scaling properties. While conventional NoSQL databases suffer from latency hiccups, expensive locking, and low throughput due to low processor utilization, the Scylla design is based on a modern shared-nothing approach. Scylla runs multiple engines, one per core, each with its own memory, CPU and multi-queue NIC. The result is a NoSQL database that delivers an order of magnitude more performance, with less performance tuning needed from the administrator.
With extra performance to work with, NoSQL projects can have more flexibility to focus on other concerns, such as functionality and time to market. Come for the tech details on what Scylla does under the hood, and leave with some ideas on how to do more with NoSQL, faster.
Speaker bio
Don Marti is technical marketing manager for ScyllaDB. He has written for Linux Weekly News, Linux Journal, and other publications. He co-founded the Linux consulting firm Electric Lichen. Don is a strategic advisor for Mozilla, and has previously served as president and vice president of the Silicon Valley Linux Users Group and on the program committees for Uselinux, Codecon, and LinuxWorld Conference and Expo.
2. What could you do with Cassandra
compatibility at 1.8 million requests/node?
Don Marti @ ScyllaDB
LA Big Data

3. Capable of 1,000,000 operations per second
PER NODE
With predictable, low latencies
Compatible with Apache Cassandra
drivers, integration, management tools
Scylla: A new NoSQL Database
7. FULLY COMPATIBLE
❏ Uses Cassandra SSTables
❏ Use your existing drivers
❏ Use your existing CQL queries
❏ Use your existing cassandra.yaml
❏ Manage with nodetool or other JMX console
❏ Use your existing code with no change
❏ Copy over a complete Cassandra database
❏ Works with the Cassandra ecosystem (Spark etc.)
11. SCYLLA IS QUITE DIFFERENT
Shard-per-core, no locks, no threads, zero-copy
Based on the Seastar C++ application framework
Efficient, unified DB cache (vs. Linux page cache)
CQL-oriented storage engine
Exploit all hardware resources - NUMA, multiqueue NICs, etc
12. SCYLLA DB: ARCHITECTURE COMPARISON
Kernel
Cassandra
TCP/IPScheduler
queuequeuequeuequeuequeue
threads
NIC
Queues
Kernel
Traditional stack Scylla sharded stack
Memory
Lock contention
Cache contention
NUMA unfriendly
Application
TCP/IP
Task Scheduler
queuequeuequeuequeuequeuesmp queue
NIC
Queue
DPDK
Kernel
(isn’t
involved)
Userspace
Application
TCP/IP
Task Scheduler
queuequeuequeuequeuequeuesmp queue
NIC
Queue
DPDK
Kernel
(isn’t
involved)
Userspace
Application
TCP/IP
Task Scheduler
queuequeuequeuequeuequeuesmp queue
NIC
Queue
DPDK
Kernel
(isn’t
involved)
Userspace
Core
Database
TCP/IP
Task Scheduler
queuequeuequeuequeuequeuesmp queue
NIC
Queue
DPDK
Kernel
(isn’t
involved)
Userspace
No contention
Linear scaling
NUMA friendly
13. Scylla has its own task scheduler
Traditional stack Scylla stack
Promise
Task
Promise
Task
Promise
Task
Promise
Task
CPU
Promise
Task
Promise
Task
Promise
Task
Promise
Task
CPU
Promise
Task
Promise
Task
Promise
Task
Promise
Task
CPU
Promise
Task
Promise
Task
Promise
Task
Promise
Task
CPU
Promise
Task
Promise
Task
Promise
Task
Promise
Task
CPU
Promise is a
pointer to
eventually
computed value
Task is a pointer
to a lambda
function
Scheduler
CPU
Scheduler
CPU
Scheduler
CPU
Scheduler
CPU
Scheduler
CPU
Thread
Stack
Thread
Stack
Thread
Stack
Thread
Stack
Thread
Stack
Thread
Stack
Thread
Stack
Thread
Stack
Thread is a
function pointer
Stack is a byte
array from 64k to
megabytes
Context switch cost is
high. Large stacks pollutes
the caches No sharing, millions of
parallel events
23. ❏ On GitHub
❏ Beta releases (0.11 is current)
❏ Try it out! RPM, Docker, AMI available
Open source
24. Get involved
Feature Status When
ALTER KEYSPACE, ALTER TABLE In progress GA
Authentication, authorization, crypto In progress GA
Migration without downtime In progress GA
Thrift, Counters... Future ???