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?

Image alt
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.

Image alt
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.

Image alt
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.

Image alt
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.

Image alt
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.

Image alt
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.

How does YDB’s query performance compare against other Distributed SQL DBMS?

YCSB is the most well-known key-value benchmark suite. We’ve prepared a performance study, comparing the key-value performance of YDB, CockroachDB, and YugabyteDB.

Read more
Image alt

Who uses YDB?

card-image

Metrika

Metrika is one of the largest web and mobile analytics platforms in the world. It relies on YDB to build user sessions on the fly.

Migrating to YDB allowed Metrika to expand the amount of stored data and query load indefinitely. Now one of their databases contains over 400 TB of data and can withstand loads of over 1,000,000 RPS.

card-image

Yandex Market

Yandex Market is one of the largest e-commerce services in the CIS region. Its key functionality, like shopping cart, checkout, and discount, uses YDB to store state.

Choosing YDB as a database management system allowed Market Cart to withstand a hundredfold load spikes while maintaining strict response time guarantees.

card-image

Auto.ru

Auto.ru reduced CPU consumption for the Jaeger trace database threefold after moving to YDB, making it possible to write 500,000 traces/sec without sampling.

The successful implementation of YDB as a trace storage proved the applicability and key properties like scalability, fault-tolerance, and strong consistency. As a result, Auto.ru then chose YDB as a relational database for some of their microservices.

card-image

Alice

Alice is a voice assistant and a smart home ecosystem. After moving to YDB, the Alice team solved the synchronization issues they had after switching between primary database servers or turning back data centers after maintenance.

With YDB they reduced the amount of database-related toil for their DevOps team, expanded the amount of stored data to hundreds of terabytes and the load to hundreds of thousands of RPS. Moving to YDB made it possible to abandon manual data sharding and obtain strong consistency in a cluster spanning three datacenters.

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 \
-p 2135:2135 -p 8765:8765 -p 2136:2136 \
-v $(pwd)/ydb_certs:/ydb_certs -v $(pwd)/ydb_data:/ydb_data \
-e YDB_DEFAULT_LOG_LEVEL=NOTICE \
-e GRPC_TLS_PORT=2135 -e GRPC_PORT=2136 -e MON_PORT=8765 \
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.