10.7 preview feature JSON Histograms

MariaDB has had support for histograms as part of Engine Independent Table Statistics since 10.0. As part of Google Summer of Code (MDEV-21130), Michael Okoko, together with his mentor Sergey Petrunia, have implemented a new format (using JSON) for histograms that significantly improves the accuracy and flexibility of histograms. For those just interested in the feature details, you can skip to the “New format”, however if one is unfamiliar with the purpose of histograms, read on.

Why statistics are needed

Histograms are important for queries where the WHERE clause uses columns that are not indexed.

10.7 preview feature: Compression Provider Plugins

MariaDB has been using a pluggable storage engine architecture for a long time and whilst this means great flexibility in choosing and managing the right storage engines for specific use cases, it also means they are easier to develop and therefore there’s an expectation that more engines will be created.

More storage engines means the MariaDB Server itself needs to be as flexible as possible to accommodate all sorts of functionalities that storage engines may need. One area where the MariaDB Server proved to be not that welcoming was in making available all the compression libraries needed by storage engines.

10.7 preview feature: Natural sort

Natural sort order is the ordering of strings in alphabetical order, while numbers are treated as numbers. This understanding of sorting is closer to human comprehension than to a machine. You can find an example of this feature in the Windows file manager. There the files are sorted in natural order. Try to create four folders “b1”, “a11”, “a2”, “a1”.

There are several programming languages which have natural sort. In PHP it is built-in function natsort, while as an third-party module in Python it is natsort, in Perl it is Sort::Naturally and in Matlab it is sort_nat.

10.7 preview feature: UUID Data Type

Universally unique identifiers (UUIDs) have a common place in computing already. A 128-bit value with a text representational value and the prescription of a number of version types to ensure a uniqueness makes it an ideal data type.

After many years of the UUID datatype existing only as a feature request in MDEV-4958, slowly accumulating votes and watchers, we are pleased to announce a preview of the UUID data type. Like the INET6 data type, this uses the datatype plugin API from MariaDB 10.5.

What does the UUID data type look like?

10.7.0 Comes As Preview Releases

Now is the time to try out the new candidate features of MariaDB Server 10.7, the next release series of MariaDB! This blog describes how the new preview releases work, and where we need your help as a MariaDB user.

The challenge: Making MariaDB mature quicker

Remember the challenges and visions I described two weeks ago? To address them we launch an experiment with several parallel preview releases of MariaDB Server 10.7 features.

This should solve two challenges mentioned in the blog: giving users early access to new functionality and making releases mature more rapidly through intensive internal testing.

Challenges and Visions for MariaDB Server

At the MariaDB Foundation, we want MariaDB Server to be a model citizen in the Open Source world. For now, there is a sizeable gap between dreams and reality. But that doesn’t stop us from striving to improve. Let me here describe some of our challenges, and share some visions of where we want to be.

Continuous Integration

One pain point is the state of the development tree. A model citizen would ensure that the tree can always be built. Every day, all the features under development could be tested by the community, on all platforms.

Docker Library – Official MariaDB Image Maintenance

The Docker Library official MariaDB image is now maintained by the MariaDB Foundation, and has been for the last six months. If you didn’t notice, we’ll take that as a compliment, as the previous maintainers of Docker Library from Infosiftr were doing a good job already. Infosiftr still provide valuable quality assurance on the releases before they get to you.

What’s Changed?

What we have done, with assistance from you, our community, is:

Timezones

  • Continued the parting contribution by Infosiftr MARIADB_* environment names and added MARIADB_INITDB_SKIP_TZINFO for consistency.
  • Allowed the timezone to be changed.

Debian/Ubuntu packaging expert wanted

MariaDB Foundation needs help from a Debian/Ubuntu packaging expert to continue to provide high value MariaDB Server packaging.

MariaDB Server is packaged in Debian and Ubuntu distributions, and by MariaDB Foundation as a upstream repository. A significant effort occurred to make this possible and stable. MariaDB Foundation wants to continue to innovate in the packaging to provide the best out-of-the-box experience for our users. To ensure this innovation remains stable and considered for the wide range of Debian/Ubuntu users we require a person/company/collective, with a very high quality of packaging and communication skills, to work within the MariaDB community ecosystem to deliver this outcome.