What is the SingleStore and why should we use it?
Tags: postgres, machinelearning, bigdata, programming
Published: 2022-02-04 07:16:12

## Introduction

Hi, My name is Farhad Hanifayev working in IT industry with more than 6 years of experience.

If you are tired of playing with large amounts data, no worry! 
SingleStore is here for you.

I first read about SingleStore when I saw this Migrating from PostgreSQL to Drive 20-100X Faster Performance event (https://bit.ly/S2-postgres) which was super intriguing. How could it deliver that sort of performance at scale, and what exactly is **SingleStore**?

SingleStore is the ideal all-in-one database for operational analytics and AI/ML-powered applications that requires fast data ingest, high performance queries and elastic scaling with familiar relational SQL.

## How SingleStore DB Works

SingleStore DB is a distributed, relational database that handles both transactions and real-time analytics at scale. 

It is accessible through standard SQL drivers and supports ANSI SQL syntax including joins, filters, and analytical capabilities (e.g. aggregates, group by, and windowing functions).

SingleStore DB scales horizontally on cloud instances or industry-standard hardware, providing high throughput across a wide range of platforms. 

The SingleStore DB database maintains broad compatibility with common technologies in the modern data processing ecosystem (e.g. orchestration platforms, developer IDEs, and BI tools), so you can easily integrate it in your existing environment. 

It features an in-memory rowstore and an on-disk columnstore to handle both highly concurrent operational and analytical workloads. 

SingleStore DB also features a data ingestion technology called SingleStore Pipelines that streams large amounts of data at high throughput into the database with exactly-once semantics.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ijfoll16038gxw2i3r1v.png)

## Advantages

**1. Single database**
A one-stop, single modern database that unifies data models and data types

**2. Operational Analytics**
Low-latency, consistent queries and processing for data-intensive workloads

**3. Concurrency**
Handles transactions and analytics, effortless and concurrently

**4. Data Agnostic**
Support all data types - structured, semi-structured, unstructured  - across hybrid, on-premises, and cloud environments

**5. Management**
Generates real-tune insights via single-pane-of-glass experience

## Comparison to other database platfrom

You can compare SingleStore to other database platform in here: https://singlestore.com/comparisons


## How to get started

This video will help you get started with SingleStore.

{% youtube bIFrJJkUftA %}


## Resources

Github repository: https://github.com/memsql

For tools and monitoring: https://www.singlestore.com/manage

Support: https://support.singlestore.com

Developer Hub: https://developers.singlestore.com

Community Forum: https://www.singlestore.com/forum

## Conclusion

SingleStore excels at real-time and high throughput query use cases. It is a great general purpose database for running both transactional and analytic workloads. However, there are use cases which SingleStore is not designed to run. Some of these are listed below:

**1. Object store**

SingleStore is not designed to be a blob store or “data lake”. 

It is designed for high value data that is structured or semi-structured and ready to query. 

SingleStore has open-source connectors for integrating with a variety of great object stores, including Amazon S3 and Hadoop File System (HDFS).


**2. Running on low hardware**

SingleStore is not designed to run on “micro instances”, mobile phones or other low-powered computers. 

It is designed to run on machines with at least 4 cores and 8GB of RAM. 

The easiest way to run SingleStore for development is to use the SingleStore Cluster-in-a-Box Docker deployment option.

**3. In-process database.**

SingleStore is not run as a library or in-process with an application. 

SingleStore is a distributed database which runs in separate processes from the application, and applications connect to SingleStore via a client driver.

**4. Serializable transactions**

SingleStore supports extremely fast, distributed READ-COMMITTED transactions, as well as SERIALIZABLE transactions through the use of SELECT … FOR UPDATE.