On this page
SingleStore stores data remotely in an object store (unlimited storage database) or locally in a workspace, depending on the cloud provider you have chosen for the workspace deployment.
SingleStoreDB automatically manages data across a three tiered storage architecture comprised of memory, local cache, and storage.
Unlimited Storage allows data loaded into SingleStoreDB to be seamlessly moved between memory, persistent cache, and storage.
Although the size of a database is effectively unlimited on public cloud objects stores, the following factors related to the local storage space limit the number of databases and tables you can create.
To avoid performance problems, there should be sufficient local storage space to hold the working set of all your databases, combined.
There is a per-database local storage (even if the database is empty) and memory overhead, and a per-table memory overhead for metadata.
The amount of local storage space required per partition varies depending on the size of the blob cache which can grow and shrink based on the workload.
All columnstore data is stored externally in an object store.
Recently accessed columnstore data objects are also cached locally in the compute workspace's persistent cache.
All rowstore data is stored locally in compute workspace memory and externally in object storage.
Data updates made on the workspace are flushed to the object store asynchronously.
Typically, the object store will be no more than one minute behind the latest update on the workspace.
In an unlimited storage database:
When you run the CREATE DATABASE command on AWS, Azure, and GCP workspaces, SingleStoreDB automatically creates an unlimited storage database.
RESTORE DATABASE is run, data will be automatically restored into an unlimited storage database.
Memory: SingleStoreDB stores data in memory when using Rowstore, when caching data for Columnstore, and for operations which utilize the high performance characteristics of system memory.
Persistent Cache: This tier is comprised of high performance block storage and serves Columnstore data and persists Rowstore data.
Storage: This is a durable and persistent layer stored within the cloud object storage.
For the Standard edition use the
SYNC BOTTOMLESS DATABASE command to sync data to bottomless before doing a major online operation like resizing a cluster or upgrading an application.
PITR is a user-initiated operation that restores a unlimited storage database to a point in time.
The PITR window or timeline is the length of the retention period.
When you invoke PITR, you can specify either a timestamp or a milestone.
Attaching (restoring) an unlimited storage database can be faster than restoring an equivalent local storage database.
To work with PITR, use the following commands:
CREATE DATABASE (Create an unlimited storage database)
CREATE MILESTONE (Create a milestone, which is a marker to which you can restore)
ATTACH DATABASE (Attach an unlimited storage database and bring the database online)
DETACH DATABASE (Bring an unlimited storage database offline)
For a basic walkthrough of creating milestones and restoring a database to milestone, see Attach an Unlimited Storage Database Using Point-in-Time Recovery (PITR).
A database can be restored to any point in time via the Cloud Portal or the
ATTACH DATABASE command.
See Disaster Recovery for data retention and other related information.
In this section
Last modified: September 18, 2023