finagle

A fault tolerant, protocol-agnostic RPC system

APACHE-2.0 License

Downloads
789.1K
Stars
8.8K
Committers
503

Bot releases are hidden (Show)

finagle - finagle-24.5.0 Latest Release

Published by finaglehelper 5 months ago

finagle - Finagle 23.11.0

Published by finaglehelper 12 months ago

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
finagle - Finagle 22.12.0

Published by finaglehelper almost 2 years ago

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
finagle - Finagle 22.7.0

Published by finaglehelper about 2 years ago

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`
finagle - Finagle 22.4.0

Published by finaglehelper over 2 years ago

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
finagle - Finagle 22.3.0

Published by finaglehelper over 2 years ago

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
finagle - Finagle 22.2.0

Published by finaglehelper over 2 years ago

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
finagle - Finagle 22.1.0

Published by finaglehelper over 2 years ago

22.1.0

Runtime Behavior Changes

  • finagle: Bump version of Jackson to 2.13.1. 831b2512
finagle - Finagle 21.12.0

Published by finaglehelper almost 3 years ago

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
finagle - Finagle 21.11.0

Published by finaglehelper almost 3 years ago

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
finagle - Finagle 21.10.0

Published by finaglehelper almost 3 years ago

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

finagle - Finagle 21.9.0

Published by finaglehelper about 3 years ago

21.9.0

Breaking API Changes

  • finagle-thrift: Removed c.t.finagle.thrift.ThriftClient#newMethodIface and
    ThriftClient#thriftService, use c.t.f.thrift.ThriftClient#methodPerEndpoint. fc21cccf

Bug Fixes

  • finagle-core/partitioning: Close balancers and their gauges when repartitioning.
    d0bd053d

Runtime Behavior Changes

  • finagle: Upgrade to Netty 4.1.67.Final and netty-tcnative 2.0.40.Final. c373fc08
  • finagle: Downgrade to Netty 4.1.66.Final cbfbef89
  • finagle: Bump version of Jackson to 2.11.4. 19750a80
  • finagle-core: OffloadFilter hands off work from Netty I/O thread to the offload CPU thread pool
    right after we enter the Finagle stack by default. Previously this could be enabled via a toggle.
    The com.twitter.finagle.OffloadEarly toggle has been removed. 2b5086fe
finagle - Finagle 21.8.0

Published by finaglehelper about 3 years ago

New Features

  • finagle-mysql: introduce newRichClient(dest: String, label: String) method, which removes the
    need for extra boilerplate to convert the destination String to a c.t.finagle.Name when
    specifying both dest and label in String form. c211bfbe
  • finagle-http, finagle-thriftmux: introduce client.withSni() API. Use this api to specify an
    SNI hostname for TLS clients. a8ec457b

Runtime Behavior Changes

  • finagle: Update Caffeine cache library to version 2.9.1 d9e551a3

  • finagle: Update ScalaCheck to version 1.15.4 145ab4aa

  • finagle-core: change ServiceClosedException to extend FailureFlags and to be
    universally retryable e621e5ff

  • finagle-http: remove the com.twitter.finagle.http.UseH2,
    com.twitter.finagle.http.UseH2CClients2, com.twitter.finagle.http.UseH2CServers and
    com.twitter.finagle.http.UseHttp2MultiplexCodecClient toggles. The configuration for
    c.t.finagle.Http.client and c.t.finagle.Http.server now default to using the HTTP/2 based
    implementation. To disable this behavior, use c.t.finagle.Http.client.withNoHttp2 and
    c.t.finagle.Http.server.withNoHttp2 respectively.

    Alternatively, new GlobalFlag's have been introduced to modify the default behavior of clients
    and servers that have not been explicitly configured, where
    the com.twitter.finagle.http.defaultClientProtocol
    and com.twitter.finagle.http.defaultServerProtocol flags can be set to HTTP/1.1 to modify
    the default client or server configuration, respectively. PHAB_ID=D625880`

  • finagle-netty4: Finagle now reuses Netty "boss" (or parent) threads instead of creating a new
    thread per server. Netty parent threads are servicing the server acceptor, a relatively
    lightweight component that listens for new incoming connections before handing them out to the
    global worker pool. 5e9998fc

  • finagle-http2: introduce optional parameter NackRstFrameHandling to enable or disable NACK
    conversion to RST_STREAM frames. 728aed03

  • finagle-thrift, finagle-thriftmux: clients may start reporting (correctly) lower success rate.
    Previously server exceptions not declared in IDL were erroneously considered as successes.
    The fgix also improves failure detection and thus nodes previously considered as healthy
    by failure accrual policy may be considered as unhealthy. 3bba41c6

