What ScyllaDB Does
- CQL compatibility — drop-in for Cassandra
- DynamoDB compatibility — via Alternator
- Shard-per-core — one thread per CPU core, no lock contention
- User-space I/O — bypass kernel for networking and storage
- Workload prioritization — classify and prioritize queries
- Incremental compaction — avoid disk space amplification
- Materialized views — auto-maintained denormalized tables
- LWT (lightweight transactions) — Paxos-based linearizable operations
- Change Data Capture — stream CDC events
Architecture
Built on Seastar (userspace C++ framework). Each CPU core owns a shard of data with no shared state — eliminating lock contention and context switching. Userspace TCP stack (DPDK optional) and direct I/O to disk.
Self-Hosting
# 3-node cluster
version: "3"
services:
scylla-node1:
image: scylladb/scylla:latest
command: --seeds=scylla-node1 --smp 4 --memory 8G
scylla-node2:
image: scylladb/scylla:latest
command: --seeds=scylla-node1 --smp 4 --memory 8G
scylla-node3:
image: scylladb/scylla:latest
command: --seeds=scylla-node1 --smp 4 --memory 8GKey Features
- Cassandra + DynamoDB wire compatibility
- Shard-per-core architecture
- Sub-millisecond P99 latency
- Linear scaling
- Workload prioritization
- Incremental compaction
- Materialized views
- Change Data Capture
- ScyllaDB Manager for ops
- ScyllaDB Monitoring Stack
Comparison
| Database | Protocol | Architecture | Language |
|---|---|---|---|
| ScyllaDB | CQL + DynamoDB | Shard-per-core | C++ |
| Cassandra | CQL | JVM threads | Java |
| DynamoDB | DynamoDB API | Managed | Proprietary |
| HBase | Custom | Region servers | Java |
| Redis Cluster | RESP | Shard per node | C |
常见问题 FAQ
Q: 真的比 Cassandra 快 10x? A: 在特定 benchmark 下是的。核心差异:C++ 无 GC、shard-per-core 无锁、userspace I/O。实际收益视工作负载而定。
Q: 迁移 Cassandra 难吗? A: 不难。CQL 协议和驱动兼容,数据格式相同。大部分项目几小时可迁移。
Q: AGPLv3 限制? A: 修改源码后如作为网络服务提供需开源改动部分。自用、嵌入应用不受影响。商业版有专业 support + 企业功能。
来源与致谢 Sources
- Docs: https://docs.scylladb.com
- GitHub: https://github.com/scylladb/scylladb
- License: AGPLv3