Announcing YugabyteDB 2.5 — The Distributed SQL Blog

Karthik Ranganathan
The Distributed SQL Blog
5 min readNov 12, 2020

Our mission at Yugabyte is to build the default distributed SQL database for cloud native applications in a multi cloud world. To further that mission, this release brings major enhancements to multi-region deployments, performance, and security features offered by the database — while simultaneously improving on high availability, horizontal scalability, and ease of managing the database.

Enhanced multi-region capabilities with geo-partitioning and follower reads

The YugabyteDB 2.5 release adds row-level geo-partitioning capabilities as well as follower reads to the extensive set of multi-region features that YugabyteDB already had. These new features, combined with the ability to perform synchronous replication across 3 regions and asynchronous replication across 2 regions (called xCluster replication), makes YugabyteDB the distributed SQL database with the most comprehensive set of multi-region deployment options. These deployment options across multiple data centers, regions and/or clouds give users even more control to bring data close to their customers for performance, costs, or compliance reasons.

Enterprise-grade security features

This release also continues to enhance the security capabilities of YugabyteDB. Authentication using the highly secure SCRAM-SHA-256 is now supported to limit security risks from brute force attacks and sniffing, including LDAP support for better user management and the ability to audit all database operations. Data encryption features such as transparent data encryption and column-level encryption are also enabled as a part of this release. You can read more about all the new security features in YugabyteDB 2.5 in this dedicated blog post.

Benchmarked to 100,000 TPC-C warehouses

This release also adds a number of performance improvements, which culminate in YugabyteDB being able to run the TPC-C benchmark against 100,000 warehouses. The TPC-C benchmark models a typical OLTP application by simulating an inventory management system, with a configurable number of warehouses. Increasing the number of warehouses increases the data set size, the number of concurrent clients as well as the number of concurrently running transactions. Stay tuned for details about the TPC-C benchmark results and how to replicate this.

Core database features

The additions to the core features include support for table-level partitions, and event triggers.

  • Table-level partitions allow users to split what is logically one large table into smaller sub-tables, using the following types of table partitioning schemes that PostgreSQL supports: range partitioning, list partitioning, and hash partitioning. Read more about table partitioning in YugabyteDB.
  • Event triggers are now supported in addition to regular table-level triggers. While regular triggers are attached to a single table and capture only DML events, event triggers are global to a particular database and are capable of capturing DDL events. The event-based trigger framework enables detecting changes made to the data, and automating any subsequent tasks that need to be performed, which are useful in a number of use cases such as implementing a consolidated, central audit table.

Simplified cluster administration

Administration of a running cluster has been greatly simplified in this release.

  • Online rebuild of indexes is supported for both the YSQL and YCQL APIs. This means that new indexes can be added to tables with pre-existing data while concurrent updates are happening on the cluster. The online index rebuild process creates the newly added index in the background, and transactionally enables the index once the rebuild of all the data is completed. This feature allows flexibility of adding indexes as the application needs evolve to keep queries efficient.
  • Cluster execution statistics and running queries can be analyzed in detail, allowing administrators to gain insights into how the database is performing. The pg_stat_statements extension, which enables tracking execution statistics of all SQL statements executed by the cluster, is supported and enabled by default. Support for pg_stat_activity has also been added, which shows information related to the activity performed by each connection. Yet another useful feature in this category is the ability to view all the live queries being executed by the cluster at any point in time.
  • Detailed query plan and execution analysis can now be performed with commands such as EXPLAIN and EXPLAIN ANALYZE. These commands display the execution plan generated by the planner for a given SQL statement. The execution plan shows details for any SQL statement such as how tables will be scanned (plain sequential scan, index scan), what join algorithms will be used to fetch required rows from the different tables, etc.

Ease of use

The usability has also been greatly improved in this release. A number of very useful extensions such as pg_stat_statements, PGAudit, uuid-ossp and pgcrypto are now pre-installed and loaded into YugabyteDB by default. There is also a community-driven Grafana dashboard that can be used with Prometheus to monitor YugabyteDB clusters.

What’s Coming — Roadmap Teaser

At Yugabyte, we strive to be fully transparent with our customers and user community, and to that end we publish our roadmap on GitHub. Below are some notable callouts of features you can expect in upcoming releases. Note that the current roadmap is subject to change as we finalize our planning for the next releases.

  • Core database features: A number of core database features are on the roadmap, such as point in time recovery and incremental backups, better support for pessimistic locking, and better support for online schema migrations including support for popular migration frameworks such as Liquibase, Flyway, and other ORM migration frameworks. Additionally, continued work to unlock even greater database performance is always work in progress.
  • More security features: Expect even more security features in the upcoming releases, including: runtime database monitoring support, ability to deprovision inactive users, vulnerability scan of the database, ability to obfuscate sensitive data, Kerberos authentication, and more.
  • Third-party penetration testing and code audit: The YugabyteDB code base has been run through PVS Studio, a static code analysis tool for C/C++ code, to detect and fix code that has a potential to be exploited. We’re also working with a third-party audit vendor to add yet another layer of validation that YugabyteDB can be safely deployed in production, including in industries with the strongest security requirements. To ensure maximum transparency, we plan to open source the findings of the third-party security audit. Stay tuned for a final report.
  • Azure Cloud integration for Yugabyte Platform (in beta): Yugabyte Platform is natively integrated with Azure cloud to simplify deploying, monitoring, and managing YugabyteDB deployments. This feature automates a number of operations including orchestration of instances, secure deployments, online software upgrades, and scheduled backups, as well as monitoring and alerting.

Conclusion

We’re very happy to be able to release all of these latest and greatest features into YugabyteDB 2.5. We invite you to learn more and try it out:

Originally published at https://blog.yugabyte.com on November 12, 2020.

--

--