Bug Fixes

  • finagle-core: Add BackupRequestFilter to client registry when configured. 56092e96
  • finagle-thrift, finagle-thriftmux: clients now treat server exceptions
    not declared in IDL as failures, rather than successes,
    and do not skip the configured response classifier for failure accrual.
    3bba41c6
finagle - Finagle 21.6.0

Published by finaglehelper over 3 years ago

New Features

  • finagle-core: Introduce Dtab.limited, which is a process-local Dtab that will
    NOT be remotely broadcast for any protocol, where Dtab.local will be
    broadcast for propagation on supported protocols. For path name resolution, the
    Dtab.local will take precedence over the Dtab.limited, if the same path is
    defined in both, and both take precedence over the Dtab.base. The existing
    Dtab.local request propagation behavior remains unchanged. 2e06c669
  • finagle-core: Add descriptions to RequestDraining, PrepFactory, PrepConn, and
    protoTracing modules in StackClient. Add descriptions to preparer and
    protoTracing modules in StackServer. 1ea1a3eb

Breaking API Changes

  • finagle-memcached: Ketama Partitioned Client has been removed and the Partition Aware
    Memcached Client has been made the default. As part of this change,
    com.twitter.finagle.memcached.UsePartitioningMemcachedClient toggle has been removed,
    and it no longer applies. 2628b84b

Runtime Behavior Changes

  • finagle-core: Broadcast context keys lookups are now case insensitive. This change is backwards
    compatible as the marshalled key id is unchanged. Although enabled by default, this change will
    be temporarily sitting behind a toggle, com.twitter.finagle.context.MarshalledContextLookupId
    that can be used to turn off this change. 69c29093

Deprecations

  • finagle-core: The ServerBuilder pattern has been deprecated. Use the stack server pattern
    instead. 386171ad
finagle - Finagle 21.5.0

Published by finaglehelper over 3 years ago

New Features

  • finagle-http2: Added c.t.f.http2.param.EnforceMaxConcurrentStreams which allows users to
    configure http2 clients to buffer streams once a connection has hit the max concurrent stream
    limit rather than rejecting them. A buffered_streams gauge has been added to track the
    current number of buffered streams. c6d5f520
  • finagle-mux: Added support for TLS snooping to the mux protocol. This allows a thriftmux
    server to start a connection as TLS or follow the existing upgrade pathway at the leisure of
    the client. This also allows the server to support opportunistic TLS and still downgrade to
    vanilla thrift. 60705fd2
  • finagle-netty4: Added a new counter to keep track of the number of TLS connections that were
    started via snooping. 5569615e
  • finagle-thrift: Thrift(Mux) clients and servers now fill in a c.t.f.Thrift.param.ServiceClass
    stack param with the runtime class corresponding to a IDL-generated service stub.
    04a2de2c

Breaking API Changes

  • finagle-core: c.t.f.param.Logger has been removed. Use external configuration supported by
    your logging backend to alter settings of com.twitter.finagle logger. 99982cda

Runtime Behavior Changes

  • finagle-http: Make handling of invalid URI consistent across client implementations. There are
    behavioral inconsistencies amongst the current HTTP client implementations:

    Our HTTP/1.x clients allow for submitting requests that contain non-ASCII characters and
    invalid character encoded sequences, while our HTTP/2 clients will either mangle
    the URI and strip out non-ASCII characters within the Netty pipeline or result in an
    UnknownChannelException when attempting to parse invalid character encoded sequences.
    With this change, we now consistently propagate an InvalidUriException result, which
    is marked as NonRetryable for all HTTP client implementations. All HTTP server implementations
    maintain behavior of returning a 400 Bad Request response status, but now also correctly
    handle invalid character encoded sequences. fa58caab

Bug Fixes

  • finagle-core: Failed writes on Linux due to a remote peer disconnecting should now
    be properly seen as a c.t.f.ChannelClosedException instead of a
    c.t.f.UnknownChannelException. 6214e6ac
  • finagle-http2: The streams gauge is now correctly added for http2 connections over TLS.
    c6d5f520
  • finagle-core: c.t.f.n.NameTreeFactory will now discard empty elements in
    c.t.f.NameTree.Unions with zero weight. cf73946d
  • finagle-http: All HTTP server implementations consistently return a 400 Bad Request
    response status when encountering a URI with invalid character encoded sequences.
    fa58caab
finagle - Finagle 21.4.0

Published by finaglehelper over 3 years ago

