Hey folks! CrateDB version 3.0.2 was released recently and is now available in the stable release channels.

CrateDB 3.0 is a big deal!

We even threw a party for it in our Dornbirn office.

Ain't no party like a Crate release party... 💃

In this post, I will talk you through some of the highlights.

Join performance has been a principal focus. Previously, CrateDB only supported the nested loop join algorithm. We wanted to improve this situation for users running sophisticated analytics. And to that end, we added support for a distributed block hash join algorithm.

In our next post, we will give you the deep dive on the first chunk of work that was done to implement a basic hash join algorithm. And in two follow-up posts, we'll show you how we extended that to block hash joins, and then distributed block hash joins.

Here's the headline news: CrateDB 3.0 can run some types of join 23 thousand times faster than it could do before. Holy mackerel.

Stay tuned for more technical details published via our lab notes blog post series.

We also took the time for 3.0 to update some of the third-party components we make use of. For example, we are now using Lucene 7.1.0. These updates bring a slew of improvements and fixes to CrateDB.

Another focus of the 3.0 release was PostgreSQL interoperability. To that end, we've added features like epoch, support for ON CONFLICT DO NOTHING when doing an INSERT INTO query, and syntax support (only) for DEALLOCATE.

We’ve changed the default user, when the Enterprise Edition is disabled, from null to crate . This causes entries in sys.jobs to show up with crate as the username. Functions like CURRENT_USER will also return crate . This is an important change as we continue to improve the authentication and authorization components of CrateDB.

More changes:

Views were added, and can be locked down with user permissions, along with regular tables, which is useful for administrators who want to control what sorts of workloads users are able to run on the cluster

COPY FROM now supports CSV files as well as JSON

Arrays can contain mixed types

We have added a Bengali language analyzer

There are many, many more changes. Check out the release notes for 3.0.0, 3.0.1, and 3.0.2 for the low-down.

A word of warning: as with any major release, CrateDB 3.0 includes some breaking changes. These are documented in the release notes, along with the instructions necessary to upgrade clusters running earlier versions.

Do you have questions about this release? Or maybe you have a bug to report or you want to suggest a feature. Get in touch with us via Slack or find us on GitHub.

We look forward to bringing more features and more fixes to CrateDB! Stay tuned for further updates!