Home

Awesome

<img src="https://cloud.yugabyte.com/logo-big.png" align="center" alt="YugabyteDB" width="50%"/>

License Documentation Status Ask in forum Slack chat Analytics

What is YugabyteDB?

YugabyteDB is a PostgreSQL-compatible, high-performance, cloud-native, distributed SQL database. It combines the benefits of traditional relational databases with the scalability of NoSQL systems, making it suitable for applications that require both transactional consistency and the ability to handle large amounts of data. It is best suited for cloud-native OLTP (that is, real-time, business-critical) applications that need absolute data correctness and require at least one of the following: scalability, high tolerance to failures, or globally-distributed deployments.

Core Features

YugabyteDB was created with several key design goals in mind, aiming to address the challenges faced by modern, cloud-native applications while maintaining the familiarity and power of traditional relational databases. Read more about these in our Design goals.

Get Started

Can't find what you're looking for? Have a question? Post your questions or comments on our Community Slack or Forum.

Build Applications

YugabyteDB supports many languages and client drivers, including Java, Go, NodeJS, Python, and more. For a complete list, including examples, see Drivers and ORMs.

Current Roadmap

The following is a list of some of the key features being worked on for upcoming releases.

FeatureDetails
PostgreSQL 15 CompatibilityFor latest features, new PostgreSQL extensions, performance, and community fixes.
PostgreSQL Publication/Replication slot API in CDCPostgreSQL has a huge community that needs a PG-compatible API to set up and consume database changes.
Bitmap scanBitmap Scan support for using Index Scans, remote filter and enhanced Cost Model.
Cost based optimizer(CBO)Efficient query plans based on statistics (such as table size, number of rows) and data distribution.
Parallel query executionHigher query performance by splitting a single query for execution across different CPU cores.
pgvector extensionSupport for vector data types, enabling efficient storage and querying of high-dimensional vectors.
Connection ManagementServer side connection management enabling upto 30K connections per node

Refer to roadmap tracker for the list of all items in the current roadmap.

Recently released features

v2.23 (Preview) - Sep, 2024

v2.23 is the current Preview release. This includes features under active development and is recommended for development and testing only. For the full list of features and improvements in this release, see Release notes - v2.23. Here are some of the prominent features.

Instant database cloning

Quickly create independent copies of your database for data recovery, development, and testing.

pg_cron extension

Use pg_cron to schedule YSQL commands using familiar cron syntax, including jobs on intervals as fine as seconds.

Semi-automatic xCluster replication

Simplified management of YSQL transactional xCluster replication by operating at the database level instead of the table level.

Improvement to backward scans

Improvements to backward scan performance now allows such queries to be 10X faster out of the box!

v2024.2 (Stable) - Dec, 2024

v2024.2 is the current stable release. Stable releases undergo rigorous testing for a longer period of time and are ready for production use. For the full list of features and improvements in this release, see Release notes - v2024.2. Here are some of the prominent features.

Yugabyte Kubernetes Operator

The Yugabyte Kubernetes Operator is a powerful tool designed to automate deploying, scaling, and managing YugabyteDB clusters in Kubernetes environments. It streamlines database operations, reducing manual effort for developers and operators. For more information, refer to the YugabyteDB Kubernetes Operator GitHub project.

Active session history

Get real-time and historical views of system activity by sampling session activity in the database. Use this feature to analyze and troubleshoot performance issues.

pg_partman extension

Use the pg_partman extension to create and manage both time- and serial-based (aka range-based) table partition sets. pg_partman is often used in combination with pg_cron for data lifecycle management, and specifically for managing data aging, retention, and expiration.

Colocated tables with tablespaces

Starting this release, you can create colocated tables with tablespaces. With this enhancement, you can now take advantage of colocated tables for geo-distributed use cases, eliminating the need for trade-offs between distributing data across specific regions.

Architecture

<img src="https://raw.githubusercontent.com/yugabyte/yugabyte-db/master/architecture/images/yb-architecture.jpg" align="center" alt="YugabyteDB Architecture"/>

Review detailed architecture in our Docs.

Need Help?

Contribute

As an open-source project with a strong focus on the user community, we welcome contributions as GitHub pull requests. See our Contributor Guides to get going. Discussions and RFCs for features happen on the design discussions section of our Forum.

License

Source code in this repository is variously licensed under the Apache License 2.0 and the Polyform Free Trial License 1.0.0. A copy of each license can be found in the licenses directory.

The build produces two sets of binaries:

By default, the build options generate only the Apache License 2.0 binaries.

Read More