Download ScyllaDB

Notice

Running Scylla in Docker is the simplest way to experiment with Scylla and we highly recommend it. However, running stateful containers is complex and tuning is needed to maximize the performance. Please follow our documentation before running it in production. We recommend that you use packages and follow Best Practices for Running Scylla on Docker.

Running a Single Instance

$ docker run --name scylla -d scylladb/scylla

Adding Nodes

$ docker run --name scylla-node2 -d scylladb/scylla --seeds="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' scylla)"
 
$ docker run --name scylla-node3 -d scylladb/scylla --seeds="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' scylla)"

Using Scylla in Docker

  • You can verify that the cluster is up and running with the following command:
$ docker exec -it scylla nodetool status

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 172.17.0.3 357 KB 256 66.4% 76ca991f-cf38-4984-8991-7675721a8bf8 rack1
UN 172.17.0.2 354.12 KB 256 70.6% dca727dd-c564-4166-b48f-ac79a5153503 rack1
UN 172.17.0.4 343.46 KB 256 63.0% 0f6d6b2e-de41-4729-a6a6-77e6f228fc5c rack1

  • To use the Cqlsh client to interact with Scylla:
$ docker exec -it scylla cqlsh

Connected to Test Cluster at 172.17.0.2:9042.
[cqlsh 5.0.1 | Cassandra 2.1.8 | CQL spec 3.2.1 | Native protocol v3] Use HELP for help.
cqlsh>

What’s Next?

Visit Scylla Documentation to get best practices for running Scylla on Docker.

For bug reports, please use Scylla’s issue tracker on GitHub. Please read the How to report a Scylla problem page before you report bugs. For general help, see Scylla’s documentation. For questions and comments, use Scylla’s mailing lists.

Choose AMI

Amazon EC2 AMIs

Note that the Scylla AMIs will not work without an attached drive(s) for XFS.

US East (Virginia)

us-east-1
ami-20a8035f
Scylla 2.1.2 AMI

US West (California)

us-west-1
ami-00011c60
Scylla 2.1.2 AMI

US West 2 (Oregon)

us-west-2
ami-452e473d
Scylla 2.1.2 AMI

EU West 1 (Ireland)

eu-west-1
ami-d77456ae
Scylla 2.1.2 AMI

Choose an Instance Type

For a production system, instances with a fast network and large SSD are recommended. The following instance is pre-tuned in the Scylla AMI and recommended for highest performance:

  • i3 [i3.xlarge .. i3.16xlarge]

Other instance types will work, but with lesser permanence. If you do choose such a type, make sure to run scylla_io_setup.

Configure Instance Details

  • Number of instances – base on your cluster planning
  • Network – Select “Launch into EC2-Classic”, or your own VPC.
  • Advanced Details – Open and add the following options (as text) to the User Data section.
Option Description
clustername Required. The name of the cluster.
totalnodes Required. The number of nodes you are adding to cluster. Use the same value as the “Number of instances” above.
seeds Optional. An ip address of a node in an existing cluster. This will instruct Scylla to join an existing cluster. The “clustername” option must match that of the existing cluster.
stop-services Optional. Do not start Scylla service on the nodes
Example:
--clustername test-cluster
--totalnodes 3

EC2 Configure Instance Details Capture

Add Storage

Scylla AMI require XFS to work. You Must attach at least one drive for Scylla to use as XFS for the data directory. When attaching more than one drive, AMI setup will install RAID0 on all of them.

The Scylla AMI requires at least two instance store volumes. The Scylla data directory will be formatted with XFS when the instance first boots. Scylla will fail to start if only one volume is configured.

Tag Instance

Configure Security Group

Make sure all Scylla Ports are open.

Review

Launch! You now have a running Scylla cluster on EC2.

To connect to the servers, use the username centos.

ssh -i your-key-pair.pem centos@ec2-public-ip

Default file paths:

  • scylla.yaml at /etc/scylla/scylla.yaml
  • data at /var/lib/scylla/

To check that the Scylla server and the JMX component are running, run nodetool.

nodetool status

Note: This Scylla AMI does not support automatic multi-zone deployment.

Monitoring

It is highly recommended to have a Scylla monitoring stack in place. For more on how to setup Scylla monitoring with Grafana here

Reference

Scylla servers set up using this method have the system configuration covered on System Configuration Guide already applied. See the guide for a complete reference on settings used.

Scylla is a 100% open source project. You are welcome to run on Docker, Amazon EC2, or browse the source code and compile it directly from GitHub.

For binary downloads, we ask you to register so we can help you be as successful as possible and let you know about patches and fixes, learning resources, new features, and capabilities. We also invite you to share your feedback to help us improve Scylla.

Scylla is available for the following platforms:

 
After registration, you will receive an email with a link to the download and instructions for installing and running Scylla. If you don’t receive an email from us or have issues installing Scylla, please contact us at help@scylladb.com.

 

Building Scylla from Source

Please visit the Scylla GitHub repository for the most up to date instructions.

Clone the Scylla Git Repository

  • Run the following command to clone the repository:
git clone https://github.com/scylladb/scylla.git

Compile

cd scylla
git submodule update --init --recursive--init --recursive
sudo ./install-dependencies.sh
./configure.py --mode=release
ninja-build 
./build/release/scylla

Run

  • To run Scylla with one CPU and ./tmp as a data directory:
./build/release/scylla --datadir tmp --commitlog-directory tmp --smp 1
  • For more command-line options, run the following command:
./build/release/scylla --help

What’s Next?

For more information on building Scylla, please visit the HACKING page on the GitHub repository.

For bug reports, please use Scylla’s issue tracker on GitHub. Please read the How to report a Scylla problem page before you report bugs. For general help, see Scylla’s documentation. For questions and comments, use Scylla’s mailing lists.

