Skip to content

Performance Benchmarks

rsylla delivers exceptional performance for ScyllaDB operations.

Performance Overview

Based on comprehensive benchmarks with 32 concurrent clients:

Metric rsylla acsylla cassandra-driver
Read (prepared) 85,920 ops/s 71,450 ops/s 22,160 ops/s
Write (prepared) 81,260 ops/s 66,720 ops/s 20,340 ops/s
Avg Latency 0.37-0.43 ms 0.45-0.54 ms 1.44-1.67 ms
P99 Latency 1.19-1.26 ms 1.43-1.53 ms 5.03-5.50 ms

Key Findings

rsylla is ~3.9x faster than cassandra-driver

Benchmark: read_prepared
 rsylla:            85,920 ops/sec
 acsylla:           71,450 ops/sec
 cassandra-driver:  22,160 ops/sec

Performance ratio: 3.88x faster than cassandra-driver

rsylla is ~1.2x faster than acsylla

Benchmark: write_prepared
 rsylla:   81,260 ops/sec
 acsylla:  66,720 ops/sec

Performance ratio: 1.22x faster than acsylla

Why rsylla is Fast

  1. Native Rust Performance
  2. Built on the official scylla-rust-driver
  3. Zero-cost abstractions from Rust
  4. Efficient memory management

  5. Zero-Copy Design

  6. Minimal data copying between Rust and Python
  7. Efficient buffer handling

  8. Async Runtime

  9. Powered by Tokio for efficient I/O
  10. Native async/await support

  11. Type Safety

  12. Rust's type system enables optimized code paths
  13. No runtime type checking overhead

Benchmark Details

Test Environment

  • ScyllaDB running locally (Docker)
  • Python 3.11
  • 32 concurrent clients
  • 60-second test duration

Operations Tested

Operation Description
read Simple SELECT with string concatenation
read_bind SELECT with parameter binding
read_prepared SELECT using prepared statements
write Simple INSERT with string concatenation
write_bind INSERT with parameter binding
write_prepared INSERT using prepared statements

Full Results

=== RSYLLA ===
read:          72,340 ops/sec (avg: 0.442ms, p99: 1.415ms)
read_bind:     78,560 ops/sec (avg: 0.407ms, p99: 1.303ms)
read_prepared: 85,920 ops/sec (avg: 0.372ms, p99: 1.193ms)
write:         68,420 ops/sec (avg: 0.467ms, p99: 1.495ms)
write_bind:    74,890 ops/sec (avg: 0.427ms, p99: 1.367ms)
write_prepared:81,260 ops/sec (avg: 0.394ms, p99: 1.262ms)

=== ACSYLLA ===
read:          58,120 ops/sec (avg: 0.550ms, p99: 1.761ms)
read_bind:     64,780 ops/sec (avg: 0.493ms, p99: 1.580ms)
read_prepared: 71,450 ops/sec (avg: 0.448ms, p99: 1.434ms)
write:         54,230 ops/sec (avg: 0.590ms, p99: 1.888ms)
write_bind:    60,540 ops/sec (avg: 0.528ms, p99: 1.690ms)
write_prepared:66,720 ops/sec (avg: 0.479ms, p99: 1.534ms)

=== CASSANDRA-DRIVER ===
read:          18,450 ops/sec (avg: 1.734ms, p99: 6.042ms)
read_bind:     20,120 ops/sec (avg: 1.591ms, p99: 5.543ms)
read_prepared: 22,160 ops/sec (avg: 1.444ms, p99: 5.034ms)
write:         16,890 ops/sec (avg: 1.895ms, p99: 6.601ms)
write_bind:    18,540 ops/sec (avg: 1.726ms, p99: 6.011ms)
write_prepared:20,340 ops/sec (avg: 1.573ms, p99: 5.498ms)

Running Benchmarks

Prerequisites

# Start ScyllaDB
docker run --name scylla -p 9042:9042 -d scylladb/scylla

# Install libraries
pip install rsylla acsylla cassandra-driver

Run Benchmark

cd benchmark
python setup_schema.py
python run_all_benchmarks.py --duration 60 --concurrency 32

Options

# Quick test
python run_all_benchmarks.py --duration 10

# High concurrency
python run_all_benchmarks.py --concurrency 64

# Specific libraries
python run_all_benchmarks.py --libraries rsylla acsylla

# Custom output
python run_all_benchmarks.py --output results.md

Comparison Summary

Feature rsylla acsylla cassandra-driver
Performance Best Very Good Good
Async Support Native Native Thread-based
Type Hints Full Partial Limited
Maturity New Proven Very Mature
Best For High-performance Async apps Compatibility

When to Use rsylla

Choose rsylla when you need:

  • Maximum throughput
  • Lowest latency
  • Modern async/await code
  • Type safety
  • Production performance

Additional Resources