YugabyteDB 2.0: A Distributed SQL Roadmap
The YugabyteDB 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 YugabyteDB’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 YugabyteDB. 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 YugabyteDB 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 YugabyteDB. 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-Follower & Multi-Master Global Deployments
This feature set enables many multi-region deployment scenarios. The first of these is replicating data asynchronously from one YugabyteDB cluster to another across regions or clouds with the destination region becomes a follower 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 YugabyteDB 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. YugabyteDB 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
YugabyteDB 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 YugabyteDB, be sure to let us know!
Improved User Experience
We are reimagining the user experience for YugabyteDB 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 YugabyteDB 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 YugabyteDB, 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 YugabyteDB in production? Tell us about your use case and we’ll send you a hoodie!
- Compare YugabyteDB in depth to databases like CockroachDB, Google Cloud Spanner and MongoDB.
- Get started with YugabyteDB on macOS, Linux, Docker, and Kubernetes.
- Contact us to learn more about licensing, pricing or to schedule a technical overview.