LevyForchh / yugabyte-db

The high-performance distributed SQL database for global, internet-scale apps.
https://www.yugabyte.com
Other
0 stars 0 forks source link
YugabyteDB

License Documentation Status Ask in forum Slack chat Analytics

What is YugabyteDB?

YugabyteDB is a high-performance, cloud-native distributed SQL database that aims to support all PostgreSQL features. It is best to fit for cloud-native OLTP (i.e. real-time, business-critical) applications that need absolute data correctness and require at least one of the following: scalability, high tolerance to failures, globally-distributed deployments.

The core features of YugabyteDB include:

Read more about YugabyteDB in our Docs.

Get Started

Cannot find what you are looking for? Have a question? Please post your questions or comments on our Community Slack or Forum.

Build Apps

YugabyteDB supports several languages and client drivers. Below is a brief list.

Language ORM YSQL Drivers YCQL Drivers
Java Spring/Hibernate PostgreSQL JDBC cassandra-driver-core-yb
Go Gorm pq gocql
NodeJS Sequelize pg cassandra-driver
Python SQLAlchemy psycopg2 yb-cassandra-driver
Ruby ActiveRecord pg yugabyte-ycql-driver
C# EntityFramework npgsql CassandraCSharpDriver
C++ Not tested libpqxx cassandra-cpp-driver
C Not tested libpq Not tested

What's being worked on?

This section has been updated on Dec 14, 2020.

Current roadmap

Here is a list of some of the key features being worked on for the upcoming releases (the YugabyteDB v2.5 latest release was released on Nov 12, 2020, the v2.4 stable release is expected in Jan 2021).

Feature Status Release Target Progress Comments
Automatic tablet splitting enabled by default PROGRESS v2.4, v2.5 Track
Point in time restores PROGRESS v2.6, v2.7 Track
Pessimistic locking PROGRESS v2.7 Track
YSQL: table statistics and CBO PROGRESS v2.7 Track
Support GIN indexes PROGRESS v2.7 Track
Support ALTER TABLE add primary key PROGRESS v2.6, v2.7 Track
Online schema migration PROGRESS v2.7 Track
Support Liquibase, Flyway, ORM schema migrations PROGRESS v2.7
Support WSO2 API Gateway and Identity Manager PROGRESS v2.6, v2.7
Support Spark 3 on YCQL PROGRESS v2.6, v2.7 Track
Incorporate PostgreSQL 12 features PLANNING v2.7 Track
Improving day 2 operations of Yugabyte Platform PROGRESS v2.5 Track
Row-level geo-partitioning PROGRESS v2.7 Track Enhance YSQL language support
Improve TPC-C benchmarking PROGRESS v2.7 Track
Transparently restart transactions PROGRESS v2.5 Track Decrease the incidence of transaction restart errors seen in various scenarios

Planned additions to the roadmap

The following items are being planned as additions to the roadmap

Feature Status Release Target Progress Comments
Support pgloader to migrate from MySQL PLANNING Track
Make COLOCATED tables default for YSQL PLANNING Track
Support Kafka as source and sink PLANNING Support source and sink for both YSQL and YCQL
Support for transactions in async xCluster replication PLANNING Track Apply transactions atomically on consumer cluster.

Recently released features

Feature Status Release Target Docs / Enhancements Comments
Identity and access management in YSQL DONE v2.5 Track LDAP and Active Directory support
Follower reads in YSQL BETA v2.5 Issue Ability to perform follower reads for YSQL and transactional tables in YCQL.
YSQL cluster administration features - Node-Level statistics DONE v2.5 Issue Per-node view of currently active queries, find which queries are slow, what active connections are doing, etc.
Support loading large data sets into YSQL using COPY DONE v2.5 Issue Improving transactions which have a very large number of operations, as well as provide various options to batch load data more efficiently
Database runtime activity monitoring DONE v2.5 Issue Activity monitoring, audit logging, inactivity monitoring
Online rebuild of indexes DONE v2.2 Docs coming soon. See pending enhancements
DEFERRED constraints in YSQL DONE v2.2 Docs coming soon. See pending enhancements.
COLOCATED tables GA DONE v2.2 Docs coming soon
Online schema migration framework DONE v2.2 Note that this is just the framework implementation. See planned enhancements in this area.
Distributed backups for transactional tables DONE v2.2 Docs coming soon. See pending enhancements.
IPV6 support for YugabyteDB DONE v2.2 Docs coming soon
Automatic tablet splitting BETA v2.2 Docs See further enhancements
Change data capture BETA This feature is currently available but in beta.
xCluster replication (async cross-cluster replication) DONE v2.1 Docs
Encryption of data at rest DONE v2.1 Docs

Architecture

YugabyteDB Architecture

Review detailed architecture in our Docs.

Need Help?

Contribute

As an 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