Database Essentials

This article describes the essentials of Exasol databases and clusters.

Databases and clusters

An Exasol database comprises one or more clusters that handle all query operations. A cluster is a group of servers, each having its own CPUs and main memory (RAM). The size of the cluster defines its compute power based on the total number of CPUs and RAM. Using multiple clusters makes it possible to separate workloads between teams or tenants and allow for greater concurrency.

Increasing the compute power in a cluster is referred to as vertical scaling. Adding more clusters is referred to as horizontal scaling.

The first cluster of a database is called the main cluster, while all other clusters are called worker clusters. The main cluster has a special role: it communicates with all worker clusters and ensures that they have a consistent view of transactions and metadata. Each cluster has a direct connection with the end users and with the central data store, and only metadata is transferred between the clusters.

Worker clusters can only run if the main cluster is running. Stopping the main cluster will also stop all worker clusters in the database.

Object storage

Data and metadata for the database are stored in a central data store such as an S3 bucket, not in the clusters. All clusters in a database access the same underlying data and metadata. Changes that are persisted from one cluster are persisted in the data store and are also persistent for all other transactions in the database, regardless of which cluster they are connected to.

Exasol databases must be stored in EXAStorage Data Volumes. At least one Data Volume has to be created before a database can be created therefore. See Volumes Overview for details. Only one database can actively use a volume. Even though it is possible to create multiple data volumes and multiple databases using these volumes inside the same Exasol cluster, this is not recommended for production systems.