DEV Community

Cover image for What is the SingleStore and why should we use it?
winner
winner

Posted on

What is the SingleStore and why should we use it?

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

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.

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.

Oldest comments (2)

Collapse
 
railsjack profile image
Rails Jack

Good reading.
So have you ever tried it?

Collapse
 
winner profile image
winner

Yes, I have already tried it and am using now for my project.
Singstore provides $500 worth of Free usage if you sign up.