SingleStore Helios Sizing Guidelines
On this page
Overview
This document is designed to help users with capacity planning to size a SingleStore Helios deployment appropriately.
Size a Workload
|
Workspace Sizing Considerations | |
|
Description and How to Measure | |
|
Data Size |
It is important to understand how much data will be stored in SingleStore Helios. The most critical element for sizing is to understand how much of the data is the “working set,” which equates to how much data is required to meet the query latency requirements/SLA of an application. For example: A Fintech application displays stock performance over the last 30 days and stores the historical data for a full year for other types of analysis.
Even if the back-end database stores the previous year’s worth of market performance data (which is periodically queried but does not have an SLA), this would not impact the functionality of the application, and thus would not factor into sizing, as this data is stored in the object storage and not in the local cache storage. Data size can be used as a baseline/lower bound for sizing.
This can be expressed formulaically as:
Example: 4TB working set raw data
Note The total dataset can be larger than the working set. Questions
|
|
Data Ingest |
Data ingest is about how much, in both rows and bytes, and how fast data is written into the database. Questions
|
|
Query Shapes |
The “core queries” of an application are required to calculate the appropriate cluster size. Some core queries are run many times, possibly with different parameters (literals) but otherwise the same structure. It is important to understand the shapes of the core queries that are running as they can impact the performance of the database differently. A query shape (type) is the form of the query plan that determines how much work a query needs to do.
It is also important to identify queries that can run on one partition vs. For example: Filtering on Graphical profile plans as well as JSON profile plans will reveal the indexes being used. Consider The following in the JSON profile means it is touching all shards and scanning: For profile Questions
|
|
Latency |
Typically, customers will provide one or more latency targets for their core queries, such as a 5-second response time, or a range of response times for each core query. Questions
|
|
Concurrency |
Concurrency refers to the number of queries hitting the data at a given moment, including both typical and peak traffic. General numbers can be used to record the concurrency: 1, 5, 10, 20, 50, 100, 500, 1000, etc. Questions
|
|
Partitions |
As part of capacity planning, you need to determine how many partitions are required for optimal performance. SingleStore is a distributed cluster of nodes that talk to each other. The performance also depends on the types of queries run, whether they implement distributed joins, and how many are run concurrently. The general recommendation for most clusters is to have 4 CPU cores per database partition on each leaf. For example, if you have a cluster of 4 leaf nodes (a. It is also important to choose the number of partitions that are divisible by the number of leaves you have. However, if you set 18 partitions instead of 16 then you will not have evenly distributed data. You should consider the workload when deciding on the number of partitions per leaf. By default, the partition count and core count match 1:1, and you need to manually change the number of partitions to maximize the performance.
Questions
|
Workspace Size Capabilities
After gathering the sizing considerations outlined above, use the comparison table below to select an initial workspace size.
|
Workspace Size |
vCPU |
Memory (GB) |
Storage (TB) |
Optimal Working Set |
Target Query Latency |
Max Concurrent Queries |
Typical Use Cases |
|---|---|---|---|---|---|---|---|
|
S-4 |
32 |
256 |
1–2 |
<= 1 TB |
~ 100 - 500 ms |
Up to ~10 concurrent queries |
Small-scale analytics, development/testing, low concurrency workloads |
|
S-8 |
64 |
512 |
2–4 |
<= 2 TB |
~ 100 - 500 ms |
Up to ~100 concurrent queries |
Medium analytics, real-time dashboards, moderate concurrency |
|
S-16 |
128 |
1024 |
4–8 |
<= 3 TB |
~ 100 - 500 ms |
Up to ~1000 concurrent queries |
Large analytics, high-performance applications, higher concurrency |
|
S-32 |
256 |
2048 |
8–16 |
<= 4 TB |
~ 100 ms |
Up to ~10000 concurrent queries |
Enterprise analytics, ultra-fast queries, very high concurrency |
Comparative Performance for Capacity Planning
To estimate a workspace size, review the examples below and select the one that most closely resembles your requirements.
To determine the optimal workspace size, test the core queries with the selected workspace size and either increase or decrease the size until it fulfills your latency requirements.
|
Workspace Sizing Examples | |||||
|---|---|---|---|---|---|
|
Workload Size |
Small Analytics Workload |
Medium Analytics Workload |
Large Analytics Workload |
Small Transactional Workload |
Large Transactional Workload |
|
Data Size * |
500GB |
7TB |
25TB |
2 TB (working set) |
1 TB (working set) |
|
Data Ingest |
< 5,000 RPS |
< 5,000 RPS |
> 25,000 RPS |
~5,000 inserts/sec from application |
~10,000 inserts/sec from application |
|
Query Latency |
< 1s |
(Refer to latency for more information) |
< 30 s |
< 500 ms |
< 100 ms |
|
Query Shapes |
Analytical queries and summary statistics on fact and reference tables |
Analytical queries powering nearline analytics and user-defined metrics |
Majority analytical queries with large table scans |
Transactional queries with fast analytical smaller queries |
Large table scans and aggregations. |
|
Concurrency tested (QPS) |
10 - 50 |
< 50 |
100 |
100 |
100 |
|
Proposed Workspace Size (About workspace sizes) |
S-1 |
S-8 |
S-12 |
S-8 |
S-20 |
* Data sizes shown are compressed, where the compression rate can vary up to 80% based on the type of data.
Note
Working set refers to the data that needs to be queryable in a timely manner (typically within 5–10 minutes).
Last modified: