Articles

The materials are divided by categories and tagged:

Overview

– overview materials that introduce YDB and the technologies used in it.

Use cases

– use cases of YDB.

Practice

– best practices for using YDB.

Database internals

– a detailed analysis of the internal implementation of YDB or its individual parts and mechanisms.

Releases

– an overview of new features and released versions of YDB.

Testing

– performance testing cases of YDB and comparisons with other similar-class DBMSs.

General

– generic materials.

When Postgres is not enough: performance evaluation of PostgreSQL vs. Distributed DBMSs

Database internals

When Postgres is not enough

The research presented is the result of our joint effort and close collaboration with Evgeny Efimkin, an expert in PostgreSQL who doesn’t work on YDB.

How we switched to Java 21 virtual threads and got a deadlock in TPC-C for PostgreSQL

Database internals

When Postgres is not enough

In this post, we present a case study on how we encountered a deadlock with virtual threads in TPC-C for PostgreSQL, even without the dining philosophers problem. This post might be helpful for Java developers who are considering switching to virtual threads.

Migrations in YDB using “goose”

Database internals

Migrations in YDB using goose

Any production process that works with a database will require a schema migration sooner or later. The migration updates the database’s table structure from one version to the next. Schema migrations can be done manually by executing an ALTER TABLE query or by using specialized tools. One such tool is called goose. In this article we see how goose provides schema management in a project and has supported YDB (a distributed open-source database) since v3.16.0.

About prepared statements, server-side compiled query cache, or how to efficiently cache queries in YDB

Database internals

How to efficiently cache queries in YDB

There are various ways to reduce the cost of SQL query execution in modern DBMS. The most common approaches are using prepared statements and query caching. Both methods are available in YDB. Their functionality and benefits are discussed in this article.

YDB meets TPC-C: distributed transactions performance now revealed

Database internals

YDB meets TPC-C

We are excited to present our first results of TPC-C*, which is industry-standard On-Line Transaction Processing (OLTP) benchmark. According to these results, there are scenarios in which YDB slightly outperforms CockroachDB, another trusted and well-known distributed SQL database.

database/sql bindings for YDB in Go

Database internals

Database/sql bindings for YDB in Go

YQL is a SQL dialect with YDB specific strict types. This is great for performance and correctness, but sometimes can be a bit daunting to express in a query, especially when they need to be parametrized externally from the application side. For instance, when a YDB query needs to be parametrized, each parameter has name and type provided via DECLARE statement. To explore more about this and see practical examples, read the detailed explanation in this article.

YCSB performance series: YDB, CockroachDB, and YugabyteDB

Database internals

YCSB performance series

It’s a challenge to implement a distributed database with strong consistency, ensuring high speed and scalability. YDB excels in these aspects, and our customers can attest to this through their own experiences. Unfortunately, we have never presented any performance numbers to a broader audience. We recognize the value of this information, and we are preparing more benchmark results to share.

Previous