Blog

Deploying Scylla on Oracle Bare Metal Cloud Services

About Scylla

Scylla is an innovative data base that delivers the functionality of Apache Cassandra with the speed of a fast key/value store.

Raw speed isn’t just a nice benchmark or a low cloud bill. Scylla’s order of magnitude improvement in performance opens a wide range of possibilities. Instead of designing a complex data model to achieve adequate performance, use a straightforward data model, eliminate complexity, and finish your NoSQL project in less time with fewer bugs.

Performance improvements enable not just a reduction in resources, but also an innovation in architecture and DevOps systems. Scylla combines the simple and familiar Cassandra architecture with new power to build a data model that fits the application, not just tweak the model to fit the server.

Using Oracle Bare Metal Cloud Services

Oracle Bare Metal Cloud Services (BMCS) provides a state-of-the-art platform for modern applications. Scylla utilizes systems in the most efficient way, and takes advantage of the ample amount of CPU, memory and high performance storage. Using BMCS, DevOps teams deploying Scylla can make sure their applications perform at maximum throughput and lowest latency due to the fact that Scylla is able to utilize every byte of RAM in the server, fast NVMe storage, and unlimited CPU power from BMCS servers.

Read more.

Scylla release: version 1.5

The Scylla team is pleased to announce the release of Scylla 1.5, a production-ready Scylla minor release. Scylla is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistently low latency. From now on, critical bugs will be fixed in 1.5 and 1.4 release series only. If you are still using open source Scylla 1.3 or earlier release - you are encouraged to upgrade. We will continue to fix bugs and add features on the master branch toward 1.6 and beyond.

Read more.

Scylla on Docker

This blog post is a short introduction on how to use the ScyllaDB Docker image to start up a Scylla node, access nodetool and cqlsh utilities, start a cluster of Scylla nodes, configure data volume for storage, and configure resource limits of the Docker container. For full documentation, see the image description on Docker Hub.

Read more.

Scylla release: version 1.4

The Scylla team is pleased to announce the release of Scylla 1.4, a production-ready Scylla minor release. Scylla is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistently low latency. From now on, only critical bugs (showstoppers) will be fixed in 1.4 release series. We will continue to fix bugs and add features on the master branch toward 1.5 and beyond. In parallel, we are already working on Scylla 2.0, with many new goodies.

Read more.

Slow queries logging in Scylla

Motivation

Many times in real life installations, one of the most important parameters of the system is the longest response time. Naturally, the shorter, the better. Therefore capturing the request that took a long time and understanding why it took it so long is a very critical and challenging task. Slow query tracing to the rescue!

Read more.

Running Scylla in development and test environments

Scylla is designed to utilize all of the resources on the machine it runs on: disk and network bandwidth, RAM, and CPU. This allows you to achieve maximum performance with a minimal node count. In development and test, however, your nodes might be using a shared machine, which Scylla cannot dominate. This post explains how to configure Scylla for shared environments.

Read more.

Scylla release: version 1.3

The Scylla team is pleased to announce the release of Scylla 1.3, a production-ready Scylla minor release. Scylla is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistent low latency. From now on, only critical bugs (showstoppers) will be fixed in release series. We will continue to fix bugs and add features on the master branch toward 1.4 and beyond. In parallel, we are already working on Scylla 2.0, with many new goodies.

Read more.

Large Partition Support in Scylla

Scylla 1.3 has introduced better support for large partitions. It is an important feature which simplifies data modeling so that it can be more focused on the client’s needs and less on the server limitations and ways to work around them. Moreover, issues related to large partitions are not just failed requests and server crashes caused by the node running out of memory, before reaching that point cluster may experience various performance problems, something much harder to diagnose.

Read more.

Scylla Summit speaker interview: Henrik Johansson

We have a stellar roster of NoSQL experts lined up for Scylla Summit. Among the speakers is Henrik Johansson, who will cover “Using ScyllaDB for a Microservice Based Pipeline in Go.” Henrik has, after a background in Physics, worked as a software developer with many different things from shuffling financial data to language processing. He Is currently working as Senior Software Developer at Eniro, working with the backend systems for data refinement, enrichment and analysis. Technologies involve everything from the Spring stack to Hadoop, to Apache Flink, as well as newer things such as Go and Docker.

Read more.

Scylla release: version 1.2

The Scylla team is pleased to announce the release of Scylla 1.2, the third production-ready Scylla minor release. Scylla is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistent low latency.
From now on, only critical bugs (showstoppers) will be fixed in branch-1.2.x. We will continue to fix bugs and add features on the master branch toward 1.2 and beyond. Followup minor releases (1.3, 1.4 etc) will be time-based releases, closed at the end of each month; Scylla 1.3 is due July 2016.

Read more.

Reducing latency spikes by tuning the CPU scheduler

In this post we will walk through an investigation of latency spikes observed in the Scylla 1.0.x version family, which are linked to the scylla-jmx service running alongside the Scylla server on the same system. We will show how the scheduler can be tuned to reduce latency spikes. Scylla 1.2, which is at the release candidate stage this week, will have all relevant fixes. Users of that version won’t have to do anything. Scylla 1.2 is scheduled for release in about a week.

Read more.

Scylla release: version 1.1

The Scylla team is pleased to announce the release of Scylla 1.1, the second production-ready Scylla release. Scylla is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistent low latency.
From now on, only critical bugs (showstoppers) will be fixed in branch-1.1.x. We will continue to fix bugs and add features on the master branch toward 1.2 and beyond. Followup minor releases (1.2, 1.3 etc) will be time-based releases, closed at the end of each month; Scylla 1.2 is due in early June.

