YDB background

YDB

YDB is a versatile open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions. It accommodates transactional (OLTP), analytical (OLAP), and streaming workloads simultaneously.

What can I do with YDB?

Transactional workloads (OLTP)

Entrust YDB with keeping your application state regardless of how large or frequently modified it is. Handling petabytes of data and millions of transactions per second is not an issue.

Analytical workloads (OLAP)

Build analytical reports based on data you store in YDB with performance comparable to database management systems purpose-built for this use case. No compromises on consistency and availability are necessary.

Streaming workloads

Use the YDB topics feature to reliably send data between your applications or consume change data capture feed from regular tables. Exactly-once and at-least-once semantics are available to choose from.

Why YDB?

True elastic scalability

Add or remove nodes on the fly to easily scale up and down as needed. YDB has separate compute and storage layers, which allows to independently add disk capacity or CPU resources depending on what is scarce under the current workload.

Fault-tolerance

YDB is designed to work in three availability zones, ensuring availability even if the whole availability zone goes offline. It recovers automatically after a disk, server, or data center failure with minimum latency disruptions for applications.

User-friendliness

Working with a YDB cluster feels like working with a limitless single-node DBMS thanks to strong consistency, ACID transactions, high-performance queries, fast data ingestion with a familiar SQL dialect and JSON API support.

Versatility

With support for various kinds of workloads, YDB alone can replace multiple data storage and processing systems or the whole enterprise data ecosystem in a given company.

Open Source

YDB source code is published under the Apache 2.0 license, one of the most permissive true OSS licenses, so there’s no risk of cloud or vendor lock-in.

Compatibility with any environment

YDB can be deployed in Kubernetes, in any cloud environment, or in on-premise datacenters. Local experimentation on a laptop or desktop is also possible.

Performance evaluation of PostgreSQL vs Distributed DBMS

TPC-C is the most well-known OLTP benchmark suite. We’ve prepared a performance study, comparing the performance of PostgreSQL, YDB, and CockroachDB in fault-tolerant configurations.

Read more

Who uses YDB?

What are the typical usage scenarios?

Dealing with spiky workloads

YDB’s elasticity allows to quickly change the amount of resources allocated to a database, adjusting the throughput in accordance with the query load. Easily increase or decrease the amount of computing resources needed in line with upcoming events like Black Friday or as the result of your planned marketing campaigns.

Observability data storage

Column-oriented tables in YDB work great for storing logs and metrics, with simple access via SQL interface. Also, low computing resource consumption and scalability make Jaeger trace recording cost-efficient and easy to use.

Document database

Even though YDB uses strict typing, support for the JSON data type and functions expands YDB’s capabilities as a document database.

Could you briefly explain YDB to me in a video?

Sure, here you go →

How to get started?

Docker

Pull the current latest version of the YDB Docker image:

docker pull cr.yandex/yc/yandex-docker-local-ydb:latest

Create a working directory and start the local YDB container from it:

docker run -d --rm --name ydb-local -h localhost \
--platform linux/amd64 \
-p 2135:2135 -p 8765:8765 -p 2136:2136 \
-v $(pwd)/ydb_certs:/ydb_certs -v $(pwd)/ydb_data:/ydb_data \
-e GRPC_TLS_PORT=2135 -e GRPC_PORT=2136 -e MON_PORT=8765 \
-e YDB_USE_IN_MEMORY_PDISKS=true \
cr.yandex/yc/yandex-docker-local-ydb:latest

Go to the Getting started › Self-hosted deploy › Docker in the YDB documentation to get further information.