Yugabyte released YugabyteDB 2.11, with updates that extend PostgreSQL compatibility in the open source database. These updates allow application developers to use powerful and familiar PostgreSQL features without compromising resilience, scale, or performance.
The latest release brings widely used PostgreSQL features to YugabyteDB. These include Foreign Data Wrappers (FDW), GIN indexes, collation support, and read committed isolation level for concurrent transactions.
Foreign Data Wrappers allow PostgreSQL databases to treat tables in remote databases as locally available tables. This enables developers to effortlessly write queries that access data in the external data source as if they were coming from a table in the PostgreSQL database. Support for FDWs allows developers to write a JOIN query that accesses data in an external cloud native database.
This feature was built by YugabyteDB open source community contributor, Radek Gruchalski, Managing Director of German integration services company, Klarrio.
“At Klarrio, we use YugabyteDB but during work on a recent project ran into a hurdle when it came to Foreign Data Wrappers. Without them, our alternative was to build a one-off tool for initial data copy and bolt change data capture on (CDC) to synchronize further data changes. This would have been highly complex. Instead, we investigated a working solution for YugabyteDB and had it up and running in just a few hours. Being part of the Yugabyte open source community and working to make the database better served our own needs at Klarrio, but it also helped others do more, better. That’s the true spirit of open source.”
PostgreSQL uses a technique called multiversion concurrency control to isolate concurrent transactions and ensure data consistency.
The SQL-92 standard defines four levels of transaction isolation; serializable, repeatable read, read committed and read uncommitted.
YugabyteDB already supports the two strictest isolation levels, serializable and snapshot (analogous to repeatable read). YugabyteDB 2.11 adds support for read committed transaction isolation, the default isolation level in PostgreSQL.
“The biggest roadblock to database adoption is familiarity. For developers, PostgreSQL is the most familiar database. Being able to work within a similar framework is critical for productivity. What other distributed SQL databases get wrong is they cherry pick features, either providing good compatibility without true distributed SQL, or the reverse,” said Karthik Ranganathan, co-founder and CTO, Yugabyte. “We’ve heard loud and clear from our community that true distributed SQL with complete PostgreSQL compatibility is the gold standard. That is what we are delivering.”
Additional notable features of YugabyteDB 2.11 include:
- Generalized inverted indexes, or GIN indexes: These speed up text searches across multiple columns in a table
- Collation: This offers fine-grained control over the sort order and character classification behavior of data in adherence to different locales or languages
- Support for ANALYZE: This allows you to collects statistics about the contents of database tables, enabling efficient execution planning for queries
- Support for Dapper and Mybatis ORMs: These simplify .Net and Java application development
- Support for pg_stat_monitor: This is a popular query performance monitoring tool for PostgreSQL
- Merge joins: These offer faster, more efficient joins when input data is sorted on the join columns
“We’ve been on the journey to offer a distributed SQL database with complete PostgreSQL compatibility for some time. As a result, we already supported features that set us apart from the competition, such as stored procedures, triggers, user-defined types, a variety of indexes, constraints and joins,” said Ranganathan. “With the new features in this release, we’re making YugabyteDB the most familiar and developer-friendly distributed SQL database on the market.”