Picodata 25.3 is out!

Александр Толстой

The Picodata development team is pleased to announce the release of the Picodata 25.3 distributed DBMS, our flagship software product. The new version adds new SQL language features, introduces a mechanism of automatic data schema update and works on cluster stabilization. Read about this and much more below!

Improving backward compatibility

In Picodata 25.3, we have implemented automatic data schema update when instances are migrated to a new Picodata release. This mechanism ensures backward compatibility between DBMS releases regardless of the amount of changes made to system tables before: when a cluster is migrated to a new Picodata version, the necessary DDL/DML commands will be executed without administrator intervention, and the internal functions required in the new schema will also be created automatically.

New SQL features

In Picodata 25.3, we added new SQL language features to Picodata, including:

  • NULLS FIRST/LAST support when sorting query results (ORDER BY)
  • conflict handling when inserting data into global tables (INSERT INTO … ON CONFLICT DO FAIL/REPLACE/NOTHING)
  • new built-in window function LAST_VALUE()
  • % operator for modulo support for integers
  • ability to determine the raft group leader via pico_raft_leader_id() and pico_raft_leader_uuid() functions
  • ability to determine the version of the current instance via version() function
  • change related to compatibility: instead of the scalar instance_uuid function (which is now deprecated), it is recommended to use the new pico_instance_uuid function.

Improved PostgreSQL compatibility

Picodata now supports secure connection when accessing an external LDAP server. When connecting via the PostgreSQL protocol (e.g. using the psql client) with the LDAP authentication method, you can use TLS encryption (provided that it is enabled on the LDAP server). On the Picodata side, this will require setting the values of three environment variables. For example:

export TT_LDAP_URL="ldap://127.0.0.1:1389"
export TT_LDAP_DN_FMT='cn=$USER,ou=users,dc=example,dc=org'
export TT_LDAP_ENABLE_TLS=true

Changes in configuration

We added a new parameter instance.pg.advertise — public address of the server for connection via PostgreSQL protocol. By default, the value of this parameter corresponds to instance.pg.listen.

Better web UI

We continue to develop the webui component for Picodata. In Picodata 25.3, the webui interface doesn’t just look better, it’s also more user-friendly and informative:

  • The Cluster ID panel displays more useful information, including a list of enabled plugins
  • the instance details view area now includes the PostgreSQL connection address.

Plugins mechanism

When connecting a plugin to a Picodata cluster, minor versions of the plugin and instance are now allowed to diverge (e.g., a plugin built for version 25.3.1 will work in Picodata 25.3.2)

See the full list of changes and fixed bugs in the CHANGELOG for this release.

Picodata for Ansible

A new version of the Picodata role for Ansible has been released, which is compatible with Picodata 25.3. Changes to the role:

  • snap and xlog files collection can be excluded when collecting crash information (crash_dump tag)
  • added ability to execute lua commands on cluster instances (command tag)
  • fixed working with several plugins in inventory file
  • fixed other bugs

Get a hand on Picodata!

Get a hand on Picodata 25.1 by downloading the pre-built packages for supported Linux distributions in the download section at our site. Pre-built packages are available for the followinf Linux distributions:

  • Astra 1.8
  • Debian 12 (bookworm)
  • RHEL/Rocky 9
  • Fedora 41–42

You can find installation advisory as well as documentation for installing software, creating instances, cluster configuration and deployment at our dedicated documentation site.

Send your feedback and get in touch with Picodata developers in our Telegram chat at @picodataen or @picodataru.