New Features

  • finagle-core: Introduce a new ResponseClassifier ('IgnoreIRTEs') that treats
    com.twitter.finagle.IndividualRequestTimeoutExceptions as ResponseClass.Ignored.
    This response classifier is useful when a client has set a super low RequestTimeout and
    receiving a response is seen as 'best-effort'. e897bd67
  • finagle-mysql: Introduce support of opportunistic TLS to allow mysql clients
    with enabled TLS to speak over encrypted connections with MySQL servers where
    TLS is on, and fallback to plaintext connections if TLS is switched off on
    the server side. e02495aa

Runtime Behavior Changes

  • finagle-core: The "failures" counter is changed to be created eagerly, when no failure
    happens, the counter value is 0. d81a57c6
finagle - Finagle 21.3.0

Published by finaglehelper over 3 years ago

New Features

  • finagle-core: Added value ForceWithDtab to flag
    -com.twitter.finagle.loadbalancer.exp.apertureEagerConnections that forces the
    aperture load balancer to eagerly connect, even in staging environments where
    Dtab locals are set. 9dab522d
  • finagle-core: Introduce a new Backoff to create backoffs based on varies strategies, where
    backoffs are calculated on the fly, instead of being created once and memoized in a Stream.
    Also introduced Backoff.fromStream(Stream) and Backoff.toStream to help with migration to
    the new API. 91d24c33
  • finagle-netty4: Upgrade to Netty 4.1.59.Final and TcNative 2.0.35.Final. ee6ced91
  • finagle-http: Integrate Kerberos authentication filter to finagle http client and server.
    e3bfa0c3 eefc21c8
  • finagle-core: Provided c.t.f.ssl.TrustCredentials.X509Certificates to enable directly
    passing X509Certificate instead of passing a File. 61c2a596

