Finagle v6.36.0 Release Notes
-
๐ Deprecations
* ๐ finagle-http: Removed DtabFilter.Finagle in favor of DtabFilter.Extractor. ``RB_ID=840600`` * ๐ finagle-zipkin: Deprecate `ZipkinTracer` in favor of `ScribeZipkinTracer`. ``RB_ID=840494`` ๐ฅ Breaking API Changes
๐ finagle: Builds are now only for Java 8 and Scala 2.11. See the
blog post <https://finagle.github.io/blog/2016/04/20/scala-210-and-java7/>
_ for details.RB_ID=828898
๐ฏ finagle: Finagle is no longer depending on Twitter's clone of JSR166e, JDK 8 API is used instead.
RB_ID=833652
๐ฆ finagle-cacheresolver: package contents merged into finagle-memcached.
RB_ID=833602
finagle-core: Renamed DeadlineFilter to DeadlineStatsFilter, which now only records stats for the number of requests with exceeded deadlines, the remaining deadline budget, and the transit latency of requests. It no longer rejects requests and has no configuration. We have decided not to pursue Deadline Admission Control at this time.
RB_ID=829372
๐ finagle-core:
ClientBuilder.socksProxy(SocketAddress)
is removed. Use command line flags (seec.t.f.socks.SocksProxyFlags.scala
) instead.RB_ID=834634
๐ finagle-core: Removed "closechans" and "closed" counters from
ChannelStatsHandler
.RB_ID=835194
๐ finagle-core: Removed the "load" gauge from
StatsFilter
as it was duplicated by the "pending" gauge.RB_ID=835199
๐ finagle-core:
c.t.finagle.NoStacktrace
is removed. Usescala.util.control.NoStackTrace
instead.RB_ID=833188
๐ finagle-core:
c.t.finagle.Failure.withStackTrace
is removed. Use system propertyscala.control.noTraceSuppression
instead to fill stacktraces in Finagle's failures.RB_ID=833188
๐ finagle-core:
c.t.f.filter.RequestSerializingFilter
is removed. Usec.t.f.filter.RequestSemaphoreFilter
instead.RB_ID=839372
finagle-core:
SessionParams
no longer containsacquisitionTimeout
. Instead, it was extracted intoClientSessionParams
.RB_ID=837726
finagle-core: Changed visibility of PipeliningDispatcher to private[finagle]. Clients should not be affected, since it's not a part of the end-user API.
RB_ID=843153
.finagle-core: Simplified and unified the constructors for FailureAccrualFactory into a single constructor.
RB_ID=849660
๐ finagle-http: Deprecate channelBufferUsageTracker in favor of maxRequestSize.
RB_ID=831233
finagle-http: HttpClientDispatcher, HttpServerDispatcher, and ConnectionManager are no longer public.
RB_ID=830150
๐ finagle-redis: Deprecated methods have been removed from the client API.
RB_ID=843455
๐ฆ finagle-redis:
c.t.f.redis.*Commands
traits are now package-private.RB_ID=843455
finagle-redis: Replace
ChannelBuffer
withBuf
in client's:HashCommands
:RB_ID=843596
ListCommands
:RB_ID=844596
BtreeSortedSetCommands
:RB_ID=844862
HyperLogLogCommands
:RB_ID=844945
PubSubCommands
:RB_ID=845087
SetCommands
:RB_ID=845578
SortedSetCommands
:RB_ID=846074
๐ finagle-thrift: As part of the migration off of
Codec
, removec.t.f.thrift.ThriftClientBufferedCodec
andc.t.f.thrift.ThriftClientBufferedCodecFactory
which were used byClientBuilder.codec
andServerBuilder.codec
. Replace usage withClientBuilder.stack(Thrift.client.withBufferedTransport)
orServerBuilder.stack(Thrift.server.withBufferedTransport)
.RB_ID=838146
finagle-memcached:
c.t.f.memcached.Client
now usesc.t.bijection.Bijection
instead ofc.t.u.Bijection
.RB_ID=834383
๐ finagle-zipkin: Moved case classes and companion objects
Span
,ZipkinAnnotation
,BinaryAnnotation
,Endpoint
,Sampler
andSamplingTracer
to finagle-zipkin-core.RB_ID=840494
๐ finagle-mysql: Removed
c.t.f.exp.mysql.transport.MysqlTransporter
, as it was not useful for it to be public.RB_ID=840718
๐ Bug Fixes
* finagle-core: PipeliningDispatcher now serializes "write and enqueue Promise" so it's no longer possible for the wrong response to be given to a request. ``RB_ID=834927`` * finagle-http: Servers which aggregate content chunks (streaming == false) now return a 413 response for streaming clients who exceed the servers' configured max request size. ``RB_ID=828741`` * finagle-mysql: `c.t.f.exp.mysql.PreparedCache` now closes prepared statements when no one holds a reference to the cached future any longer. This fixes a race condition where the cached future could be evicted and the prepared statement closed while a user tries to use that prepared statement. ``RB_ID=833970`` * ๐ finagle-netty4-http: Servers now see the correct client host address for requests. ``RB_ID=844076`` ๐ New Features
โฑ finagle-core: Added gauge, "scheduler/blocking_ms" measuring how much time, in milliseconds, the
com.twitter.concurrent.Scheduler
is spending doing blocking operations on threads that have opted into tracking. This also moves the "scheduler/dispatches" gauge out of TwitterServer into Finagle.RB_ID=828289
finagle-core: Added a FailureAccrualPolicy that marks an endpoint dead when the success rate in a specified time window is under the required threshold.
RB_ID=829984
0๏ธโฃ finagle-core:
StackServer
now installs anExpiringService
module by default. This allows servers to have control over session lifetime and brings theStackServer
to feature parity withServerBuilder
.RB_ID=837726
finagle-exp: Changed DarkTrafficFilter to forward interrupts to dark service.
RB_ID=839286
๐ finagle-http: ContextFilter and Dtab-extractor/injector logic has been moved from the http dispatchers into the client and server stacks.
RB_ID=840600
finagle-mysql: Added a
withMaxConcurrentPreparedStatements
method to the client which lets you specify how many prepared statements you want to cache at a time.RB_ID=833970
๐ finagle-redis: Adds support for scripting commands.
RB_ID=837538
๐ finagle-netty4: SOCKS5 proxy support.
RB_ID=839856
finagle-zipkin-core: A new module containing most of the functionality from finagle-zipkin, leaving finagle-zipkin with only Scribe specific code and a service loader. This allows for other transports to be implemented in separate modules. For example the upcoming finagle-zipkin-kafka.
RB_ID=840494
finagle-thriftmux: Introduce a Netty4 implementation of mux and thrift-mux.
RB_ID=842869
โ Runtime Behavior Changes
* ๐ง finagle-core: For SSLEngine implementations supplied via configuration or created by Finagle, the setEnableSessionCreation method is no longer called. The supplied value, true, is the default for JSSE implementations, and for other engines this can be an unsupported operation. ``RB_ID=845765`` * finagle-core: Pipelined protocols (memcached, redis) no longer prevent connections from being cut by interrupts. Instead, interrupts are masked until a subsequent ten second timeout has expired without a response in the pipeline. ``RB_ID=843153`` * finagle-core: MonitorFilter now installs the parameterized monitor, and will no longer fail the request automatically if any exception is thrown synchronously (like if an exception is thrown in an onSuccess or onFailure block). This removes a race, and makes Finagle more deterministic. ``RB_ID=832979``