Extreme Elasticity with Tablets, Raft and Kubernetes by Maciej Zimnoch

ScyllaDB 179 views 25 slides Mar 10, 2025
Slide 1
Slide 1 of 25
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25

About This Presentation

Recent ScyllaDB versions have improved elasticity using Tablets and Raft-based Consistent Topology Changes, allowing for fast bootstrapping and parallel scaling. A demo presents doubling cluster size and autoscaling after crossing 90% disk utilization.


Slide Content

A ScyllaDB Community
Extreme Elasticity with Tablets,
Raft and Kubernetes
Maciej Zimnoch
Senior Software Engineer

Maciej Zimnoch
■Scylla Operator maintainer
■Previously worked on Scylla Manager, Instant
Messaging servers, SDN and LTE networks

■Life before Tablets and Raft
■Elasticity improvements
■Demo - Doubling cluster size
■Demo - Autoscaling after crossing 90% disk utilization
Agenda

Life before Tablets and Raft

Scaling
Scaling was slow due to:
■Synchronous scaling - missing topology change coordinator
■Data streaming - big datasets

Bootstrapping with VNodes
slow slow
Bootstrapping Streaming Ready

Synchronous scaling

Synchronous scaling

Synchronous scaling

Synchronous scaling

Synchronous scaling

Synchronous scaling

Elasticity improvements

Scaling
Recent ScyllaDB versions include multiple elasticity improvements.
Most notable ones:
■Tablets and Tablets Load Balancer
■Consistent Topology Changes - based on Raft

Bootstrapping with Tablets
fast
Bootstrapping Ready

Parallel scaling

Parallel scaling

Doubling cluster size
Demo

Demo setup
apiVersion: scylla.scylladb.com /v1alpha1
kind: ScyllaDBDatacenter
metadata:
name: scylla
spec:
rackTemplate:
nodes: 1
racks:
- name: a
- name: b
- name: c
rack-a
rack-b
rack-c

Demo setup
apiVersion: scylla.scylladb.com /v1alpha1
kind: ScyllaDBDatacenter
metadata:
name: scylla
spec:
rackTemplate:
nodes: 2
racks:
- name: a
- name: b
- name: c
rack-a
rack-b
rack-c

Demo

Autoscaling - 90% disk utilization
Demo

Demo setup
rack-a
rack-b
rack-c clients
write
HPA
HPA
HPA
*HPA - Horizontal Pod Autoscaler
Target - 90% disk utilization

Each HPA* scales rack
independently based on rack disk
usage.

When target utilization is crossed,
new Scylla Node is added.

Demo

Thanks!
Maciej Zimnoch
scylladb/scylla-operator
Tags