Releases: stackabletech/trino-lb
Releases · stackabletech/trino-lb
v0.6.0
Added
- Support activating and deactivation Trino clusters via API calls to
/admin/clusters/{cluster_name}/activateand/admin/clusters/{cluster_name}/deactivaterespectively. For this to work you need to authenticate yourself at trino-lb via basic auth (#95). - Expose cluster statistics at
/admin/clusters/{cluster_name}/statusand/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
TrinoClusterhas changed toreadymore than 5 seconds
ago before marking it asready(#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 intoAddress 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
nextUriand are in stateFINISHED(#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
Added
- Support configuring compression for OTEL (#70).
- Improve tracing details by adding a
tower_http::trace::TraceLayerthat 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-cliby default asks forgzipcompressed 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::RawValuefor thedataandcolumnsattributes to avoid unneeded deserialization and serialization of them (#73). - Bumped to Rust 2024 edition (#76).
v0.4.1
v0.4.0
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
Unhealthycluster state.
This state is entered once the readiness check of a cluster in theReadystate fails.
The cluster will remain in theUnhealthystate until the scaler marks that cluster asReadyagain.
Unhealthyclusters 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
v0.3.1
v0.3.0
Added
- Added a configuration to specify the port numbers for
http,httpsandmetrics(#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
opentelemetry0.23 -> 0.24,kube0.92 -> 0.93 andredis0.25 -> 0.26 (#41).
v0.2.3
v0.2.2
v0.2.1
Fixed
- Use redis
ConnectionManagerto 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 aConnectionManager(#34).