Skip to content

Finagle 6.31.0

Compare
Choose a tag to compare
@kevinoliver kevinoliver released this 08 Mar 04:18
· 4017 commits to develop since this release

New Features

  • finagle-core: c.t.f.Server now has a serveAndAnnounce method that accepts a SocketAddress
    as an address. RB_ID=758862
  • finagle-core: c.t.f.service.Retries now supports adding delay between each automatic retry.
    This is configured via the Retries.Budget. RB_ID=768883
  • finagle-core: FailureAccrualFactory now uses a FailureAccrualPolicy to determine when to
    mark an endpoint dead. The default policy, FailureAccrualPolicy.consecutiveFailures(),
    mimicks existing functionality, and FailureAccrualPolicy.successRate() operates on the
    exponentially weighted average success rate over a window of requests.RB_ID=756921
  • finagle-core: Introduce c.t.f.transport.Transport.Options to configure transport-level options
    (i.e., socket options TCP_NODELAY and SO_REUSEADDR). RB_ID=773824
  • finagle-http: c.t.f.http.exp.Multipart now supports both in-memory and on-disk file uploads.
    RB_ID=RB_ID=769889
  • finagle-netty4: Hello World. Introduce a Listener for Netty 4.1. This is still considered beta.
    RB_ID=718688
  • finagle-netty4: Introduce ChannelTransport for Netty 4.1. RB_ID=763435
  • finagle-thrift: c.t.f.ThriftRichClient implementations of newServiceIface
    method that accept a label argument to pass to the ScopedStats instance. RB_ID=760157
  • finagle-stats: Added c.t.f.stats now has a statsFilterFile flag which will read a blacklist
    of regex, newline-separated values. It will be used along with the statsFilter flag for stats
    filtering. RB_ID=764914

Deprecations

  • finagle-core: the #channelFactory method of c.t.f.builder.ServerBuilder has been deprecated
    in favor of the c.t.f.netty3.numWorkers flag. RB_ID=718688

Runtime Behavior Changes

  • finagle-core: The behavior for c.t.f.util.DefaultMonitor has changed such that
    unhandled exceptions are propagated to c.t.u.RootMonitor except for
    c.t.f.Failures with a log Level below INFO. RB_ID=758056
  • finagle-core: The metrics for requeues requeue/requeues, requeue/budget and
    requeue/budget_exhausted have moved under retries. They are now retries/requeues,
    retries/budget and retries/budget_exhausted. RB_ID=760213
  • finagle-core: c.t.f.service.RetryFilter and c.t.f.service.RetryExceptionsFilter
    now default to using a RetryBudget to mitigate retry amplification on downstream
    services. The previous behavior can be achieved by explicitly passing in
    RetryBudget.Infinite. RB_ID=766302
  • finagle-core: c.t.f.factory.TrafficDistributor now suppresses changes when a bound
    address is updated from a valid set to an error. Instead, it continues using stale
    data until it gets a successful update.
  • finagle-http: Unhandled exceptions from user defined HTTP services are now converted
    into very basic 500 responses so clients talking to those services see standard HTTP
    responses instead of a dropped connection. RB_ID=755846
  • finagle-memcached: Moved metrics from underlying KetamaPartitionedClient for Memcached clients
    to share the same scope of the underlying finagle client. RB_ID=771691
  • finagle-mux: com.twitter.finagle.mux.ThresholdFailureDetector is turned on by
    default. RB_ID=756213
  • finagle-serversets: The c.t.f.serverset2.Zk2Resolver now surfaces Addr.Pending
    when it detects that its underlying ZooKeeper client is unhealthy. Unhealthy is defined
    as non-connected for greater than its 'unhealthyWindow' (which defaults to 5 minutes).
    RB_ID=760771
  • finagle-serversets: The c.t.f.serverset2.ZkSession now uses an unbounded semaphore to
    limit to 100 outstanding zookeeper requests at any one moment. RB_ID=771399

Breaking API Changes

  • finagle-core: BackupRequestLost is no longer itself an Exception. Use
    BackupRequestLost.Exception in its place. RB_ID=758056
  • finagle-core: Replaced c.t.f.builder.ClientConfig.Retries with
    c.t.f.service.Retries.Policy. RB_ID=760213
  • finagle-core: A deprecated c.t.f.CancelledReadException has been removed.
    RB=763435
  • finagle-http: c.t.f.http.exp.Multipart.decodeNonChunked has been removed from
    the public API. Use c.t.f.http.Request.multipart instead. Also
    c.t.f.http.exp.Multipart.FileUpload is no longer a case class, but base trait
    for Multipart.InMemoryFileUpload and Multipart.OnDiskFileUpload. RB_ID=769889
  • finagle-mux: c.t.f.FailureDetector.apply method is changed to private scope,
    to reduce API surface area. Using FailureDetector.Config is enough to config
    session based failure detection behavior. RB_ID=756833
  • finagle-mux: closeThreshold in c.t.f.mux.FailureDetector.ThresholdConfig is
    changed to closeTimeout, from an integer that was used as a multiplier to time
    duration. This makes it easier to config. RB_ID=759406

Bug Fixes

  • finagle-thrift: c.t.f.ThriftRichClient scoped stats label is now threaded
    properly through newServiceIface RB_ID=760157