Yandex Database (YDB) is a horizontally scalable distributed fault-tolerant DBMS. YDB is designed to meet high performance requirements. For example, a typical server can handle dozens of thousands of queries per second. The system is designed to handle hundreds of petabytes of data.
YDB is a regional database and is located in three availability zones.
- Strict consistency, which can be lowered in order to raise performance.
- Support for queries written in YQL (an SQL dialect for working with big data).
- Automatic data replication.
- High availability with automatic failover in case a server or availability zone goes offline.
- Automatic data partitioning as data or load grows.
YDB may operate in two modes:
Dedicated mode: In this mode, separate virtual hosts with the specified resources are allocated to the database. You set the number of hosts, their computing resources, storage parameters, and cloud networks yourself.
If DB computing resources are not enough to handle the current load, the query processing decreases to the point of denial of service. To avoid this, make sure you add computing resources to the database in time.
This mode is convenient if you have a good idea of the amount of resources your database needs to operate and can predict peak loads. When using this mode, you pay for the allocated computing resources, storage, and backups, regardless of the number of DB operations. Read more about pricing in the pricing policy.
Serverless mode: In this mode, you can deploy a database in a served environment without creating separate hosts. You don't need to monitor computing resources, networks, or other parameters. The service automatically provides all the resources that the DB needs to run and scales them based on the load.
Serverless mode is good for small projects that do not require a separate server or for tasks with uneven hard-to-predict load. In this mode, you pay for the actual DB operations and for storing data and backups. Read more about pricing in the pricing policy.
The Yandex Database serverless mode supports data operations using both the YDB API and Document API, an Amazon DynamoDB-compatible HTTP API. You can use this API to perform operations on document tables.
YDB supports a relational data model and manages tables with a predefined schema. To make it easier to organize tables, directories can be created like in the file system.
YDB supports high-performance distributed ACID transactions that may affect multiple records in different tables. It provides the serializable isolation level, which is the strictest transaction isolation. You can also lower the level of isolation to raise performance.