twitter/finagle
 Watch   
 Star   
 Fork   
2023-11-02 08:18:00
finagle

Finagle 23.11.0

23.11.0

New Features

  • finagle-stats: A new implementation of BucketedHistogram that works better under high contention, but requires more memory. 8de8488
  • finagle-http2: Add a per session request limit option to http2. 610a21ca

Runtime Behavior Changes

  • finagle: Bump netty to 4.1.100 and netty-tcnative to 2.0.61.Final. cfe39841
  • finagle: Bump version of Jackson to 2.14.2. 60a324e
  • finagle: Update JSqlParser to version 4.6 366a047
  • finagle: Bump version of Jackson to 2.14.3. 4c923f6

Bug Fixes

  • finagle-core: Failed recvAddress on Linux due to the remote peer resetting connection should now be properly seen as a c.t.f.ChannelClosedException instead of a c.t.f.UnknownChannelException. 83e31f8

Breaking API Changes

  • finagle-core: The c.t.f.context.Retries context has been renamed to c.t.f.context.Requeues to reflect what it actually contains -- the number of requeues a request has had (on the client immediately upstream). Requeues are retries on write exceptions (i.e. the original request was never sent to the server). 3c27308
  • finagle: Deposit budget once in MethodBuilder 82e2b839
  • finagle: Pass through configured deadline params rather than use default aa73d413
2022-12-24 01:28:15
finagle

Finagle 22.12.0

22.12.0

New Features

  • finagle-core: Enable tracing for individual fanout requests via the FanoutTracer. 8b92a584
  • finagle-core: Added helpers for local and peer ServiceIdentity to SslSessionInfo. b9f0f177
  • finagle-core: Expose StackClient.DefaultInjectors. 15c25153
  • finagle-http: RequestBuilder's c.t.f.http.FileElement now has isText (default: false) attribute. When set to true, no Content-Transfer-Encoding header is populated on the request. dcfb5923
  • finagle-http: When Finagle Http servers are secured with S2S, write c.t.finagle.SslSessionInfo#peerIdentity as remote user in access log. b903165a

Runtime Behavior Changes

  • util: Bump version of Jackson to 2.14.1. cd3a239f
  • finagle-http: Remove DeadlineFilter from Server stack. 8f96a534
  • finagle-core: Ensure BackupRequestFilter respects maxExtraLoad. For low QPS finagle clients this may mean fewer backup requests, so such clients can increase their maxExtraLoad setting if they actually want higher backup request rates. c0876691
  • finagle-serversets: Remove Endpoints with a weight of -1.0 from resolved zookeeper serversets Negative weights aren't normally valid so we use "-1.0" as a specific signal to not include the node in the resolved serverset returned to the client. This is useful for various types of testing. 3bc1f6ea

Breaking API Changes

  • finagle-core: DeadlineFilter.module has been replaced with DeadlineFilter.clientModule and DeadlineFilter.serverModule. PHAB_ID=D943426
  • finagle-http: c.t.f.Http.Http2 and c.t.f.Http.Netty4Impl values were removed because they were confusing. Use .withHttp2 and .withNoHttp2 to toggle HTTP/2 support ON and OFF respectively. PHAB_ID=D935292
  • finagle-core: Allow users of MethodBuilder.idempotent to specify non-retryable responses for idempotent methods. Previously these were overridden to be retryable. b8133350
  • finagle-core: The com.twitter.finagle.offload.queueSize has been removed. eb98b64f
2022-07-29 01:17:32
finagle

Finagle 22.7.0

22.7.0

  • finagle-thrift: Changing visibility of InputBuffer and OutputBuffer from [finagle] to [twitter]. d56bb847

New Features

  • finagle-core: Introduce panic mode in load balancers. Configure the threshold for panic mode to start using withLoadBalancer.panicMode. c6060de8
  • finagle-core: Provide ServerParamsInjector, a class that will be service-loaded at run-time by Finagle servers, and will allow generic configuration of all sets of parameters. f00434c1
  • finagle-memcached: Add new function, newLoadBalancedTwemcacheClient, to create a TwemcacheClient that doesn't use a partitioning service. `PHAB_ID=D911789

Bug Fixes

  • finagle-core: fix issue where Trace.traceLocal and Trace.traceLocalFuture nested traces mistakenly annotate to the parent span. 77a7e774