Read more.

Scylla at ApacheCon Big Data

If you’re coming to the Apache Big Data event in Vancouver next month, don’t miss a chance to see the latest Scylla performance results. We will present a talk on Scylla, a distributed Cassandra-compatible NoSQL database in excess of a million requests per second per node. Scylla applies systems programming techniques to a horizontally scalable NoSQL design to achieve extreme performance improvements—as shown in latest benchmark results that compare Scylla and Cassandra performance on the YCSB benchmark. If you have questions before or after, please come check out our booth demo as well.

Read more.

Fault-injecting filesystem cookbook

Block devices sometimes do bad things (or just fill up), so sometimes bad things happen to good software. CharybdeFS makes it easy to do integration testing that covers hard-to test filesystem errors. And good error handling is a sign of well-thought-out software. For example, your program will make a much better impression on users if you have it show a nice “insufficient space” message than if it just crashes for no apparent reason. The CharybdeFS filesystem lets you inject arbitrary file errors for testing. This article covers some common examples for getting started.

Read more.

Designing a Userspace Disk I/O Scheduler for Modern Datastores: the Scylla example (Part 2)

This is the second and last part of this article. If you haven’t read the first part, you can do it here. In this part, we will look at the design of the Seastar I/O Scheduler that Scylla uses to manage its disk I/O and discuss how it can be used to not only provide predictable latencies as we saw in our previous installment, but to guarantee fairness and proper balancing among different actors.

Read more.

Designing a Userspace Disk I/O Scheduler for Modern Datastores: the Scylla example (Part 1)

In a datastore like Scylla, there are many actors competing for disk I/O. Examples of such actors are data writers (in Scylla’s parlance they can be either memtable or commitlog writers), and a disk reader fetching the data to serve a cache miss. To illustrate the role that competition plays, if we are just issuing disk I/O without resorting to any fairness or balancing consideration, a reader, for instance, could find itself behind a storm of writes. By the time it has the opportunity to run, all that wait would have translated into increased latency for the read.

Read more.

Avi Kivity at Percona Live

Avi Kivity, CTO of ScyllaDB, will present a talk on Scylla, a distributed Cassandra-compatible NoSQL database in excess of a million requests per second per node at the upcoming Percona Live conference in Santa Clara, California. Avi will cover how Scylla applies systems programming techniques to a horizontally scalable NoSQL design to achieve extreme performance improvements—and, of course, our latest benchmark results that compare Scylla and Cassandra performance on the YCSB benchmark.

Read more.

Exciting times at ScyllaDB

The Scylla team has reached a major milestone this week. We announced the release of version 1.0 and pronounced Scylla to be production ready. However, some early adopters have been using Scylla in production for the past 3 months. Recently a ScyllaDB customer migrated a 30-node Cassandra cluster to Scylla across 3 geographical data centers. Scylla is being evaluated by Fortune 500 companies in the e-commerce, finance and mobile industries.

Read more.

ScyllaTop: real-time monitoring for Scylla in the terminal

ScyllaTop is a simple diagnostic tool that enables you to log on to a machine running Scylla, and view its current state, including many helpful metrics. ScyllaTop is a small project, just a single text-based program with no dependencies other than packages present in the standard Linux distribution. It makes it possible to easily monitor your Scylla node without having to set up multiple Docker containers for monitoring servers.

Read more.

Project Mikelangelo update

A year ago, we reported (see Researching the Future of the Cloud) that ScyllaDB and eight other industrial and academic partners started the MIKELANGELO research project. MIKELANGELO is a three-year research project sponsored by the European Commission’s Horizon 2020 program. The goal of MIKELANGELO is to make the cloud more useful for a wider range of applications, and in particular make it easier and faster to run high-performance computing (HPC) and I/O-intensive applications in the cloud.

Read more.

Scylla testing part 2: Extending Jepsen for testing Scylla

Distributed systems are hard to test, which means that creating a solid set of tests for a distributed database is a substantial software project in itself. Software developer Kyle Kingsbury has invented a full-featured tool for testing distributed systems, called Jepsen. (It’s named after Carly Rae Jepsen.)
Jepsen is a flexible tool that can be set up to test a variety of distributed systems, including Apache Cassandra. Jepsen and Cassandra have both made a lot of progress since the original set of tests. Joel Knighton, a developer working at DataStax, has updated and enhanced the Jepsen tests for Cassandra and made the code available.

Read more.

Scylla testing part 1: Cassandra compatibility testing

This series of blog posts will cover how we test Scylla—first of all for stability and correctness, and also to ensure that Scylla keeps Cassandra compatibility constantly as the project proceeds. Software testing is critical, and especially so for a project that needs to achieve compatibility with some previously existing software. This blog series will cover the tests that we put Scylla through.

Read more.

Meetup notes: Back to the future with C++ and Seastar

ScyllaDB founder Avi Kivity presented “Back to the future with C++ and Seastar” at the recent Sayeret Lambda Meetup group, helping to revise the audience’s impressions of the C++ language. C++ is often thought of as a legacy imperative language with roots in 1970s C. But in the past few years it has been thoroughly modernized, now offering streamlined support for modern paradigms such as lambda, metaprogramming, and functional programming, while retaining no-compromise performance.

Read more.