E.17. Release Notes for Tantor SE-1С 15.2.0#

E.17. Release Notes for Tantor SE-1С 15.2.0

E.17. Release Notes for Tantor SE-1С 15.2.0

Release date: 2023-06-01

E.17.1. Review

Tantor SE-1С is a Russian-made DBMS based on the updated and improved version of the PostgreSQL DBMS. Tantor SE-1С 15.2.0 is based on PostgreSQL 15.

Below are the additional modules and utilities added to Tantor SE-1С, as well as the list of changes to the server core.

E.17.2. Significant differences in this version

E.17.2.1. 64-bit transactions counter implemented

  • In PostgreSQL there is a limit (N = 2^32) on the number of transaction IDs (XIDs); when reached, you must execute the freeze procedure. This procedure is necessary to prevent looping (every N/2 transactions), which leads to performance degradation due to the need to read and rewrite all pages of the table that are not yet frozen. With 64-bit XID this need is actually postponed to a very distant future.

  • Transaction counter overflow is now only possible within a single page, only if a snapshot of more than 4 billion transactions is held, which in practice is difficult to achieve. In the future, it is planned to remove this restriction as well.

xid64 details:

buffers config

E.17.2.2. Added ability to create bidirectional logical replication

  • It is now possible to use bidirectional logical replication between two tables, by adding a new origin parameter to the CREATE SUBSCRIPTION command.

  • The origin parameter can have two possible values: none and any.

  • Setting origin to none means that the subscription will only ask the publisher for changes that have no source. I.e. origin=none avoids looping during bidirectional replication.

  • Setting origin=any means that the publisher sends changes regardless of their origin (behavior as in PostgreSQL). The default is origin=any.

E.17.2.3. Added support for compression in the libpq library

  • Added support for compression in the libpq library, implemented by a new parameter in the libpq_compression configuration. The functionality can be used by client applications and drivers written in C or other languages that support API calls to C.

  • The libpq_compression parameter can take the following values: off, on, lz4, zlib. By default libpq_compression = off.

  • Compression is especially useful for importing/exporting data using the COPY command and for replication (both physical and logical). Compression can also reduce the response time of the Tantor SE-1С server for requests that return large amounts of data (e.g., JSON, BLOB, text, etc.).

libpq-compression details:

E.17.2.4. SIMD in data processing implemented

  • Accelerating data processing by means of several modifications of the Tantor SE-1С kernel that implement the SIMD (Single Instruction, Multiple Data) computing model.

  • Improved performance of the Tantor SE-1С through more efficient use of processor resources, especially when dealing with large volumes of data or complex data processing, such as processing text and JSON data.

  • Among implemented features: Linear search optimization, support for SSE2 (Streaming SIMD Extensions 2), abstraction of architecture-dependent parts, support for SIMD NEON.

E.17.2.5. Reserving connections

  • Added ability to reserve connection slots for users that do not have superuser rights.

  • Connections are reserved via the new reserved_connections configuration parameter (in the postgresql.conf file), and are only available to users with the new pg_use_reserved_connections predefined role.

  • The value of the superuser_reserved_connections parameter remains as a final reserve in case reserved_connections have been exhausted.

E.17.2.6. Added transaction_timeout parameter

  • The transaction_timeout parameter allows you to cancel any transaction that lasts longer than the specified time period. The limit applies to both explicit transactions (started with the BEGIN command) and implicitly started transactions corresponding to an individual statement.

transaction_timeout details:

E.17.2.7. Prefetching blocks for the prefetching log (WAL)

  • Improves performance by pre-reading Tantor SE-1С log blocks (WAL blocks) using the posix_fadvise() system call with the POSIX_FADV_WILLNEED parameter.

  • Added new WAIT_EVENT_WAL_PREFETCH event to track the time it takes to pre-read the WAL.

E.17.3. Additional supplied modules

E.17.3.1. Modules added in the current release

Table E.1.  Table of extensions

Extension Description
page_repair A module for restoring individual damaged pages using data from the hot standby server. Allows you to save recovery time because it does not require recovery of all data, but only individual pages.
pg_repack The module allows you to eliminate the bloat of tables and indexes (bloat) and, if necessary, restore the physical order of clustered indexes (CLUSTER). Unlike CLUSTER and VACUUM FULL commands, it works online without holding the exclusive lock of the tables being served during operation.

E.17.3.2. Additional supplied programs

Table E.2.  Table of utilities

Utility Description
pgcompacttable pgcompacttable is a tool for reducing the size of bloated tables and indexes (bloat) without heavy blocking. It is designed to reorganize data in tables and rebuild indexes to regain disk space without affecting database performance.

E.17.4. Supported Operating Systems

The list of supported operating systems (OS) has been expanded. The full list is provided below:

  • Altlinux c9f2 (P8)

  • Altlinux p10

  • Astra Linux Common Edition 2.12

  • Astra Linux Special Edition 1.7

  • Astra Linux Special Edition 4.7

  • Redos 7.3

  • MSVSphere

  • Centos 7

  • Rocky 8

  • Rocky 9

  • Ubuntu 18

  • Ubuntu 20

  • Ubuntu 22

  • Debian 11 Bullseye

  • Debian 10 Buster

DBMS builds are created and tested for these operating systems on an ongoing basis.

E.17.5. Migration to version 15.2.0

To migrate from PostgreSQL or Tantor DB, first install the latest minor version and then perform a data offload/restore by applying pg_dumpall, or use the pg_upgrade utility.