Release Notes

Release 2.0.3 (2022-3-31)

Enhancements

  • HARPProxysupportsread-onlyuserdedicatedTLSCertificate

You may specify a TLS Certificate and Key in the HARP Proxy DSN for the DCS read-only user. (78516, HNG-522)

Bug Fixes

  • HARP Proxy will continue to try and connect to DCS instead of exiting after 50 seconds. (75406, HNG-548, HNG-560, HNG-561)

Release 2.0.2 (2022-2-24)

Enhancements

  • ConnectionThrottlingforBuiltinProxy

You can now specify the maximum number of connections that could be used by builtin proxy. The proxy will adjust downward the number of connections to fit within your calculated system resource limits. (75406, 79250, HNG-489, HNG-498, HNG-503, HNG-508)

  • CAMOdisabledforBDRDCS

HARP disables CAMO for its connection to the database to avoid performance degradation when using BDR for the Distributed Consensus System (DCS). (HNG-438)

  • ImprovedSecurityforHARPProxy

You can specify a user with read-only DCS permissions for the builtin proxy. (75406, HNG-452)

  • Start,Stop,StatushooksformanagingPostgres

You can provide start, stop, and status commands in the HARP Manager configuration for starting postgres, stopping postgres, and retrieving the status of postgres. If you do not provide commands then systemd is used by default. (HNG-492)

  • PgbouncerhasbeenremovedasadependencyforHARPProxyrpmanddebpackages.

Pgbouncer will not be installed unless you select pgbouncer as the harp_proxy_mode. (HNG-511)

  • HARPManagerhasimprovedperformancecommunicatingwithBDRDCS

HARP Manager only communicates with BDR DCS using a local UNIX domain socket. (78516,HNG-494)

  • Builtinproxyisnowthedefaultproxy

If pgbouncer was being used by default in a previous release, the harp_proxy_mode must now be specified as pgbouncer to continue as the proxy on upgrade. (HNG-511)

  • Binariesnowmatchservicenames

The harp_manager binary is now named harp-manager. Correspondingly, the harp_proxy binary is now named harp-proxy. Symlinks with the previous names are provided. (HNG-514)

  • ImprovedHarpManagerdefaults

Lag configuration defaults are now set to be off by default. Duration of leader lease now has a default setting of 6 seconds. Leader lease renewal setting is now defaulted to 2 seconds. (HNG-520)

Bug Fixes

  • HARP Manager now stops the database on exit. (HNG-497)

  • HARP Proxy no longer leaks connections when using the builtin proxy. (75406,HNG-445)

  • HARP Proxy no longer erroneously reports “splice: connection reset by peer” when connections are closed for builtin proxy. (75406, HNG-445,)

  • Harpctl now returns when querying for builtin or pgbouncer proxy status. (HNG-499)

  • harpctl get cluster output no longer contains leader and previous leader fields. (HNG-483)

  • Harpctl now validates proxy name when executing proxy related commands. (HNG-471)

  • Harpctl now reports correct routing status for leader. (HNG-441)

  • HARP configuration files now contain the correct configuration parameters for the corresponding proxy– builtin or pgbouncer. (78516, HNG-456)

  • TPAExec no longer creates a confusing DSN for DCS endpoint with a duplicate user. (78516, HNG-495)

  • request_timeout configuration parameter does not need unit specified, which are in milliseconds. (78363, HNG-504)

  • The listen_port and listen_host settings can now be configured per proxy instance using TPAExec. (78848, HNG-456)

  • Subscriber only nodes,which cannot become leader nodes,are no longer considered for leadership. (78516, HNG-411)

Known Issues

  • When a previously isolated shadow node returns back as an active cluster node this triggers a raft election and leadership change.

  • Promoting a node may cause a different node to be promoted. A race for leadership occurs between the eligible nodes. The first eligible node will become leader. Use the --force option with the promote command to have the desired node become leader.

  • Harpctl cannot return the HARP Proxy version if HARP Proxy is configured with read only user access for BDR DCS. The version information cannot be stored by a user with read only permissions. This leads to missing version information for proxy when using harpctl to query version information.

  • After fencing the database with the stop database option, if the HARP Manager is restarted and BDR DCS is configured, the database will be restarted, but will be in a fenced state.

  • use_unix_sock will not work when deploying EDB Postgres Advanced Server. The default UNIX socket directory is not determined correctly for EDB Postgres Advanced Server.

Release 2.0.1 (2022-1-31)

Enhancements

  • BDR consensus now generally available

HARP offers multiple options for Distributed Consensus Service (DCS) source: etcd and BDR. The BDR consensus option can be used in deployments where etcd is not present. Use of the BDR consensus option is no longer considered beta and is now supported for use in production environments.

  • Transport layer proxy now generally available

HARP offers multiple proxy options for routing connections between the client application and database: application layer (L7) and transport layer (L4). The network layer 4 or transport layer proxy simply forwards network packets, whereas layer 7 terminates network traffic. The transport layer proxy, previously called simple proxy, is no longer considered beta and is now supported for use in production environments.

Release 2.0.0 (2021-12-01)

Engine

  • Complete rewrite of system in golang to optimize all operations

  • Cluster state can now be bootstrapped or revised via YAML

Configuration

  • Rewritten in YAML

  • Configuration file changed from harp.ini to config.yml

Enhancements

  • HARP Proxy deprecates need for HAProxy in supported architecture.

The use of HARP Router to translate DCS contents into appropriate online or offline states for HTTP-based URI requests meant a load balancer or HAProxy was necessary to determine the Lead Master. HARP Proxy now does this automatically without periodic iterative status checks.

  • Utilizes DCS key subscription to respond directly to state changes.

With relevant cluster state changes, the cluster will respond immediately, thereby resulting in improved failover and switchover times.

  • Compatibility with etcd SSL settings.

It is now possible to communicate with etcd through SSL encryption.

  • Zero transaction lag on switchover.

The new lead node will not have transactions routed to it until all replicated transactions are replayed, thereby reducing the potential for conflicts.

  • Experimental BDR Consensus layer

Using BDR Consensus as the Distributed Consensus Service (DCS) reduces amount of change needed for implementations.

  • Experimental Proxy

Proxy implementation for increased session control.

Release 1.0.1 (2021-06-23)

Documentation

  • Standardize resolution of the HARP acronym

Bug fixes

  • Fix CAMO lag check to accommodate cases where maximum_camo_lag is set to 0

Release 1.0 (2021-06-15)

Enhancements

  • --dry-run option added to harpctl leader set

  • minimum configuration values will be enforced

  • lock_interval parameter can be specified as fractions of a second

  • logging and output improvements

  • replication lag query updated to handle parallel apply

Bug fixes

  • harpctl returns an error code if leader set fails

  • prevent corner-case failure when node peer progress not returned

  • handle potentially empty node record

  • catch unhandled exception when deciding the lead node candidate

Release 0.2 (2021-02-23)

This is a maintenance release with following changes:

  • documentation available via the EnterpriseDB customer portal

  • report non-availability of nodes other than the lead master

  • when using BDR as a DCS layer, fix potential failure situations when a BDR node is not running

  • fixes RPM packaging issue preventing a new start on fresh installations

Release 0.1 (2020-08-13)

This is an initial beta release providing HARP support for BDR, including:

  • Usage of native BDR (3.6.21 and later) as a consensus layer

  • Usage of etcd as a consensus layer

Note that currently HARP does not support operation on a physical streaming replica when BDR is used as a consensus layer.