Notice

Running Scylla in Docker is the simplest way to experiment with Scylla and we highly recommend it. However, running stateful containers is complex and tuning is needed to maximize the performance. Please follow our documentation before running it in production. We recommend that you use packages and follow Best Practices for Running Scylla on Docker.

Running a Single Instance

$ docker run --name scylla -d scylladb/scylla

Adding Nodes

$ docker run --name scylla-node2 -d scylladb/scylla --seeds="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' scylla)"
 
$ docker run --name scylla-node3 -d scylladb/scylla --seeds="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' scylla)"

Using Scylla in Docker

  • You can verify that the cluster is up and running with the following command:
$ docker exec -it scylla nodetool status

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 172.17.0.3 357 KB 256 66.4% 76ca991f-cf38-4984-8991-7675721a8bf8 rack1
UN 172.17.0.2 354.12 KB 256 70.6% dca727dd-c564-4166-b48f-ac79a5153503 rack1
UN 172.17.0.4 343.46 KB 256 63.0% 0f6d6b2e-de41-4729-a6a6-77e6f228fc5c rack1

  • To use the Cqlsh client to interact with Scylla:
$ docker exec -it scylla cqlsh

Connected to Test Cluster at 172.17.0.2:9042.
[cqlsh 5.0.1 | Cassandra 2.1.8 | CQL spec 3.2.1 | Native protocol v3] Use HELP for help.
cqlsh>

What’s Next?

Visit Scylla Documentation to get best practices for running Scylla on Docker.

For bug reports, please use Scylla’s issue tracker on GitHub. Please read the How to report a Scylla problem page before you report bugs. For general help, see Scylla’s documentation. For questions and comments, use Scylla’s mailing lists.

Choose AMI

Amazon EC2 AMIs

Note that the Scylla AMIs will not work without an attached drive(s) for XFS.

US East (Virginia)

us-east-1
ami-20a8035f
Scylla 2.1.2 AMI

US West (California)

us-west-1
ami-00011c60
Scylla 2.1.2 AMI

US West 2 (Oregon)

us-west-2
ami-452e473d
Scylla 2.1.2 AMI

EU West 1 (Ireland)

eu-west-1
ami-d77456ae
Scylla 2.1.2 AMI

Choose an Instance Type

For a production system, instances with a fast network and large SSD are recommended. The following instance is pre-tuned in the Scylla AMI and recommended for highest performance:

  • i3 [i3.xlarge .. i3.16xlarge]

Other instance types will work, but with lesser permanence. If you do choose such a type, make sure to run scylla_io_setup.

Configure Instance Details

  • Number of instances – base on your cluster planning
  • Network – Select “Launch into EC2-Classic”, or your own VPC.
  • Advanced Details – Open and add the following options (as text) to the User Data section.
Option Description
clustername Required. The name of the cluster.
totalnodes Required. The number of nodes you are adding to cluster. Use the same value as the “Number of instances” above.
seeds Optional. An ip address of a node in an existing cluster. This will instruct Scylla to join an existing cluster. The “clustername” option must match that of the existing cluster.
stop-services Optional. Do not start Scylla service on the nodes
Example:
--clustername test-cluster
--totalnodes 3

EC2 Configure Instance Details Capture

Add Storage

Scylla AMI require XFS to work. You Must attach at least one drive for Scylla to use as XFS for the data directory. When attaching more than one drive, AMI setup will install RAID0 on all of them.

The Scylla AMI requires at least two instance store volumes. The Scylla data directory will be formatted with XFS when the instance first boots. Scylla will fail to start if only one volume is configured.

Tag Instance

Configure Security Group

Make sure all Scylla Ports are open.

Review

Launch! You now have a running Scylla cluster on EC2.

To connect to the servers, use the username centos.

ssh -i your-key-pair.pem centos@ec2-public-ip

Default file paths:

  • scylla.yaml at /etc/scylla/scylla.yaml
  • data at /var/lib/scylla/

To check that the Scylla server and the JMX component are running, run nodetool.

nodetool status

Note: This Scylla AMI does not support automatic multi-zone deployment.

Monitoring

It is highly recommended to have a Scylla monitoring stack in place. For more on how to setup Scylla monitoring with Grafana here

Reference

Scylla servers set up using this method have the system configuration covered on System Configuration Guide already applied. See the guide for a complete reference on settings used.

Scylla is a 100% open source project. You are welcome to run on Docker, Amazon EC2, or browse the source code and compile it directly from GitHub.

For binary downloads, we ask you to register so we can help you be as successful as possible and let you know about patches and fixes, learning resources, new features, and capabilities. We also invite you to share your feedback to help us improve Scylla.

Scylla is available for the following platforms:

 
After registration, you will receive an email with a link to the download and instructions for installing and running Scylla. If you don’t receive an email from us or have issues installing Scylla, please contact us at help@scylladb.com.

 

Building Scylla from Source

Please visit the Scylla GitHub repository for the most up to date instructions.

Clone the Scylla Git Repository

  • Run the following command to clone the repository:
git clone https://github.com/scylladb/scylla.git

Compile

cd scylla
git submodule update --init --recursive--init --recursive
sudo ./install-dependencies.sh
./configure.py --mode=release
ninja-build 
./build/release/scylla

Run

  • To run Scylla with one CPU and ./tmp as a data directory:
./build/release/scylla --datadir tmp --commitlog-directory tmp --smp 1
  • For more command-line options, run the following command:
./build/release/scylla --help

What’s Next?

For more information on building Scylla, please visit the HACKING page on the GitHub repository.

For bug reports, please use Scylla’s issue tracker on GitHub. Please read the How to report a Scylla problem page before you report bugs. For general help, see Scylla’s documentation. For questions and comments, use Scylla’s mailing lists.