Skip to content

Releases: stackabletech/trino-lb

v0.6.0

17 Feb 10:13
6eda261

Choose a tag to compare

Added

  • Support activating and deactivation Trino clusters via API calls to /admin/clusters/{cluster_name}/activate and /admin/clusters/{cluster_name}/deactivate respectively. For this to work you need to authenticate yourself at trino-lb via basic auth (#95).
  • Expose cluster statistics at /admin/clusters/{cluster_name}/status and /admin/clusters/status (#95).
  • Support configuring an external endpoint of Trino clusters.
    This is used to update the segments ackUris to, as sometimes Trino get's confused and put's the wrong endpoint (namely the one of trino-lb) in there.
    Please note that this runs a database migration on Postgres (#100).

Changed

  • The Stackable scaler now ensures that a TrinoCluster has changed to ready more than 5 seconds
    ago before marking it as ready (#68).
  • Emit less attributes in tracing to make logs easier readable (#86).
  • BREAKING: Only bind to IPv4 (0.0.0.0) instead of IPv6 (::).
    On most Linux systems, binding to :: dual-stacks, on Windows this would likely bind to IPv6 only.
    As a user reported that they run into Address family not supported by protocol (os error 97), we now only bind to IPv4.
    There was some attempt to make it portable work on IPv4 and IPv6 (optional), but that turned out to be a bigger story for later (#91).

Fixed

  • Set connection and response timeout for Redis connections (#85).
  • Only remove queries from the persistence in case they don't send a nextUri and are in state FINISHED (#98).
  • Correctly proxy HEAD requests to /v1/statement/executing/{queryId}/{slug}/{token}.
    Previously, we would GET (instead of HEAD) the URL at the Trino cluster, which resulted in trino-lb dropping the HTTP body, causing problems (#100).

v0.5.0

14 Mar 12:34
72b7157

Choose a tag to compare

Added

  • Support configuring compression for OTEL (#70).
  • Improve tracing details by adding a tower_http::trace::TraceLayer that creates spans for every HTTP request (#71).
  • Support compressing HTTP contents, previously the content was always uncompressed.
    This consumes more CPU, but also reduces the data amount sent to Trino clients.
    E.g. trino-cli by default asks for gzip compressed content (#74).

Changed

  • Improve tracing for running queries on Trino, adding spans for the request to Trino and parsing (#71).
  • Improve performance by using serde_json::value::RawValue for the data and columns attributes to avoid unneeded deserialization and serialization of them (#73).
  • Bumped to Rust 2024 edition (#76).

v0.4.1

03 Mar 15:54
f79a35a

Choose a tag to compare

Fixed

  • Add the libpython3-dev package to the container image. This prevented the startup of trino-lb (#66).

v0.4.0

28 Feb 10:41
9ea63c7

Choose a tag to compare

Added

  • Support configuring the scaler reconcile interval (#61).
  • Add simple web-based dashboard that shows the current state and query counts of all clusters.
    This makes it easier to debug state transitions of clusters (#62).
  • Add Unhealthy cluster state.
    This state is entered once the readiness check of a cluster in the Ready state fails.
    The cluster will remain in the Unhealthy state until the scaler marks that cluster as Ready again.
    Unhealthy clusters won't get any new queries; if all clusters are unhealthy, new queries will be queued.
    The cluster health check interval can be configured using the scaler reconcile interval (#63).

Changed

  • Set defaults to oci (#57).

Fixed

  • Reduce max poll delay from 10s to 3s to have better client responsiveness

v0.3.2

20 Aug 12:03
2ece871

Choose a tag to compare

[0.3.2] - 2024-08-20

Changed

  • Don't use the aws-lc-rs crate (introduced in [#45]), as it broke the Tilt build ([#46]).

Fixed

  • Fix division by zero when all clusters of a cluster group are not ready to accept queries ([#47]).

v0.3.1

16 Aug 11:05
547aea7

Choose a tag to compare

Fixed

  • Install default crypto provider, this prevent servers using https from starting (#45).

v0.3.0

15 Aug 10:54
1992bad

Choose a tag to compare

Added

  • Added a configuration to specify the port numbers for http, https and metrics (#43).

Changed

  • BREAKING: Ensure no unknown config properties have been set. This is to make the user aware that what he tried to configure is not a valid configuration. You may need to adapt your configuration and remove any unknown properties (#43).
  • Bump dependencies, such as opentelemetry 0.23 -> 0.24, kube 0.92 -> 0.93 and redis 0.25 -> 0.26 (#41).

v0.2.3

01 Jul 10:38
2dd015f

Choose a tag to compare

Fixed

  • URL-escape trino cluster credentials (#40).

v0.2.2

28 Jun 08:16
5445c15

Choose a tag to compare

Fixed

  • Periodically set all clusters that are not scaled to Ready. Previously this was only done during startup, which
    caused problems when the persistence was wiped while trino-lb is running (#37).

v0.2.1

21 Jun 11:31
ce28a2e

Choose a tag to compare

Fixed

  • Use redis ConnectionManager to reconnect on Redis connection failures. Previously trino-lb would stop working once the Redis Pod restarted. This change only affects the single Redis instance connection, not the cluster mode connection, as a ClusterConnection does not seem to support a ConnectionManager (#34).