Finagle v6.28.0 Release Notes

  • ๐Ÿ†• New Features

    
    โš™ Runtime Behavior Changes
    
    • ๐Ÿšš finagle-core: Weights are no longer supported by the load balancers. They are moved one level above and interpreted by a new module, the TrafficDistributor. This frees the balancers to have non-linear load metrics. It also changes the semantics of weights. They are now normalized by size of endpoints that share the same weight and interpreted proportional to offered load (however, they can still be though of, roughly, as multipliers for traffic). RB_ID=677416

    • finagle-core: The RequestSemaphoreFilter now sheds load by dropping the tail of the queue and failing it with a Failure.Restartable. Previously, the filter had an unbounded queue but now the default size is 0 (i.e. no queueing). The dropped requests are in turn requeued by Finagle clients with protocol support (e.g. Http, ThriftMux). RB_ID=696934

    • finagle-core: ServerBuilder.ServerConfig.BindTo, ServerBuilder.ServerConfig.MonitorFactory, and ServerBuilder.ServerConfig.Daemonize, are now private to com.twitter.finagle.builder. RB_ID=730865

    • finagle-memcachedx: Renamed to finagle-memcached.

    • finagle-stats: Standard deviation ("$statName.stddev") is no longer exported. RB_ID=726309 (follow up to RB_ID=717647)

    • ๐Ÿšค finagle-serversets: namer/bind_latency_us stat now counts only time in name resolution, not service acquisition. namer/{dtabcache,namecache,nametreecache}/misstime_ms stats are no longer exported. RB_ID=730309

    ๐Ÿ’ฅ Breaking API Changes

    
    * finagle-core: `c.t.f.jsr166y` has been replaced with Java 7 API. finagle: Replace JSR166y
      with Java 7 API. ``RB_ID=720903``
    
    * finagle-core: `LoadBalancerFactory` no longer takes endpoints with weights as
      per the decoupling mentioned in runtime changes. ``RB_ID=677416``
    
    * finagle-core: `RequestSemaphoreFilter.Param` now accepts a `com.twitter.concurrent.AsyncSemaphore`
      instead of an integer representing the max concurrency. ``RB_ID=696934``
    
    * ๐Ÿ”€ finagle-core: removed `c.t.f.asyncDns` flag and `c.t.f.SyncInetResolver`; DNS resolution is
      now always asynchronous. ``RB_ID=734427``
    
    * 0๏ธโƒฃ finagle-core: `ClientBuilder.ClientConfig.DefaultParams`, `ClientBuilder.ClientConfig.DestName`,
      `ClientBuilder.ClientConfig.GlobalTimeout`, `ClientBuilder.ClientConfig.Daemonize`, and
      `ClientBuilder.ClientConfig.MonitorFactory` are now private to `com.twitter.finagle.builder`.
      `ClientBuilder.ClientConfig.Retries` is now private to `com.twitter`. ``RB_ID=727245``
    
    * finagle-httpx: `Method` no longer has an extractor. To access the name of
      custom methods, use `toString`. ``RB_ID=722913``
    
    * finagle-mux: `c.t.f.mux.exp.FailureDetector` and `c.t.f.mux.exp.sessionFailureDetector` are
      moved out of exp package into mux package. ``RB_ID=725350``