# Universal Storage

Universal storage allows you to support large-scale Online Transaction Processing (OLTP) and Hybrid Transactional and Analytical Processing (HTAP) at a lower total cost of ownership (TCO). Universal storage is a continuing evolution of the [columnstore](https://docs.singlestore.com/db/v9.1/create-a-database/columnstore.md), supporting transactional workloads that would have traditionally used the [rowstore](https://docs.singlestore.com/db/v9.1/create-a-database/rowstore.md).

Although rowstores are well-suited for transaction processing, it can be costly to store large datasets in rowstores, as they store all data in RAM. Because columnstores are disk-based, it is more economical to store data in columnstores as opposed to rowstores.

## Current Features in Universal Storage

Currently, universal storage has five features that allow columnstores to process transactional workloads more efficiently:

* [Hash indexes on columnstores](https://docs.singlestore.com/db/v9.1/reference/sql-reference/data-definition-language-ddl/create-table.md) which may optionally require uniqueness.
* Subsegment access, which speeds up access to a row in a columnstore. For more details, see item 6 in [Creating Efficient Columnstore Queries](https://docs.singlestore.com/db/v9.1/create-a-database/columnstore/how-the-columnstore-works/#UUID-a6ee7177-8029-15e5-a603-ff36c4e4ff41.md).
* [Row-level locking on columnstores](https://docs.singlestore.com/db/v9.1/create-a-database/columnstore/locking-in-columnstores.md).
* Joins on columnstores, where [one of the tables in the join uses a highly selective filter](https://docs.singlestore.com/db/v9.1/create-a-database/columnstore/highly-selective-joins.md).
* [Upserts](https://docs.singlestore.com/db/v9.1/query-data/advanced-query-topics/performing-upserts.md) on columnstores.

Additionally, [sparse compression for rowstores](https://docs.singlestore.com/db/v9.1/reference/sql-reference/data-definition-language-ddl/create-table.md) enables wide tables with a large percentage of `NULL` values to be stored in as little as half of the RAM.

## Related Content

See [SingleStore's Patented Universal Storage - Part 4](https://www.singlestore.com/blog/singlestore-universal-storage-episode-4/) for a general discussion of all the capabilities of Universal Storage.

***

Modified at: October 18, 2024

Source: [/db/v9.1/create-a-database/columnstore/universal-storage/](https://docs.singlestore.com/db/v9.1/create-a-database/columnstore/universal-storage/)

(An index of the documentation is available at /llms.txt)
