Finagle 6.36.0
cacoco
released this
08 Jul 18:29
·
3565 commits
to develop
since this release
Deprecations
- finagle-http: Removed DtabFilter.Finagle in favor of DtabFilter.Extractor.
RB_ID=840600
- finagle-zipkin: Deprecate
ZipkinTracer
in favor ofScribeZipkinTracer
.
RB_ID=840494
Breaking API Changes
- finagle: Builds are now only for Java 8 and Scala 2.11. See the
blog post 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 property
scala.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-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-memcached:
c.t.f.memcached.Client
now usesc.t.bijection.Bijection
instead ofc.t.u.Bijection
.RB_ID=834383
- finagle-thrift: As part of the migration off of
Codec
, remove
c.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-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, thecom.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
- 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