Breaking API Changes

  • finagle-core: Remove unused DeterministicAperture along with pathways to use weight-unaware aperture loadbalancers. a5004ecc
  • finagle-base-http: Methods for getting/setting Accept, Authorization, Host, Referer, User-Agent, X-Forwarded-For headers were moved from c.t.f.http.Message class to c.t.f.http.Request as these headers are only valid on requests and not on responses. Methods for getting/setting Location, Retry-After, Server, and WWW-Authenticate headers were moved from c.t.f.http.Message class to c.t.f.http.Response as they are only valid on responses and not on requests.
  • finagle-core: Update OffloadFilter.Param API to encourage recommended construction. b684552f
  • finagle-core: Trace.recordLocalSpan is private[this] and no longer protected. 77a7e774
  • finagle-core: "ServiceFactory#status" is abstract and requires implementation in the inherited classes. b2a7f4ea
  • finagle-core: StackTransformer has been renamed to ServerStackTransformer and the symmetric client equivalent (ClientStackTransformer) has been added. For those using the older StackTransformer API you will both need to change the code (fix the extends) __and__ rename the META-INF file from resources/META-INF/services/com.twitter.finagle.StackTransformer to resources/META-INF/services/com.twitter.finagle.ServerStackTransformer in order to have your transformer continue to service-load correctly. f5de196d

