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
, andServerBuilder.ServerConfig.Daemonize
, are now private tocom.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 toRB_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``