This article describes how to set up a multi-node cluster in a Docker environment for simple evaluation.
- Docker engine
The Docker strategy is as follows:
- We will be using the bureau14/qdb docker container
- This container uses qdbd as entrypoint, so we can easily add additional command-line arguments to it
- We will mount volumes for perisstent storage, license files, and others.
Generally we recommend to run RHEL (or derivatives) on the Docker host because of better support of dtrace / systemtap, but any Linux distribution is supported.
To get started, first do a sanity check whether your docker environment works
You need to decide whether to invest in a server with multiple CPU sockets or more powerful CPUs inside a single socket.
Because of Non-Uniform Memory Access (NUMA), we recommend to choose CPUs with more cores before you expand into more CPU sockets. NUMA causes memory access latency to depend upon the physical location of the memory, which makes performance unpredictable. All other things being equal, you will experience better performance with a single 16-core CPU than two 8-core CPUs or four 4-core CPUs.
You want to copy data between QuasarDB clusters. This is a common use case that can be required when:
- Upgrading a QuasarDB cluster version;
- Safeguarding against data loss or data corruption by creating backups on a secondary cluster;
- Creating a snapshot copy for use in a staging or development environment.
While QuasarDB does not provide native cluster-to-cluster data migration, we do provide you with the tools to do this yourself.
Choose a strategy
There are two different strategies you can take when copying data:
This is the simplest approach, where the entire contents of the primary cluster
You want to copy all data from one QuasarDB timeseries to another. While QuasarDB does provide this functionality natively, we do provide you with the tools to do this yourself.
To copy a timeseries, the best solution is to create a custom application that reads all data from one timeseries and inserts it into another. This is similar to the approach taken for Copying data between two QuasarDB clusters
A clone snapshot is created using the following strategy:
An example of what the code could look like is provided with our Python API. You can find it at