Cluster Architecture
On this page
Unique Design
SingleStore is a real-time hybrid transaction/analytics processing (HTAP) database designed with a distributed SQL architecture.
Clusters further enhance this distributed architecture by freeing databases from the confines of a single workload, delivering true separation of compute and storage.
Cluster Architecture
Clusters are built using the native data replication engine built into SingleStore.
Combined with SingleStore's query code generation and tiered Universal Storage architecture, this allows clusters to deliver extremely low latency query response, highly concurrent access and fast parallel streaming ingest while automating the movement of data across workloads.
Implementation
Each cluster is a part of a Group, and Databases can be attached or detached from any cluster within a group.
Databases can be attached to multiple clusters simultaneously.
The R/W attachment writes logs/blobs to shared storage and sends logs to the R/O attached clusters asynchronously.
For example, a customer-facing SaaS application is running on cluster 1 and writing data into DB01.
Attachments are created on each database, and it is possible for a cluster to have a combination of R/W and R/O attachments.
Writes made to a database from a cluster with an R/W attachment will appear on clusters with R/O attachments near instantaneously.
All new writes to a database are typically replicated immediately, allowing clusters with R/O attachments to serve real-time workloads without waiting for data to load or going through complex ETL processes.
There are two situations in which replay latency can happen:
-
Load replay needs the CPU to go through the log, so if this part is slowed down, replay will fall behind.
-
SingleStore processes and saves transactions in a certain order, but it does not always commit them in that order.
For example, if you have a big load followed by a small load, the system might finish the small task first. However, when it needs to replay or sync this on a replica, the replica has to wait for the big load to finish before replaying the small one.
When attaching a database to a cluster as R/O, all new data written will be replicated to the new cluster.
When sizing the cluster ensure that the selected size can accommodate the size of the working data set.
For example, if a rowstore table is replicated to a small R/O cluster, replay on the R/O cluster will stop once the memory limit is reached, and the database can become unrecoverable.
Last modified: