Page MenuHomePhabricator

Keep an eye on ScyllaDB as an alternative to Cassandra
Closed, DeclinedPublic


ScyllaDB is a high-performance C++ Cassandra look-alike that is quickly shaping up to be an interesting alternative. Currently DTCS support is still weak, causing RB tests to hang on table creation. Improvements for it are scheduled in Q1. Encryption is also still missing.

Lets revisit Scylla once DTCS and encryption have landed. is a good place to track progress.

Potential benefits

  • About an order of magnitude more / smaller instances (one instance per core)
    • Higher data locality reduces SSTables / read independent of compaction strategy.
    • Reduced LSM write amplification might enable the use of LCS, which should address range query (wide row), and tombstone GC issues seen with other compaction strategies.
  • vnode tokens implicitly shared across instances: Reduces repair write amplification by number of instances, without introducing storage imbalance.
  • Automatic instance management: No manual bootstrapping, restarting etc of individual instances.
  • More efficient implementation using C++ instead of Java. No GC.

Potential issues

  • New, less mature software.
  • Less complete feature set at this point:
    • No incremental repairs.
    • No Cassandra 3.x features like materalized views.
  • Cost of migration.

Event Timeline

GWicke raised the priority of this task from to Low.
GWicke updated the task description. (Show Details)
GWicke added projects: RESTBase, Services.
GWicke added a subscriber: GWicke.

Quick update on ScyllaDB support:

  • Started scylladb with docker run -p 9042:9042 -it scylladb/scylla.
  • All tests are passing with these two minor changes:
    • Map 'timeseries' storage to STCS or LCS in the cassandra backend (DTCS not yet supported).
    • Add --cqlversion=3.2.0 to the cqlsh call in test/
  • Throughput / latency looks a bit better especially for small requests. Larger requests seem to suffer from storage on a docker volume. Starting the docker image with a bind mount for /var/lib/scylla throws errors, so a proper performance evaluation will have to wait.

I created a ticket for better bind-mounted data directory support in their docker container:

GWicke set Security to None.
GWicke updated the task description. (Show Details)
GWicke edited projects, added Services (later); removed Services.
Eevans claimed this task.

@Eevans I believe this task can be declined?


mobrovac changed the task status from Resolved to Declined.Jul 4 2018, 6:25 AM