Partition
On the Partition screen, you can check how evenly a table's data is divided across the cluster nodes. SingleStore splits a table into multiple partitions and distributes them across nodes; if this distribution is skewed to one side, only certain nodes end up doing more work. This screen shows the skew as a deviation from the average, helping you find tables whose balance is broken.
What is a partition
Simply put, a partition is the unit by which a large table is split into pieces scattered across nodes. When data is spread evenly, the nodes can share the work and run faster. Conversely, when the pieces pile up on one node, that node becomes a bottleneck. That is why, in a distributed database, it matters whether partitions are spread evenly.
Partition layout map (by host)
When you select a cluster at the top of the screen, it shows, in a grid, which host (leaf node) each partition is placed on, per database. The total number of partitions (for example, PARTITIONS=16) is shown for each database, and the color of each partition cell distinguishes its skew state. You can narrow the scope with the all-hosts and all-DB filters.
| State | Meaning |
|---|---|
| Hot | 2x or more of the average |
| Warning | 1.5x or more of the average |
| Normal | Within the normal range |
| Empty | A partition with no rows (rows=0) |
| Offline | An offline partition |
Table-level Partition Distribution
At the center of the screen is the table-level partition distribution table. It shows how evenly each table is distributed across nodes with Avg Deviation. Avg Deviation is Max / Avg, the multiple indicating how many times the largest partition is over the average. The closer the value is to 1x, the more evenly distributed it is; the larger it is, the more it is skewed toward a particular partition. By default the table is sorted in descending order of Avg Deviation, so the most skewed tables rise to the top.
The columns of the table are as follows.
| Column | Description |
|---|---|
Table | The database.table name |
Storage | Storage engine (ROWSTORE / COLUMNSTORE) |
Shard Key | The column used to divide data across nodes |
Cardinality | The number of distinct values of the Shard Key |
Partitions | The total number of partitions |
Used Parts | The number of partitions that contain data |
Total Rows | The total number of rows |
Total Size | The total size |
Max Part Size | The size of the largest partition |
Avg Deviation | The skew multiple across nodes (Max / Avg) |
Looking at Shard Key and Cardinality together helps you pinpoint the cause of skew. When the Shard Key has few distinct values (low cardinality), the same values tend to pile up in one partition, making skew more likely.
The state is classified by the Avg Deviation value as follows.
| State | Criteria |
|---|---|
| Healthy | < 1.5x |
| Warning | 1.5x ~ 2x |
| Critical | ≥ 2x, or empty partitions exist |
Tables that do not meet the per-node statistics collection threshold are hard to evaluate for distribution, so they are treated as N/A and excluded from the table. This behavior keeps the comparison to reliable data only. You can adjust the display scope with the all-states and Top 5 filters.
Row Count Growth (Top 5 Hot Partitions)
Shows the trend of the top 5 partitions whose row count is growing the fastest. Each item is shown in the form P#partition_number table (node) (for example, P#9 merge_active_demo (LF-153)). Partitions whose data is growing rapidly may soon break the distribution balance, so it helps to look at them in advance.
Partition detail drawer
Clicking a table row in the table opens the partition detail drawer. The drawer shows disk and memory usage as gauges in two areas, along with key metrics (KPIs) such as row count, size, and skew.
Query point
The screen uses the RangeTimeSelector, with a default range of today (from 00:00 to 00:00 the next day). With the Quick buttons, you can quickly select 6 hours, 12 hours, today, yesterday, 2 days ago, 7 days ago, or 30 days ago.
Partition data is collected at 1-hour intervals. If you set the query range to shorter than 1 hour, data may not appear, so setting it to 1 hour or longer is recommended.
If the query range is shorter than 1 hour or exceeds 24 hours, an information box appears on the screen. The values shown are the last collected values within the range (LAST-ONLY).