YaXAHA Cluster beta release

March 27, 20223 minute read
Kirill Zinov

DBInvent is starting an open beta testing of YaXAHA Cluster, a PostgreSQL database clustering solution that provides scalability and prevents logical data conflicts across the entire cluster.

We’re very pleased to announce that YaXAHA Cluster beta is now live! YaXAHA Cluster or Yet Another eXtended Architecture High-Availability Cluster is a new approach to clustering the PostgreSQL databases that allows you to turn a regular database into a scalable high-availability cluster.

Technically, YaXAHA Cluster is an extension of the standard PostgreSQL with full preservation of the standard PostgreSQL features without changes to the original PostgreSQL code. Our extension only manages the transaction life cycle and provides the necessary data functionality for clustering such as scaling, fault tolerance and conflict prevention.

No single point of failure

YaXAHA Cluster does not have a dedicated master-node and therefore does not have a single point of failure. Despite the fact that the cluster performs elections to choose a master-node for making some decisions within the boundaries of the entire cluster, this does not require the client application to start a transaction on this particular node.

Also, if the elected master node fails, the cluster will re-elect a new healthy master node, and transactions will be successfully completed on the remaining nodes. In case of temporary problems, such as communication failure between the cluster segments, the lagging nodes will catch up with the cluster to the actual state.

Strict and eventual consistency

Depending on your project architecture, YaXAHA Cluster allows you to flexibly configure the cluster by choosing between strict and eventual data consistency.

Of course, you may require synchronous transaction propagation on all cluster nodes, but that’s not always the best performance solution.

It is often more practical to ensure synchronous transaction replay only on the part of the cluster that provides sufficient data integrity and fail-tolerance, and allow asynchronous transaction propagation on the remaining nodes of the cluster.

This allows you to adjust the performance flexibly and at the same time provides enough fault tolerance in case of critical failures or temporary communication problems between cluster segments, that is - ensures the integrity of the project data and performance.

Smart data locks

YaXAHA Cluster analyzes the dependencies to determine the boundaries of each transaction. This prevents logical conflicts when a simultaneous change of general data by several transactions is performed, conflicts arise and data may become invalid.

Transaction boundaries are detected considering the changes being made and the dependency types of the data you are changing. And if a transaction has overlapping boundaries with another unfinished transaction, it will wait for its turn.

Flexible configuration of eventual consistency and analysis of the actual transaction boundaries, together, allow scaling the cluster without performance degradation, bring logical data synchronization within the entire cluster boundaries, avoid unnecessary locks and idle waiting, and also make things easier when the project has a complex structure.

As with any beta testing, you’ll have early access to new features and will be able to assist in the final steps of YaXAHA Cluster development.

Thank you so much for taking part in the beta version testing. We look forward to seeing you there and getting your feedbacks.

Kirill Zinov
CIO / Principal Software Engineer