• Stars
    star
    3,982
  • Rank 10,954 (Top 0.3 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 8 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions


License Release Telegram

YDB

Website | Documentation | Official Repository | Blog | YouTube | Twitter | LinkedIn

YDB is an open-source Distributed SQL Database that combines high availability and scalability with strict consistency and ACID transactions.

YDB Product Video

Main YDB Advantages

YDB is designed from scratch as a response to growing demand for scalable interactive web services. Scalability, strict consistency and effective cross-row transactions were a must for such OLTP-like workload. YDB is built by people with strong background in databases and distributed systems, who had an experience of developing No-SQL database and the Map-Reduce system for one of the largest search engines in the world. We found that YDB's flexible design allows us to build more services on top of it including persistent queues and virtual block devices.

Basic YDB features:

  • Fault-tolerant configuration that survive disk, node, rack or even datacenter outage;
  • Horizontal scalability;
  • Automatic disaster recovery with minimum latency disruptions for applications;
  • SQL dialect (YQL) for data manipulation and scheme definition;
  • ACID transactions across multiple nodes and tables with strict consistency.

Fault-tolerant Configurations

YDB could be deployed in three availability zones. Cluster remains available for both reads and writes during complete outage of a single zone. Availability zones and regions are covered in more detail in documentation.

Horizontal Scalability

Unlike traditional relational databases YDB scales out providing developers with capability to simply extend cluster with computation or storage resources to handle increasing load. YDB has desaggregated storage and compute layers which allow you to scale storage and compute resources independently.

Current production installations have more than 10,000 nodes, store petabytes of data and handle millions distributed transactions per second.

Automatic Disaster Recovery

YDB has built-in automatic recovery support to survive a hardware failure. After unpredictable disk, node, rack or even datacenter failure YDB remains fully available for reads and writes and restores required data redundancy automatically.

Multitenant and Serverless Database

YDB has support for multitenant and serverless setups. A user can run a YDB cluster and create several databases that share one pool of storage and have different compute nodes. Alternatively a user can run several serverless databases that share one pool of compute resources to utilize them effectively.

Supported Platforms

Minimal system requirements

YDB runs on x86 64bit platforms with minimum 8 GB of RAM.

Operating Systems

We have major experience running production systems on 64-bit x86 machines working under Ubuntu Linux.

For development purposes we test that YDB could be built and run under latest versions of MacOS and Microsoft Windows on a regular basis.

Getting Started

  1. Install YDB using pre-built executables, build it from source or use Docker container.
  2. Install command line interface tool to work with scheme and run queries.
  3. Start local cluster or container and run YQL query via YDB CLI.
  4. Access Embedded UI via browser for schema navigation, query execution and other database development related tasks.
  5. Run available example application.
  6. Develop an application using YDB SDK.

How to Build from Source Code

How to Deploy

How to Contribute

We are glad to welcome new contributors!

  1. Please read the contributor's guide.
  2. We can accept your work to YDB after you have signed contributor's license agreement (aka CLA).
  3. Please don't forget to add a note to your pull request, that you agree to the terms of the CLA.

Success Stories

Take a look at YDB web site for the latest success stories and user scenarios.

More Repositories

1

ydb-go-sdk

Pure Go native and database/sql driver for YDB
Go
141
star
2

ydb-python-sdk

YDB Python SDK
Python
87
star
3

ydb-java-dialects

The official YDB Dialects for Java ORM frameworks and migration tools.
Java
71
star
4

ydb-nodejs-sdk

YDB Node.js SDK
TypeScript
60
star
5

nbs

Network Block & File Store
C++
58
star
6

ydb-rs-sdk

Rust
48
star
7

ydb-kubernetes-operator

YDB Operator allows you to deploy your own YDB cluster in Kubernetes
Go
40
star
8

ydb-java-sdk

YDB Java SDK
Java
36
star
9

jaeger-ydb-store

Go
31
star
10

ydb-dotnet-sdk

YDB .NET SDK
C#
28
star
11

ydb-embedded-ui

TypeScript
27
star
12

ydb-php-sdk

PHP
26
star
13

ydb-sqlalchemy

YQL Dialect for SQLAlchemy
Python
21
star
14

ydb-jdbc-driver

YDB JDBC Driver
Java
18
star
15

ydb-api-protos

14
star
16

ydb-go-examples

Deprecated. See [examples in ydb-go-sdk repository](https://github.com/ydb-platform/ydb-go-sdk/blob/master/examples)
Go
12
star
17

ydb-presentations

YDB public talks, slides and recordings
Shell
11
star
18

ydb-cpp-sdk

YDB C++ SDK
C++
10
star
19

tpcc

TPC-C for YDB
Java
9
star
20

yoj-project

YDB ORM for Java (YOJ) is a lightweight ORM for immutable entities. It has native support for YDB and is battle-tested.
Java
8
star
21

gorm-driver

GORM YDB driver
Go
6
star
22

ydb-ui-components

TypeScript
5
star
23

ydb-go-genproto

Go
5
star
24

terraform-provider-ydb

Go
5
star
25

ydb-go-yc

Go
5
star
26

ydb-php-examples

PHP
4
star
27

ydb-go-sdk-opentracing

Go
4
star
28

ydb-go-sdk-zerolog

Go
4
star
29

ydb-grafana-datasource-plugin

Grafana datasource plugin for YDB
TypeScript
4
star
30

tpcc-postgres

TPC-C for PostgreSQL
Java
4
star
31

ydb-dotnet-examples

Code examples for YDB .NET SDK
C#
4
star
32

fq-connector-go

External data source connector for YDB Federated Query
Go
4
star
33

ydb-go-sdk-zap

Go
3
star
34

ydb-go-sql

Go
3
star
35

ydb-go-sdk-prometheus

Go
3
star
36

postgres-compatibility-tests

PLpgSQL
3
star
37

ydb-go-yc-metadata

Go
3
star
38

ydb-r2dbc-driver

YDB R2DBC Driver
Java
3
star
39

ydb-go-sdk-metrics

Deprecated: use ydb-go-sdk/v3/metrics package instead
Go
3
star
40

ydb-ansible

Ansible playbooks for YDB cluster deployment and maintenance
Shell
2
star
41

ydb-go-persqueue-sdk

YDB Persqueue Golang SDK
Go
2
star
42

ydb-nodejs-genproto

JavaScript
2
star
43

ydb-go-sdk-auth-environ

Go
2
star
44

ydb-go-sdk-otel

OpenTelemetry adapter for ydb-go-sdk
Go
2
star
45

benchhelpers

Scripts and tools to bench YDB and other DBs
Python
2
star
46

ydb-java-examples

Java
2
star
47

ydb-dotnet-yc

Yandex.Cloud libraries for YDB .NET SDK
C#
2
star
48

ydbcp

YDB Control Plane
Go
2
star
49

xorm

Fork of https://gitea.com/xorm/xorm.git
Go
1
star
50

ydb-importer

A simple tool to import data from JDBC data sources to YDB
Java
1
star
51

fluent-bit-ydb

Fluent-Bit go YDB output plugin
Go
1
star
52

ydb-dotnet-genproto

.NET codegen for YDB API protos.
C#
1
star
53

slo-tests

TypeScript
1
star
54

json2parquet

Simple streaming json2parquet converter
C++
1
star
55

postgres_vs_distributed

This repository contains config files used in our blog post
Python
1
star
56

ydb-kafka-sink-connector

Java
1
star
57

ydb-terraform

HCL
1
star