# Cluster Config Files

## Cluster Overview

SingleStore is a distributed, relational, database that consists of a set of hosts and nodes.

* Each *host* has a collection of SingleStore binaries and one or more instances of a running [memsqld](https://docs.singlestore.com/db/v9.1/reference/configuration-reference/cluster-config-files/singlestore-server-config-files.md) process.&#x20;
* Each `memsqld` process is a *node*, which can be of type *aggregator* or *leaf*.
* The set of nodes is referred to as a *cluster*, which constitutes a singular SingleStore database with a single point of entry. Refer to [Cluster Components](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/cluster-components.md) for more information.

During deployment, SingleStore server binaries are installed on each host. One set of  binaries can run multiple nodes on the same host. While a single node can be deployed on a single host, multiple nodes are typically deployed on multiple hosts which have multiple processors.

The SingleStore server is used to run multiple nodes, where each node is comprised of the following core components:

* Two `memsqld` processes:

  * The main `memsqld` engine process, which has:

    A port on `3306`:
    ```shell
    sudo lsof -p <memsqld_pid> | grep localhost

    ```
    ```output

    memsqld 2388 memsql 71u IPv4 156936 0t0 TCP localhost:mysql->localhost:41648 (ESTABLISHED)
    ```
    An open socket for external connections:
    ```shell
    sudo lsof -p 2388 | grep -i memsql.sock

    ```
    ```output

    memsqld 2388 memsql 13u unix 0xffff9d2f26f7b180 0t0 31573 memsql.sock
    ```
  * A child `memsqld` process, referred to as the "command process.”

    This process has a socket open to communicate with the main `memsqld` engine process and for spawning other child `memsqld` processes for async compilation / extractors / transforms for pipelines and other related tasks.
* A few auxiliary processes, such as `memsqld_safe` which starts up `memsqld` in the event of a crash. Refer to [memsqld and memsqld\_safe processes](https://support.singlestore.com/hc/en-us/articles/4409547783956-memsqld-and-memsqld-safe-processes) for more information.
* A node configuration file, [memsql.cnf](https://docs.singlestore.com/db/v9.1/reference/configuration-reference/cluster-config-files/singlestore-node-config-files.md)

SingleStore ensures high availability (HA) by storing redundant node data in the cluster. If a node fails to serve its data when requested, a copy of the node's data will be served instead. This automatic failover mechanism prevents data loss due to single-node failures. Refer to [High Availability](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/high-availability.md) for more information.

## In this section

* [SingleStore Server Config Files](https://docs.singlestore.com/db/v9.1/reference/configuration-reference/cluster-config-files/singlestore-server-config-files.md)
* [SingleStore Node Config Files](https://docs.singlestore.com/db/v9.1/reference/configuration-reference/cluster-config-files/singlestore-node-config-files.md)
* [SingleStore Toolbox Config Files](https://docs.singlestore.com/db/v9.1/reference/configuration-reference/cluster-config-files/singlestore-toolbox-config-files.md)

***

Modified at: January 2, 2025

Source: [/db/v9.1/reference/configuration-reference/cluster-config-files/](https://docs.singlestore.com/db/v9.1/reference/configuration-reference/cluster-config-files/)

(An index of the documentation is available at /llms.txt)
