Manage Storage and Database Capacity for MariaDB Xpand
This page is part of MariaDB's Documentation.
The parent of this page is: Storage Management for MariaDB Xpand
Topics on this page:
Overview
Xpand monitors the amount of space available within your cluster and proactively warns of potential capacity issues. The thresholds for determining a cluster's capacity are configurable and described below.
Note
For additional information, see "Allocate Disk Space for Fault Tolerance and Availability with MariaDB Xpand" or "In-Memory Tables with MariaDB Xpand" for guidance in allocating memory and configuring alerts.
Types of Storage
To understand how to manage the Device and Database Utilization, one must first understand how Xpand allocates disk space. Xpand creates and allocates space in two different files:
device1 (main storage)
The main device1 storage is used for all database data, undo logs, temporary tables, binlogs, Xpand system tables, as well as temporary storage used for query execution. The initial size of the device1
file is auto-detected by the Xpand installer, but can also be configured manually. Post-installation, the device1
file's size can be extended using ALTER CLUSTER RESIZE DEVICES. To decrease the size of the device1
file, see "Decrease device1 Size for MariaDB Xpand".
Xpand expects the device1
file to be the same size on every node. By default, on database startup, Xpand will automatically attempt to resize the device1
file on each node to match the largest device1
file in the cluster. To disable this feature, set device_
Temporary storage is used for sorting and grouping of large query results and is stored in device1. There are two global variables to control temp space usage:
device_
temporary_ space_ limit_ bytes limits the amount of space usable for temporary storage. device_
temporary_ space_ preallocate_ bytes specifies the amount of space that will be pre-allocated for temp space (guaranteed for use by temp).
Setting device_
device1-redo (write-ahead log)
The write-ahead log (WAL) is stored in the device1-redo
file. This size of this file is 4GB and is not configurable.
Checking Storage Utilization
See how much space is in use by using clx command-line administration tool
shell> /opt/clustrix/bin/clx space
nid | Hostname | Status | Undo | Perm | WAL | Temp | Used | DB Total | FS Free
----+--------------+---------+-----------------+-----------------+------------------+------------+-----------------+----------+--------
16 | eukanuba003 | OK | 321.8M (0.04%) | 674.7G (79.4%) | 1024.0M (0.12%) | 0 (0.00%) | 760.1G (89.4%) | 850.0G | 113.9G
17 | karma183 | OK | 313.5M (0.04%) | 664.6G (78.2%) | 1024.0M (0.12%) | 0 (0.00%) | 750.1G (88.2%) | 850.0G | 113.9G
18 | eukanuba002 | OK | 324.3M (0.04%) | 669.5G (78.8%) | 1024.0M (0.12%) | 0 (0.00%) | 755.0G (88.8%) | 850.0G | 113.9G
19 | eukanuba001 | OK | 339.7M (0.04%) | 671.0G (78.9%) | 1024.0M (0.12%) | 0 (0.00%) | 756.4G (89.0%) | 850.0G | 113.9G
20 | eukanuba005 | OK | 277.3M (0.03%) | 668.7G (78.7%) | 1024.0M (0.12%) | 0 (0.00%) | 754.1G (88.7%) | 850.0G | 113.9G
21 | eukanuba004 | OK | 420.3M (0.05%) | 678.6G (79.8%) | 1024.0M (0.12%) | 0 (0.00%) | 764.1G (89.9%) | 850.0G | 113.9G
22 | eukanuba006 | OK | 397.0M (0.05%) | 670.4G (78.9%) | 1024.0M (0.12%) | 0 (0.00%) | 755.9G (88.9%) | 850.0G | 113.9G
23 | karma184 | OK | 479.9M (0.06%) | 674.8G (79.4%) | 1024.0M (0.12%) | 0 (0.00%) | 760.3G (89.5%) | 850.0G | 113.9G
----+--------------+---------+-----------------+-----------------+------------------+------------+-----------------+----------+--------
2.8G (0.04%) | 5.2T (79.0%) | 8.0G (0.12%) | 0 (0.00%) | 5.9T (89.1%) | 6.6T | 910.9G
Global Variables
The default values for these global variables are optimal for most workloads.
Variable | Description | Default |
---|---|---|
| Automatically resize all (online) devices in the cluster to match the largest device |
|
| Maximum number of bytes allowed to be used for temporary containers. |
|
| The amount of space that will be pre-allocated for temporary storage |
|
Database Storage Thresholds
Global variables establish the database storage thresholds for a cluster. When the first level of thresholds are exceeded, alerts are sent. If storage utilization continues to increase, user queries will begin to fail once the next set of thresholds are exceeded. Finally, if storage utilization continues to grow, system queries (including for critical internal processes) will be killed. Once the database is completely full, the database may become inoperable. For suggestions on freeing space, see "Resolving Low Space Issues" below.
Variables
The following variables are use to set thresholds for device1
utilization.
Variable | Description | Default Value | Allowed Values |
---|---|---|---|
| Database almost full message interval in seconds. |
| Minimum: Maximum: |
| Warn about user queries when space usage surpasses this percentage. |
| Minimum: Maximum: |
| Fail user queries when space usage surpasses this percentage. |
| Minimum: Maximum: |
| Warn about system queries when space usage surpasses this percentage. |
| Minimum: Maximum: |
| Fail user queries when space usage surpasses this percentage. |
| Minimum: Maximum: |
User queries are transactions which originate with an end user whereas system queries are internal Xpand processes such the Rebalancer, binlog deletes, statd, etc.
Alert Messages
The following alerts are triggered when the corresponding global variable is exceeded. This is evaluated each time Xpand allocates space and any alerts necessary are sent every databasefull_
Global Variable Evaluated | Alert Triggered | Level | Description | Message Shown |
---|---|---|---|---|
| DATABASE_ | warning | Database space low | Database space is nn% used. Soon user queries will fail. |
| DATABASE_ | warning | Database space extreme | Database space is nn% used. User queries will now fail. |
| DATABASE_ | critical | Database space critical | Database space is nn% used. User queries will fail, and soon system queries will fail. |
| DATABASE_ | critical | Database space exhausted | Database space is nn% used. User queries and system queries will now fail. |
Resolving Low Space Issues
When you receive any of the alerts above, some action will be necessary to prevent the capacity of device1
from reaching the next threshold.
Some resolutions to consider:
Add nodes to the cluster by Scaling Out.
Increase available space on the cluster by:
Deleting data
Enlarge the size of the
device1
file on all nodes by using ALTER CLUSTER RESIZE DEVICES.Terminate and reschedule long running transactions such as ALTERs, Backups, and long-running transactions. These halt garbage collection and cause the undo log to temporarily grow in size.
If you need assistance, please contact MariaDB Support.