Skip to main content
Version: 3.4 (unsupported)

ScalarDB Server

ScalarDB Server is a gRPC server that implements ScalarDB interface. With ScalarDB Server, you can use ScalarDB features from multiple programming languages that are supported by gRPC.

Currently, we provide only a Java client officially, and we will support other language clients officially in the future. Of course, you can generate language-specific client stubs by yourself. However, note that it is not necessarily straightforward to implement a client since it's using a bidirectional streaming RPC in gRPC, and you need to be familiar with it.

This document explains how to install and use ScalarDB Server.

Install prerequisites​

ScalarDB Server is written in Java. So the following software is required to run it.

Install ScalarDB Server​

We have Docker images in our repository and zip archives of ScalarDB Server available in releases.

If you are interested in building from source, run the following command:

./gradlew installDist

Of course, you can archive the jar and libraries by ./gradlew distZip and so on.

Configure ScalarDB Server​

You need a property file holding the configuration for ScalarDB Server. It contains two sections, Server configurations and Underlying storage/database configurations.

#
# Server configurations
#

# Port number of ScalarDB Server. 60051 by default
#scalar.db.server.port=60051

# Prometheus exporter port. Use 8080 if this is not given. Prometheus exporter will not be started if a negative number is given.
#scalar.db.server.prometheus_exporter_port=8080

#
# Underlying storage/database configurations
#

# Comma separated contact points
scalar.db.contact_points=localhost

# Port number for all the contact points. Default port number for each database is used if empty.
#scalar.db.contact_port=9042

# Credential information to access the database
#scalar.db.username=cassandra
#scalar.db.password=cassandra

# Storage implementation. Either cassandra or cosmos or dynamo or jdbc can be set. Default storage is cassandra.
#scalar.db.storage=cassandra

Start ScalarDB Server​

For Docker images, you can start ScalarDB Server with the following commands:

docker pull ghcr.io/scalar-labs/scalardb-server:<version>
docker run -v <your local property file path>:/scalardb/server/database.properties -d ghcr.io/scalar-labs/scalardb-server:<version>

For zip archives, you can start ScalarDB Server with the following commands:

unzip scalardb-server-<version>.zip
cd scalardb-server-<version>
bin/scalardb-server --config <your property file path>

Usage of the Java client of ScalarDB Server​

You can use the Java client of ScalarDB Server in almost the same way as other storages/databases. The difference is that you need to set scalar.db.storage and scalar.db.transaction_manager to grpc in your client side property file.

# Comma separated contact points
scalar.db.contact_points=<ScalarDB Server host>

# Port number for all the contact points
scalar.db.contact_port=60051

# Storage implementation
scalar.db.storage=grpc

# The type of the transaction manager
scalar.db.transaction_manager=grpc

Further documentation​

ScalarDB Server Sample