Skip to main content
[ PIER ]

ScyllaDB

A C++ rewrite of Cassandra — same CQL, 10× lower latency.

Database Cluster-ready #nosql#wide-column#cassandra-compatible#high-performance

ScyllaDB is a high-performance, drop-in compatible reimplementation of Apache Cassandra written in C++ using a shared-nothing, shard-per-core architecture. It speaks CQL, runs on Kubernetes, scales linearly, and delivers single-digit millisecond p99 latencies on workloads where Cassandra struggles.

Deploy with Pier

  1. 1 Open the Pier dashboard and click Add service.
  2. 2 Pick ScyllaDB from the template list.
  3. 3 Choose the version, set a service name, and Pier provisions the container, storage, and ports automatically.
  4. 4 Attach a domain if you want HTTPS. Traefik auto-provisions the Let's Encrypt certificate.

What is ScyllaDB?

ScyllaDB is a from-scratch C++ rewrite of Apache Cassandra that started in 2015 with one goal: keep the data model, drop Cassandra’s JVM tax. The shard-per-core architecture means each CPU core owns a slice of data with no shared mutable state — no thread context switches, no GC pauses, no cross-core synchronization.

The user-facing result: same CQL, same drivers, same schemas — but 10× lower p99 latency, often half the hardware. Discord migrated 177 nodes of Cassandra to 72 nodes of ScyllaDB and dropped p99 by an order of magnitude.

How Pier deploys it

Pier uses the official scylladb/scylla Docker image, mounting /var/lib/scylla as the data volume. The default version is latest (Scylla 6.x at time of writing); 5-stable, 6-stable are pinned variants.

Cluster mode supports 2–5 nodes; production deployments typically want 3+ per datacenter. Pier exposes 9042 (CQL) and 9180 (shard-aware) ports.

Backups use snapshot tarballs and can ship to any S3-compatible storage.

When NOT to use ScyllaDB

For OLTP with strong consistency and rich joins — Postgres. For ad-hoc analytics — ClickHouse. For documents with flexible schemas — MongoDB. For in-memory cache/queue — Redis/Valkey. Scylla shines when partition-keyed access + write throughput + predictable tail latency are the hard requirements.

Key features

Drop-in CQL compatibility

Same CQL protocol, same drivers, same data model as Cassandra. Migrate via cqlsh dumps or live streaming with sstableloader.

Shard-per-core architecture

Each CPU core owns a shard. No cross-core locks, no thread context switching — predictable latency under heavy load.

10× lower p99 latency

Single-digit milliseconds at the 99th percentile where Cassandra is in the tens or hundreds. Better tail latency = better user experience.

Lower hardware footprint

Often runs the same workload on 1/3 the hardware of Cassandra. Cost savings compound across multi-node clusters.

Same masterless design

No primary, no failover. Every node is equal. Tunable consistency from ONE to ALL.

Modern operational tooling

Built-in observability via Prometheus, dynamic core scheduling, automatic memory management, hinted handoff.

Use cases

User profiles and session stores

Per-user records served by partition key at single-digit ms p99 — fits AdTech, social, gaming use cases perfectly.

Time series and IoT at scale

High-throughput sensor / telemetry ingest; same model as Cassandra time-series patterns with better latency.

Recommendation systems backing store

Pre-computed user / item recommendations served at high concurrency with predictable tail latency.

Ad-tech serving & bidding

Real-time bid responses need sub-10ms p99 — Scylla's per-core architecture wins where general-purpose DBs fall over.

Cassandra cost-reduction migration

Existing Cassandra clusters often migrate to Scylla and cut node count by 60–70% with better SLOs.

Code examples

Create keyspace and table (identical to Cassandra) sql
CREATE KEYSPACE app
  WITH replication = {
    'class': 'NetworkTopologyStrategy',
    'datacenter1': 3
  };

USE app;

CREATE TABLE sessions (
  user_id   UUID,
  token     TEXT,
  created   TIMESTAMP,
  last_seen TIMESTAMP,
  PRIMARY KEY ((user_id), token)
);
Write with TTL sql
INSERT INTO sessions (user_id, token, created, last_seen)
VALUES (?, ?, toTimestamp(now()), toTimestamp(now()))
USING TTL 86400;  -- expire in 24h
Tunable consistency sql
CONSISTENCY LOCAL_QUORUM;
SELECT * FROM sessions WHERE user_id = ?;
Connect from Java / Spring (Cassandra driver works unchanged) java
CqlSession session = CqlSession.builder()
  .addContactPoint(new InetSocketAddress("scylla-host", 9042))
  .withAuthCredentials("user", "pass")
  .withKeyspace("app")
  .build();

How it compares

vs Apache Cassandra ScyllaDB is wire- and CQL-compatible. Same data model, same drivers. Scylla wins on latency and density; Cassandra has the bigger ecosystem and longer track record.
vs DynamoDB Both are wide-column with similar APIs (DynamoDB has its own SDK). Scylla has a DynamoDB-compatible Alternator API. Self-hosted vs AWS-managed; Scylla wins on cost predictability.
vs Redis / Valkey Redis is in-memory with optional persistence; Scylla is durable disk-first. Use Redis for cache + ephemeral data, Scylla for durable wide-column at scale.
vs MongoDB Mongo is document-oriented with rich query language. Scylla is partition-keyed wide-column. Mongo wins on ad-hoc queries; Scylla wins on predictable latency and write throughput.

Frequently asked questions

Is ScyllaDB really a drop-in replacement for Cassandra?
At the CQL protocol level, yes. Schemas migrate via `cqlsh -e "DESCRIBE KEYSPACE..."`. Data migration via sstableloader or cqlsh copy. Some Cassandra-specific tools (nodetool subcommands) have ScyllaDB equivalents.
Open source or proprietary?
ScyllaDB ships in two editions — ScyllaDB Open Source (AGPL) and ScyllaDB Enterprise (commercial). Pier deploys the Open Source edition.
Default ports?
9042/tcp for CQL (same as Cassandra). 9180/tcp for the Scylla-specific shard-aware protocol (driver-aware clients use it for better routing).
Cluster size?
Pier's cluster template supports 2–5 nodes. Production typically wants 3+ nodes per datacenter for QUORUM reads/writes.
Migrate from Cassandra to ScyllaDB?
Yes — ScyllaDB ships a migration toolkit. Live streaming via SCYLLA migrator + sstableloader. Most apps don't change a line of code; only the connection endpoints change.
Backups?
ScyllaDB has built-in snapshot support via `nodetool snapshot` (same as Cassandra). Pier ships snapshot tarballs to S3 on schedule.
Performance gain vs Cassandra?
Workload-dependent. Typical reports — 50–80% lower p99 latency, 30–60% fewer nodes for the same throughput. Run your own benchmarks before committing to migration.

Related services

Deploy on your VPS

ScyllaDB is a high-performance, drop-in compatible reimplementation of Apache Cassandra written in C++ using a shared-nothing, shard-per-core architecture. It speaks CQL, runs on Kubernetes, scales linearly, and delivers single-digit millisecond p99 latencies on workloads where Cassandra struggles.

Deploy this service →