# Distributed Architecture

## Design Principles

SingleStore distributed architecture is designed to be straightforward, simple, and fast. The architecture is designed around a few key principles:

| Principle                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                                |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Performance first                                                                                           | SingleStore is designed to enable high throughput on concurrent workloads, and is a highly scalable distributed system. Thecluster (A collection of SingleStore aggregator and leaf nodes.)can be scaled out at any time to provide increased storage capacity and processing power. SingleStore can process billions of rows per second onclusters of commodity hardware. |
| Separate theclusterinto two tiers (aggregators and leaves) and push as much work as possible to the leaves. | This enables you to scaleclustercapacity and query performance online by adding additionalleafnodes to acluster. SingleStoreclusteroperations are dynamic - you will never have to restart anyaggregator or leafnodes while managing thecluster.                                                                                                                           |
| No single point of failure                                                                                  | By running theclusterwith redundancy, you ensure that every partition of data is backed up to a hot standby. In the event of anyleafnode failure, SingleStore will automatically fail over replica partitions.The aggregator tier is also resilient to failure.                                                                                                            |
| Powerful but simpleclustermanagement                                                                        | The distributed system exposes[REBALANCE PARTITIONS](https://docs.singlestore.com/db/v9.1/reference/sql-reference/cluster-management-commands/rebalance-partitions.md), which lets you scale up and down thecluster, restore data in the event of failure, and recreate theclusterfrom scratch in the event of a complete system failure.                                  |
| No implicit data movement                                                                                   | In the event of a failure, SingleStore promotes just enough replica partitions to put theclusterback online. SingleStore will never rebalance or move data around implicitly.                                                                                                                                                                                              |

The other Distributed Architecture topics explain the high-level concepts behind how SingleStore accomplishes these goals.

## In this section

* [Cluster Components](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/cluster-components.md)
* [Interaction of Cluster Components](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/interaction-of-cluster-components.md)
* [Flexible Parallelism](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/flexible-parallelism.md)
* [Sharding](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/sharding.md)
* [Distributed DML Query Execution](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/distributed-dml-query-execution.md)
* [Distributed Joins](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/distributed-joins.md)
* [Write Queries](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/write-queries.md)
* [Distributed SQL Surface Area](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/distributed-sql-surface-area.md)
* [High Availability](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/high-availability.md)

***

Modified at: July 29, 2024

Source: [/db/v9.1/introduction/distributed-architecture/](https://docs.singlestore.com/db/v9.1/introduction/distributed-architecture/)

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