Runtime Behavior Changes

  • finagle-core: Changed the default implementation for random and deterministic aperture load balancers to weighted aperture. f67c839c

  • finagle-partitioning: ThriftCustomPartitioningServices now allow fanning out the same request to multiple partitions. 59381065

  • finagle-core: Rename the counter metric loadbalancer/max_effort_exhausted to loadbalancer/panicked. a055f74b
  • finagle: Upgrade to Netty 4.1.76.Final and netty-tcnative 2.0.51.Final. c07a9b0b
  • finagle: Update Jackson library to version 2.13.3 92d39db2
  • finagle: Bump version of lz4-java to 1.8.0. 305c467c
  • finagle: Upgrade to Netty 4.1.78.Final and netty-tcnative 2.0.53.Final to support tls tracing for finagle in [Pixie](https://pixie.dev/). The Pixie changes aren't complete yet, but upgrading netty is a prerequisite for that. d251883b`
2022-04-14 03:17:27
finagle

Finagle 22.4.0

22.4.0

Bug Fixes

  • finagle-integration: we discovered that we had a dead code in MuxClientSession. Let's remove Timer as a parameter in MuxClientSession since it's a dead code. 77396f84
2022-03-30 02:38:00
finagle

Finagle 22.3.0

22.3.0

Breaking API Changes

  • finagle-core: Removed the stack param WhenNoNodesOpenParam from LoadBalancerFactory. Removed NoNodesOpenServiceFactory and NoNodesOpenException. When the majority of nodes are busy or closed (approx 60%), the load balancer will probabilistically fail open and pick a node at random. 1ec9ffa4

Runtime Behavior Changes

  • finagle: Bump version of Jackson to 2.13.2. 0f83179d
2022-02-25 23:17:35
finagle

Finagle 22.2.0

22.2.0

New Features

  • finagle-logging: Introduced finagle-logging, a new module for SLF4J-integrated filters. 0e6a3b68
  • finagle-logging: Introduced SlowTracesFilter, which observes your requests and logs the slowest ones that are also sampled for tracing. 0e6a3b68
  • finagle-core: Introduced MinSendBackupAfterMs to the stack param Configured in BackupRequestFilter and propagated changes to MethodBuilder by adding new versions of idempotent function. When traffic load is low, this is useful to increase the delay when backup requests are sent and prevent the client from sending unnecessary backup requests. b0b8a6bb
  • finagle-core: Added a new annotation clnt/has_dark_request in tracing and Finagle Local context. The new annotation can be used to indicate whether or not the request has a span that is sent to dark service. dab1e48d

Bug Fixes

  • finagle-netty4-http: On a Request, adding multiple cookies with the same name to a CookieMap preserves all of them. Only cookies on Responses are deduplicated. Previously, adding a Request cookie with the same name would overwrite the old value with the new value. 6a49bfda
  • finagle-postgres: Fixed a bug where a single framer instance was shared across all connections to a host when using TLS. 185e2115

Breaking API Changes

  • finagle-core: Changed the shouldInvoke parameter in method serviceConcurrently and sendDarkRequest in AbstractDarkRequestFilter to be a Boolean instead of a function of (Req => Boolean). dab1e48d
  • finagle-core: Renamed the existing clnt/dark_request to clnt/is_dark_request in c.t.finagle.filter.DarkTrafficFilterdab1e48d

Runtime Behavior Changes

  • finagle: Bump version of Caffeine to 2.9.3. c42cea2c
  • finagle: Upgrade to Netty 4.1.73.Final and netty-tcnative 2.0.46.Final.cccbae40
  • finagle-core: in TimeoutFilter, only transform a timeout exception caused by TimeoutFilter. This also changes the type of exception raised by the TimeoutFilter from a java.util.concurrent.TimeoutException to a com.twitter.finagle.RequestTimeoutException. 6a95f37d
  • finagle-mux: Exceptions raised when Mux negotiation has failed have been moved to a Debug log level as the stack trace is generally long and not necessarily helpful. The logged message now includes the remote address and that is logged at both the Debug level (with the exception and stack trace) and Warning level (without). 712878ef
  • finagle-core: c.t.f.ssl.SslConfigurations.initializeSslContext now creates an engine which includes TLSv1.3 as a supported protocol. cc6c9db8
  • finagle-netty4: c.t.f.n.ssl.client.Netty4ClientSslConfigurations.createClientContext and c.t.f.n.ssl.server.Netty4ServerSslConfigurations.createServerContext now create contexts using the provided cipher suites. 9c6898ef
2022-01-13 07:23:02
finagle

Finagle 22.1.0

22.1.0

Runtime Behavior Changes

  • finagle: Bump version of Jackson to 2.13.1. 831b2512
2021-12-16 05:18:29
finagle

Finagle 21.12.0

21.12.0

Deprecations

  • finagle-zipkin-core: c.t.f.zipkin.core.Sampler.DefaultSampleRate is deprecated in favor of c.t.f.zipkin.core.DefaultSampler.sampleRate. bd04e1c9

Bug Fixes

  • finagle-zipkin-core: c.t.f.zipkin.core.Sampler would sample at 1/10,000 rate when configured with a lower (but non-zero) rate. It can now sample at rates as low as 1/16,777,216. 17cfb580

Runtime Behavior Changes

  • finagle-zipkin-scribe: c.t.f.zipkin.thrift.ZipkinTracer uses c.t.f.zipkin.core.DefaultSampler.sampleRate as the default sample rate instead of deprecated c.t.f.zipkin.core.Sampler.DefaultSampleRate. This allows it to correctly observe user-configured overrides to the default sample rate. When a ZipkinTracer is constructed with default parameters and there are no user-configured overrides, the behavior is unchanged. bd04e1c9
2021-11-24 03:17:43
finagle

Finagle 21.11.0

21.11.0

Changed

  • finagle-base-http: Promote several classes out of exp experimental package: c.t.f.http.{GenStreamingSerialServerDispatcher, IdentityStreamTransport, StreamTransport} along with internal support classes. 81169d53

Breaking API Changes

  • finagle-core: Remove c.t.f.loadbalancer.Balancer.maxEffort. Remove the maxEffort argument from Balancers.{p2c, p2cPeakEwma, aperture, aperturePeakEwmaUse, roundRobin}. 25f01f77
  • finagle-core: c.t.f.tracing.ClientRequestTracingFilter has been removed. Record relevant tracing information in your service or client directly. bcd89491
  • finagle: Remove com.twitter.finagle.Group, and other rarely used and deprecated pieces that depend on it com.twitter.finagle.memcached.TwitterCacheResolver, com.twitter.finagle.memcached.CacheNodeGroup, com.twitter.finagle.memcached.RubyMemCacheClient, and com.twitter.finagle.memcached.PHPMemCacheClient. Instead of Group, please use Var[Set[T]] or Activity[Set[T]] directly instead. f6021319

Runtime Behavior Changes

  • finagle: Update Caffeine cache library to version 2.9.2 7c91f966
2021-10-28 01:39:26
finagle

Finagle 21.10.0

21.10.0

Breaking API Changes

  • finagle-core: c.t.f.loadbalancer.distributor.AddressedFactory has been removed. Use c.t.f.loadbalancer.EndpointFactory directly instead. 4043382a

  • finagle-core: Moved c.t.finagle.stats.LoadedStatsReceiver and c.t.finagle.stats.DefaultStatsReceiver from the finagle-core module to util-stats. 709c0c37