Skip to content

Finagle 20.12.0

Compare
Choose a tag to compare
@finaglehelper finaglehelper released this 11 Dec 17:34
· 902 commits to develop since this release

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