SingleStore 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). SingleStore is a continuing evolution of the columnstore, supporting transactional workloads that would have traditionally used the rowstore.
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 SingleStore
Currently, SingleStore has five features that allow columnstores to process transactional workloads more efficiently:
- Hash indexes on columnstores 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.
- Row-level locking on columnstores.
- Joins on columnstores, where one of the tables in the join uses a highly selective filter.
Additionally, sparse compression for rowstores enables wide tables with a large percentage of
NULL values to be stored in as little as half of the RAM.