The YugaByte Database Blog

Thoughts on distributed SQL, open source and cloud native

YugaByte DB 2.0: A Distributed SQL Roadmap

The YugaByte DB community is eagerly looking forward to v2.0, the next major release expected in Summer 2019. Needless to say, we are very excited about the depth and breadth of features in this release. Here’s an overview of the various areas we expect the new release to cover.

Distributed SQL

YSQL is YugaByte DB’s PostgreSQL wire-compatible distributed SQL API. Thanks to our design decision to use the existing PostgreSQL query layer as a starting point, we are expanding our support for SQL features each and every week.

YSQL already offers a breadth of SQL features. You can try out some of these on your laptop. By v2.0, it will support all the data types, most built-in functions including window functions and various expressions, various types of queries including joins, upserts, JSONB document support, foreign keys, auto-increment ids and a lot more.

This release will see YSQL go from Beta 3 to the production-ready GA milestone. We also intend to perform Jepsen testing of the YSQL API to ensure correctness, along with certified integrations with major ORMs and web frameworks. Another important integration is that of powering the Hasura GraphQL engine natively with YSQL. These enhancements will turbo-charge application development with YugaByte DB. Developers will be able to fully realize the benefits of distributed SQL in the context of their own applications.

Core Database Features

Core database features are often the hardest to develop, take the longest time to test but enable a number of language level enhancements. Below is a list of notable improvements you can expect from the 2.0 release.

Serializable Isolation

We had planned to support the Serializable isolation level for the 2.0 release, but thanks to some dedicated work by our engineering team, that feature is already supported as of YugaByte DB v1.2.6, well ahead of schedule! Note that improving the performance of serializable transactions is a work in progress.

Change Data Capture

Change Data Capture (CDC) allows external clients to subscribe to all modifications happening to the data in YugaByte DB. This is a critical feature in a number of scenarios, for example, to implement an event-driven architecture by using a message bus such as Apache Kafka to propagate changes across microservices.

Master-Slave & Multi-Master Global Deployments

This feature set enables many multi-region deployment scenarios. The first of these is replicating data asynchronously from one YugaByte DB cluster to another across regions or clouds with the destination region becomes a slave for disaster recovery. Another use-case is that of multi-master multi-region deployments, which are widely used in modern applications. In this scenario, you can perform bi-directional asynchronous data replication between two different YugaByte DB clusters across multiple regions. Oracle GoldenGate has often been used to achieve this type of replication in the legacy world. We aim to pave the way for these scenarios in the cloud native world.

Enhancements to Secondary Indexes and Documents

In addition to the above, a number of enhancements to secondary indexes are planned. YugaByte DB 2.0 will allow dynamically rebuilding indexes even after data has been loaded into the tables, which has been a popular ask. Creating indexes on dynamic attributes in JSON documents in YCQL will also be supported. Additionally, it will have support for efficient comparison filters in queries using range-sharded indexes, which in turn requires dynamic splitting of tablets.

Database Security

YugaByte DB already supports a number of security features such as authentication, RBAC and encrypted communication using TLS. This upcoming release will add encryption at rest in addition to all the above, with support for popular Key Management Systems (KMS) coming right afterwards. If you have a KMS you are looking to integrate with YugaByte DB, be sure to let us know!

Improved User Experience

We are reimagining the user experience for YugaByte DB based on the feedback we have received thus far. Whether it be local clusters on your laptop or true multi-node clusters on the public clouds, you will be able to get started without having to know the details of various components of the YugaByte DB architecture including YB-TServer and YB-Master. Also, we’ll be adding more installer choices and more ecosystem integrations to make deploying a distributed SQL database easier than ever before.

Bonus Features

In addition to all of the above, the 2.0 release has a stretch goal of enabling a few high-octane SQL features (in beta) such as triggers and stored procedures.

Wondering about your favorite PostgreSQL feature? Try out YugaByte DB, or check the list of supported YSQL features. If its not yet supported, just file a GitHub issue and we’ll look into adding it!

What’s Next?

  • Using YugaByte DB in production? Tell us about your use case and we’ll send you a hoodie!
  • Compare YugaByte DB in depth to databases like CockroachDB, Google Cloud Spanner and MongoDB.
  • Get started with YugaByte DB on macOS, Linux, Docker, and Kubernetes.
  • Contact us to learn more about licensing, pricing or to schedule a technical overview.

Related Posts