Breaking API Changes

  • finagle: Builds are now only supported for Scala 2.12+ 8a48eab7
  • finagle-core: Changed flag -com.twitter.finagle.loadbalancer.exp.apertureEagerConnections"
    from having Boolean values true or false to EagerConnectionsType` values Enable,
    Disable, and ForceWithDtab. 9dab522d
  • finagle-mysql: The constructor of c.t.f.mysql.transport.MysqlBufReader now takes an underlying
    c.t.io.ByteReader. Prior uses of the constructor, which took a c.t.io.Buf, should migrate to
    using c.t.f.mysql.transport.MysqlBufReader.apply instead. ad73f92d
  • finagle-base-http: Kerberos jaas config KerberosConfiguration is replaced with ServerKerberosConfiguration
    and ClientKerberosConfiguration concrete classes.

Runtime Behavior Changes

  • finagle: Revert to scala version 2.12.12 due to https://github.com/scoverage/sbt-scoverage/issues/319
    c2db97c2
  • finagle: Bump scala version to 2.12.13 b8e4e0ac
  • finagle-core: Move helper tracing methods like traceLocal in Trace into the Tracing class. This
    allows cheaper use of these APIs by first capturing a Trace via Trace#apply, avoiding the extra lookups
    that will add overhead on the request path. ec0097cd.
  • finagle-core: c.t.finagle.InetResolver, c.t.finagle.builder.ClientBuilder,
    c.t.finagle.liveness.FailureAccrualFactory, c.t.finagle.liveness.FailureAccrualPolicy,
    c.t.finagle.param.ClientParams, c.t.finagle.param.SessionQualificationParams,
    c.t.finagle.service.FailFastFactory, c.t.finagle.service.RequeueFilter,
    c.t.finagle.service.Retries, c.t.finagle.service.RetryFilter, and
    c.t.finagle.service.RetryPolicy will accept the new c.t.finagle.service.Backoff to create
    backoffs. Services can convert a Stream to/from a Backoff with Backoff.fromStream(Stream)
    and Backoff.toStream. 91d24c33
  • finagle-core: remove the com.twitter.finagle.loadbalancer.apertureEagerConnections Toggle and
    change the default behavior to enable eager connections for c.t.f.loadbalancer.ApertureLeastLoaded
    and c.t.f.loadbalancer.AperturePeakEwma load balancers. The state of the
    com.twitter.finagle.loadbalancer.apertureEagerConnections GlobalFlag now also defaults to enable
    this feature (Enable. You can disable this feature for all clients via setting the
    com.twitter.finagle.loadbalancer.apertureEagerConnections GlobalFlag to Disable for your process.
    (i.e. -com.twitter.finagle.loadbalancer.apertureEagerConnections=Disable).
    ef8d536e

Deprecations

  • finagle-core: Backoff.fromJava is marked as deprecated, since the new Backoff is java-friendly.
    For services using Stream.iterator on the old Backoff, please use the new API
    Backoff.toJavaIterator to acquire a java-friendly iterator. 91d24c33
finagle - Finagle 21.2.0

Published by finaglehelper over 3 years ago

New Features

  • finagle-zipkin-core: Record zipkin.sampling_rate annotation to track sampling
    rate at trace roots. 2269eb6b

  • finagle-core: Added variant of c.t.f.Address.ServiceFactory.apply that does not require
    specifying c.t.f.Addr.Metadata and defaults to c.t.f.Addr.Metadata.empty. 11971f0f

  • finagle-core: Added variant of c.t.f.Name.bound which takes a c.t.f.Service as a parameter.
    Tying a Name directly to a Service can be extremely useful for testing the functionality
    of a Finagle client. 1422ffd5

  • finagle-mux: Added variant of c.t.f.mux.Request.apply and c.t.f.mux.Requests.make which takes
    only the body of the Request (in the form of c.t.io.Buf) as a parameter. This is useful for
    when the path value of a Request is not used by the server (e.g. testing). 3ca46304

Runtime Behavior Changes

  • finagle-memcached: The log level of messages pertaining to whether a Memcached client is using the
    older non-partitioned or the newer partitioned version has been lowered. These messages are no
    longer written at an 'info' level. 4bce560a
finagle - Finagle 21.1.0

Published by finaglehelper over 3 years ago

New Features

Bug Fixes

  • finagle-core: Fix wraparound bug in Ring.weight, as reported by @nvartolomei c4dc4fdc
  • finagle-mysql: Update the UTF8 character set to cover those added in MySQL 8.
    25e581bb
  • finagle-thriftmux: Fixed a bug where connections were not established eagerly in ThriftMux
    MethodBuilder even when eager connections was enabled. ec67d48a

Runtime Behavior Changes

  • finagle-mysql: Don't use the full query when adding tracing annotations. b215d255
finagle - Finagle 20.12.0

Published by finaglehelper almost 4 years ago

New Features

  • finagle-core: Add a new stat (histogram) that reports how long a task has been sitting in the
    offload queue. This instrumentation is sampled at the given interval (100ms by default) that
    can be overridden with a global flag com.twitter.finagle.offload.statsSampleInterval.
    a7ebf2e1
  • finagle-core: Add a new experimental flag com.twitter.finagle.offload.queueSize that allows to
    put bounds on the offload queue. Any excess work that can't be offloaded due to a queue overflow
    is run on IO (Netty) thread instead. Put this way, this flag enables the simplest form of
    backpressure on the link between Netty and OffloadFilter. af228ca6
  • finagle-netty4: Add ExternalClientEngineFactory to the open source version of Finagle. This
    SslClientEngineFactory acts as a better example of how to build custom client and server engine
    factories in order to reuse SSL contexts for performance concerns. 931785d9
  • finagle-core: Provide com.twitter.finagle.naming.DisplayBoundName for configuring how to
    display the bound Name for a given client in metrics metadata. 67be8e1e
  • finagle-core: Provide ClientParamsInjector, a class that will be service-loaded at run-time
    by Finagle clients, and will allow generic configuration of all sets of parameters.
    b7bb5afc

Breaking API Changes

  • finagle-core: Move DarkTrafficFilter and AbstractDarkTrafficFilter from the experimental
    finagle-exp to supported finagle-core. The package containing these classes changed from
    c.t.finagle.exp to c.t.finagle.filter. 0ecaa5e7
  • finagle-core, finagle-thrift: Move ForwardingWarmUpFilter and ThriftForwardingWarmUpFilter
    from the experimental finagle-exp to supported finagle-core, and finagle-thrift, respectively.
    The package containing ForwardingWarmUpFilter changed from c.t.finagle.exp to
    c.t.finagle.filter, and the package containing ThriftForwardingWarmUpFilter changed from
    c.t.finagle.exp to c.t.finagle.thrift.filter. e725bc86
  • finagle-core: FailureAccrualFactory.isSuccess has been replaced with the method
    def classify(ReqRep): ResponseClass to allow expressing that a failure should be ignored.
    d586bd24

Runtime Behavior Changes

  • finagle-core: Use Scala default implementation to calculate Hashcode and equals method for
    ServiceFactoryProxy. c473b395
  • finagle: Update build.sbt to get aarch64 binaries and try the fast path acquire up to 5 times
    before failing over to the AbstractQueuedSynchronizer slow path in NonReentrantReadWriteLock
    for Arm64. d45dfb02

Bug Fixes

  • finagle-core: Users should no longer see the problematic
    java.lang.UnsupportedOperationException: tail of empty stream when a c.t.f.s.RetryPolicy
    is converted to a String for showing. e7ec247d