finagle

A fault tolerant, protocol-agnostic RPC system

APACHE-2.0 License

Downloads
789.1K
Stars
8.8K
Committers
503

Bot releases are hidden (Show)

finagle - Finagle 20.10.0

Published by finaglehelper almost 4 years ago

Breaking API Changes

  • finagle-thrift: Change the partition locator function getLogicalPartitionId in
    PartitioningStrategy from Int => Int to Int => Seq[Int], which supports many to many mapping
    from hosts and logical partitions. ab641adc

Runtime Behavior Changes

  • finagle-core: Disable eager connections for balancers with a non 1.0 weight. 11eae0d6
finagle - Finagle 20.9.0

Published by finaglehelper about 4 years ago

New Features

  • finagle-core: Add RelativeName field to Metric Metadata and populate it for
    client and server metrics. de589ffa
  • finagle-scribe: Add c.t.finagle.scribe.Publisher for publishing messages to a
    Scribe process. 7723a949

Runtime Behavior Changes

  • finagle: Bump version of Jackson to 2.11.2. 6c6c882a

Bug Fixes

  • finagle-core: The TraceId alternative constructor now forwards the traceIdHigh parameter to
    the primary constructor. 567e8d66
finagle - Finagle 20.8.1

Published by finaglehelper about 4 years ago

20.8.1

New Features

  • finagle-thriftmux: Add MethodBuilder specific APIs for ThriftMux partition aware client.
    e2f467c1
finagle - Finagle 20.8.0 (DO NOT USE)

Published by bonniee about 4 years ago

20.8.0

Runtime Behavior Changes

  • finagle-netty4-http: Post, Put, Patch non-streaming outbound requests with empty bodies will
    be added the Content-Length header with value 0. 9ce18e85
  • finagle-core: A ServiceFactory created by ServiceFactory.const/constant propagates the wrapped
    service status. 3347c095
  • finagle-http: c.t.f.http.filter.PayloadSizeFilter no longer adds an annotation on each
    streaming chunk and instead aggregates the byte count and adds a single record on stream
    termination. e87b1c35
  • finagle-zipkin-scribe: zipkin scribe log_span prefix replaced with scribe. zipkin-scribe/scribe/<stats>. 5b100ee9

New Features

  • finagle-core: introduce type-safe ReqRep variant 459daf68
  • finagle-core: Added a new variant of Filter.andThenIf which allows passing the parameters
    as individual parameters instead of a Scala tuple. fb071d9b
  • finagle-core: new metric (counter) for traces that are sampled. finagle/tracing/sampled 1d6503e0
  • finagle-netty4: Add the c.t.f.netty4.Netty4Listener.MaxConnections param that can be used
    to limit the number of connections that a listener will maintain. Connections that exceed
    the limit are eagerly closed. 9991aae3
  • finagle-thrift: Added java-friendly c.t.f.thrift.exp.partitioning.ClientHashingStrategy and
    c.t.f.thrift.exp.partitioning.ClientCustomStrategy create methods, and added java-friendly
    c.t.f.thrift.exp.partitioning.RequestMergerRegistry#addRequestMerger and
    c.t.f.thrift.exp.partitioning.ResponseMergerRegistry#addResponseMerger to make partitioning
    easier to use from Java. e0d78d14

Breaking API Changes

  • finagle-core: ReqRep can no longer be created via new ReqRep(..). Please use
    ReqRep.apply(..) instead.
    459daf68
  • finagle-thrift: Updated the c.t.f.thrift.exp.partitioning.ClientHashingStrategy and the
    c.t.f.thrift.exp.partitioning.ClientCustomStrategy to take constructor arguments instead
    of needing to override methods on construction. e0d78d14
  • finagle-zipkin-core: Removed unused statsReceiver constructor argument from RawZipkinTracer. 5b100ee9
finagle - Finagle 20.7.0

Published by finaglehelper about 4 years ago

20.7.0

Breaking API Changes

  • finagle-core: Correct the spelling of Tracing.recordClientSendFrargmet() to
    Tracing.recordClientSendFragment() 30726c01
  • finagle-redis: Use StrictKeyCommand for XDEL d174f9d6
  • finagle-toggle: Toggle.isDefinedAt(i: Int) has become Toggle.isDefined. Additionally, a new method Toggle.isUndefined has been added. 3bb78ce8
  • finagle-zipkin-scribe: The scribe.thrift file was moved to finagle-thrift/src/main/thrift under a new
    namespace. com.twitter.finagle.thrift.scribe.(thrift|thriftscala) 01a20b79

Bug Fixes

  • finagle-zipkin-scribe: The scribe client should be configured using the NullTracer. Otherwise, spans
    produced by the client stack will be sampled at initialSampleRate. 0446dd3e
finagle - Finagle 20.6.0

Published by finaglehelper over 4 years ago

Runtime Behavior Changes

  • finagle-core: FailFastFactory is now disabled at runtime when a client's destination has only
    one endpoint, since the client cannot do anything meaningful by breaking the circuit early.
    This is recommended as a best practice anyway, now it's the default behavior. Less things
    to configure and worry about! f2c100e8
  • finagle-core: namer annotations are prefixed with "clnt/". c8680fff
  • finagle-core: namer.success & namer.failure are not annotated as they are not request based.
    namer.tree annotation was also removed to reduce the size of traces. c8680fff
  • finagle-core: The offload filter client annotation is annotated under the child request span instead of
    its parent. The offload filter annotations are also changed to be binary annotations with the key
    (clnt|srv)/finagle.offload_pool_size and the value being the pool size 011f096d
  • finagle-memcached: The key in RetrievalCommand are ommited in traces. The total number of Hits
    and Misses are annotated via a counter instead under clnt/memcached.(hits/misses) 6fd0e2c9

Breaking API Changes

  • finagle-core: Migrated List[Tracer] to Seq[Tracer] in Tracing, and tracersCtx.
    cb06890b
  • finagle-core: PayloadSizeFilter and WireTracingFilter are now public APIs.
    fc1951a5
  • finagle-zipkin-core: initialSampleRate flag will now fail if the sample rate is not in the range
    [0.0, 1.0]. 180f333c
  • finagle-mysql: mysql client annos are prefixed with clnt/ 37d55c2a

New Features

  • finagle-thrift: Expose c.t.f.thrift.exp.partitioning.PartitioningStrategy,
    the bundled PartitioningStrategy APIs are public for experiments.
    bf1d47be
  • finagle-http: Add LoadBalancedHostFilter to allow setting host header after LoadBalancer
    5304ce69
  • finagle-core: Trace the request's protocol identified by the ProtocolLibrary of the client
    stack. This is annotated under clnt/finagle.protocol. 464bbeb6
  • finagle-core: Add letTracers to allow setting multiple tracers onto the tracer stack.
    cb06890b
  • finagle-core: DeadlineFilter now exposes a metric admission_control/deadline/remaining_ms
    which tracks the remaining time in non-expired deadlines on the server side. An increase in this
    stat, assuming request latency is constant and timeout configurations upstream have not changed,
    may indicate that upstream services have become slower. 939f9a3e
  • finagle-redis: Make partitionedClient accessible. 7ba107e1
  • finagle-core, finagle-http, finagle-thriftmux: introduce MethodBuilder maxRetries
    configuration. A ThriftMux or HTTP method can now be configured to allow a specific number of
    maximum retries per request, where the retries are gated by the configured RetryBudget. This
    configuration can be applied via Http.client.methodBuilder(name).withMaxRetries(n) or
    ThriftMux.client.methodBuilder(name).withMaxRetries(n). 4328896d
  • finagle-memcached: Annotate the shard id of the backend the request will reach. 6fd0e2c9

Bug Fixes

  • finagle-zipkin-core: Remove flush and late-arrival annotations, which artificially extend
    trace durations. 967ef1fc
  • finagle-core: namer annotations are added at the Service level instead of ServiceFactory as
    traces are intended to be request based c8680fff
finagle - Finagle 20.5.0

Published by finaglehelper over 4 years ago

Runtime Behavior Changes

  • finagle: Bump jackson version to 2.11.0. 696bb515
finagle - Finagle 20.4.1

Published by yufangong over 4 years ago

New Features

  • finagle-redis: Add ConnectionInitCommand stack to set database and password.
    9fe05301

  • finagle-mysql: Add ConnectionInitSql stack to set connection init sql. bd4411dd

Runtime Behavior Changes

  • finagle-core: Requeued reqeuests due to the c.t.finagle.service.RequeueFilter will generate
    their own spanId. af490773

Bug Fixes

  • finagle-core: Restrict OffloadFilter from allowing interruption of the work performed in the worker pool. This is to ensure that the worker thread isn't interruptible, which is a
    behavior of certain FuturePool implementations. f0af6ad7 59f9f2b5

  • finagle-netty4: ChannelStatsHandler will now only count the first channel close(..) call when incrementing the closes counter. 3fa91944

Breaking API Changes

  • finagle-toggle: Removed abstract type for c.t.finagle.Toggle, all Toggles are of type Int.
    This is to avoid Integer auto-boxing when calling Toggle.apply, thus to improve overall toggle performance. c81a87b0

  • finagle-core: Retried requests due to the c.t.finagle.service.RetryFilter will generate their
    own spanId. 762471a0

finagle - Finagle 20.4.0 (DO NOT USE)

Published by finaglehelper over 4 years ago

New Features

  • finagle-thrift/thriftmux: Thrift and ThriftMux client side can set a sharable
    TReusableBuffer by withTReusableBufferFactory. 9213ca35

Breaking API Changes

  • finagle-partitioning: Rename c.t.finagle.partitioning.CacheNode and CacheNodeMetadata
    to c.t.finagle.partitioning.PartitionNode and PartitionNodeMetadata. d32f0c25

  • finagle-partitioning: Rename c.t.finagle.partitioning.KetamaClientKey to HashNodeKey
    2d0cd33e

Bug Fixes

  • finagle-base-http: RequestBuilder headers use SortedMap to equalize keys in different caps.
    setHeader keys are case insensitive, the last one wins. 535f324c
finagle - Finagle 20.3.0

Published by finaglehelper over 4 years ago

New Features

  • finagle-opencensus-tracing: Add support for providing a custom TextFormat for header
    propagation. a02d377a

Runtime Behavior Changes

  • finagle-netty4: When not using the JDK implementation, the Netty reference counted SSL
    types are used which move SSL cleanup out of the GC cycle, reducing pause durations.
    466aa5bf

  • finagle-base-http: Support for the SameSite cookie attribute is now on by default. This can
    be manipulated via the com.twitter.finagle.http.cookie.supportSameSiteCodec flag. This means
    that cookies that have a value other than Unset for the sameSite field will have the
    attribute encoded (by servers) and decoded (by clients). See this
    Chromium blog post
    for more information about the SameSite attribute. f96c3729

  • finagle-core: The default NullTracer for ClientBuilder has been removed. Affected clients may
    now see tracing enabled by default via the Java ServiceLoader, as described in the
    Finagle User's Guide. 6b3f0940

  • finagle-http2: The HTTP/2 frame logging tools now log at level INFO. This is symmetric with
    the behavior of the ChannelSnooper tooling which serves a similar purpose which is to aid
    in debugging data flow and isn't intended to be enabled in production. 78e4596b

Bug Fixes

  • finagle-zipkin-scribe: add a logical retry mechanism to scribe's TRY_LATER response 23ff595b

  • finagle-http2: Initialize state in H2Pool before use in the gauge to avoid a
    NullPointerException. 289de8a3

  • finagle-http2: HTTP/2 server pipeline now traps close calls to ensure that
    events from the initial HTTP/1.x pipeline don't close the HTTP/2 session. For
    example, the initial pipeline was subject to session timeouts even though the
    tail of the socket pipeline was effectively dead. Closing of HTTP/2 server
    pipelines is now handled through the H2ServerFilter. 670dbf74

  • finagle-http2: HTTP/2 servers clean out unused channel handlers when upgrading
    from a HTTP/1.x pipeline, removing some traps such as unintended timeouts.
    3dfe8226

  • finagle-opencensus-tracing: Fixed internal server error when invalid or no propagation headers
    are provided. a02d377a

  • finagle-zipkin-scribe: export application metrics under a consistent zipkin-scribe scope. Finagle client
    stats under clnt/zipkin-scribe a17659dd

Breaking API Changes

  • finagle-zipkin-scribe: update the deprecated FutureIface to MethodPerEndpoint 23ff595b

  • finagle-zipkin-scribe: Coalesce ScribeRawZipkinTracer apply methods into two simple ones. a17659dd

  • finagle-zipkin-scribe: DefaultSampler moved to c.t.f.zipkin.core in finagle-zipkin-core. ac9c7ec1

  • finagle-zipkin-scribe: initialSampleRate GlobalFlag is moved to finagle-zipkin-core, under the same package
    scope c.t.f.zipkin. ac9c7ec1

finagle - Finagle 20.1.0

Published by bryce-anderson over 4 years ago

New Features

  • finagle-memcached: Upgrade to Bijection 0.9.7. de0ec2c6
  • finagle-opencensus-tracing: Enables cross-build for 2.13.0. fee83b10
  • finagle-thriftmux: Add support for automatically negotiating compression between a client
    and server. Off by default, clients and servers must be configured to negotiate.
    d42c87a9
  • finagle-stats: Enables cross-build for 2.13.0. 4144d73c
  • finagle-stats-core: Enables cross-build for 2.13.0. 4144d73c
  • finagle-serversets: Add generic metadata support in ServerSet. Add support for announcing the
    generic metadata via ZkAnnouncer. Add support to resolve the generic metadata via Zk2Resolver
    180bb925

Breaking API Changes

  • finagle-partitioning: ZKMetadata case class has a new default argument breaking API for
    Java users. 180bb925
  • finagle-serversets: Endpoint case class has a new metadata argument. 180bb925
finagle - Finagle 19.12.0

Published by finaglehelper almost 5 years ago

New Features

  • finagle-core, finagle-exp: Add annotations to DarkTrafficFilter to identify which span
    is dark, as well as which light span it correlates with. ba351f4d
  • finagle-core: Introduce Trace#traceLocal for creating local spans within a trace context.
    1c6d5d24

Runtime Behavior Changes

  • finagle: Upgrade to jackson 2.9.10 and jackson-databind 2.9.10.1 e333c839
  • finagle-core: Per-method metrics on MethodBuilder are now created lazily, so if you have
    methods that you don't use, the associated metrics won't be exported. 6be5dc48
  • finagle-mysql: The RollbackFactory no longer attempts to roll back if the underlying
    session is closed since it is highly unlikely to succeed. It now simply poisons the
    session and calls close. 99135e00
  • finagle-netty4: Change the 'connection_requests' metric to debug verbosity.
    a6dc1296
  • finagle-serversets: Ensure ZkSession#retrying is resilient to ZK host resolution failure.
    7125026a
  • finagle-thrift: Per-method metrics are now created lazily, so if you have methods on a Thrift
    service that you don't use, the associated metrics won't be exported. 6be5dc48
  • finagle-zipkin-core: Tracing produces microsecond resolution timestamps in JDK9 or later.
    08a926c6
  • finagle-core: Trace#time and Trace#timeFuture no longer generate timestamped annotations or
    silently discard timing information. They now instead generate a BinaryAnnotation containing
    the timing information. In order to also get timestamped Annotations for when the operation
    began and ended, use in conjunction with Trace#traceLocal. 1c6d5d24

Breaking API Changes

  • finagle-core: The RetryPolicy companion object is no longer a JavaSingleton.
    9ffb3d13
  • finagle-thrift: The RichClientParam constructors are now all either
    deprecated, so to construct it, you must call one of the RichClientParam.apply
    methods. 6be5dc48

Deprecations

  • finagle-core: Deprecate Tracing#record(message, duration) as it does not have the intended
    effect and silently discards any duration information in the resulting trace. Instead you should
    use either Tracing#recordBinary or a combination of Trace#traceLocal and Trace#time.
    1c6d5d24

Bug Fixes

  • finagle-core: ClosableService client stack module that prevents the reuse of closed services
    when FactoryToService is not set. This is important for clients making use of the newClient
    api. c64bea09
finagle - Finagle 19.11.0

Published by finaglehelper almost 5 years ago

New Features

  • finagle-base-http: The Uri class now provides access publicly to its
    path, which is the request uri without the query parameters.
    f40fe447
  • finagle-mysql: Adding native support to finagle-mysql for MySQL JSON Data Type. A client
    can now use jsonAsObjectOrNull[T] or getJsonAsObject[T] APIs on c.t.f.mysql.Row to
    read the underlying json value as type T or use jsonBytesOrNull API to get a raw byte
    array of the the json column value. 4d403051
  • MySQL integration tests can now run on a port other than the default (3306). Add a port
    property to .finagle-mysql/integration-test.properties to customize the value.
    4d403051

Runtime Behavior Changes

  • finagle: Upgrade to Netty 4.1.43.Final and netty-tcnative 2.0.26.Final. cfaaa471
  • finagle: Add initial support for JDK 11 compatibility. 04def84b
  • finagle: Upgrade to caffeine 2.8.0 c335b29e
  • finagle-http2: Nacks in the form of RST(STREAM_REFUSED | ENHANCE_YOUR_CALM) no
    longer surface as a RstException, instead opting for a generic Failure to be
    symmetric with the HTTP/1.x nack behavior. cb67fa33
  • finagle-mux: The mux handshake latency stat has be changed to Debug
    verbosity. 0eb2cfb6
  • finagle-serversets: finagle/serverset2/stabilizer/notify_ms histogram has been downgraded to
    debug verbosity. 30d3d0ea

Breaking API Changes

  • finagle-base-http: c.t.f.http.codec.HttpContext moved into c.t.f.http.codec.context.HttpContext
    cc29b265
finagle - Finagle 19.10.0

Published by finaglehelper about 5 years ago

New Features

  • finagle-partition: Enables cross-build for 2.13.0. 89f06885
  • finagle-exception: Enables cross-build for 2.13.0. d90ae646
  • finagle-exp: Enables cross-build for 2.13.0. 32bc9f48
  • finagle-mysql: Enables cross-build for 2.13.0. ef31c99b
  • finagle-{mux,thrift,thrift-mux}: Enables cross-build for 2.13.0. 47ee31fd
  • finagle-redis: Enables cross-build for 2.13.0. d90ae646
  • finagle-tunable: Enables cross-build for 2.13.0. 69ded534
  • finagle-grpc-context: Enables cross-build for 2.13.0. 65963f58
  • finagle-thrift: Pass a factory to create a TReusableBuffer as the parameter of a finagle client
    to allow multiple clients share one TReusableBuffer. 05b2ec71

Runtime Behavior Changes

  • finagle-base-http: Better performance for the default HeaderMap.add method for headers with
    the same name. 1fab9386
  • finagle-http2: H2ServerFilter will no longer swallow exceptions that fire via
    exceptionCaught in the Netty pipeline. 12621ff8
  • finagle-http: Remove legacy HTTP/2 client implementation and make the MultiplexHandler-based
    implementation the default HTTP/2. b6d0aa19

Breaking API Changes

  • finagle-core: c.t.f.l.FailureAccrualFactory's didMarkDead() changed to didMarkDead(Duration).
    The Duration is the length of time the endpoint is marked dead. fe2f43a3

Bug Fixes

  • finagle-mux: Mux now properly propagates Ignorable failures multiple levels for superseded
    backup requests. This allows for more accurate success rate metrics for downstream services,
    when using backup requests.
    21b181e8
finagle - Finagle 19.9.0

Published by finaglehelper about 5 years ago

New Features

  • finagle-{core,init,toggle,netty4}: Enables cross-build for 2.13.0. f21a54e0
  • finagle-base-http: Add None as a valid SameSite header value. 0c43561a

Breaking API Changes

  • finagle-core: The constructor on c.t.f.filter.NackAdmissionFilter used for testing that
    took an Ema.Monotime has been removed. 38fae802
  • finagle-core: The Adddress.ServiceFactory variant has been promoted from experimental
    status and moved to be properly part of c.t.f.Address. 68cf34b8
  • finagle-http: improve performance of c.t.f.http.filter.StatsFilter. This results in two notable
    API changes: 1. There is a private[filter] constructor which can take a () => Long for
    determining the current time in milliseconds (the existing StatsFilter(StatsReceiver)
    constructor defaults to using Stopwatch.systemMillis for determining the current time in
    milliseconds. 2. The protected count(Duration, Response) method has been changed to
    private[this] count(Long, Response) and is no longer part of the public API.
    f6ce4529
  • finagle-partitioning: the hash-based routing that memcached uses has been relocated to a new
    top-level module so that it can be used more broadly across protocols. This results
    in several classes moving to the c.t.f.partitioning package: 1. The Memcached.param.EjectFailedHost, KeyHasher, and NumReps parameters are now
    available under c.t.f.partitioning.param 2. The FailureAccrualException and CacheNode definitions are now in the c.t.f.paritioning
    package. 3. The ZkMetadata class has moved to c.t.f.p.zk and the finagle-serverset module now depends
    on finagle-partitioning.
    f27073dc

Runtime Behavior Changes

  • finagle-http: c.t.f.http.service.NotFoundService has been changed to no longer
    use Request.response. Use of Request.response is deprecated and discouraged.
    acac9c38
  • finagle-mysql: Handshaking for the MySQL 'Connection Phase' now occurs as part of session
    acquisition. As part of this change, the
    com.twitter.finagle.mysql.IncludeHandshakeInServiceAcquisition toggle
    has been removed and it no longer applies. cd4877c1
  • finagle: Upgrade to Netty 4.1.39.Final. 001b0940
  • finagle-http: Enable Ping Failure Detection for MultiplexHandler based HTTP/2 clients. Note that
    the Ping Failure Detection implementation has been removed completely from the
    non-MultiplexHandler based HTTP/2 client. 8af32742
  • finagle: Added a dependency on Scala Collections Compat 2.1.2. f21a54e0

Bug Fixes

  • finagle-base-http: Removes the Cookie header of a c.t.f.http.Message whenever its cookie map
    becomes empty. f9b76a0f
finagle - Finagle 19.8.0

Published by finaglehelper about 5 years ago

Breaking API Changes

  • finagle-core: The contents of the c.t.f.dispatch.GenSerialClientDispatcher object have been
    moved to the new c.t.f.dispatch.ClientDispatcher object. The stats receiver free constructors
    of GenSerialClientDispatcher and SerialClientDispatcher have been removed.
    4b0493c6
  • finagle-thrift: The deprecated ReqRepThriftServiceBuilder object has been
    removed. Users should migrate to ReqRepMethodPerEndpointBuilder. f1c4d589

Runtime Behavior Changes

  • finagle-core: Failed reads on Linux due to a remote peer disconnecting should now be properly
    seen as c.t.f.ChannelClosedException instead of a c.t.f.UnknownChannelException.
    b06fab3e
  • finagle: Upgrade to Jackson 2.9.9. 464ae751
  • finagle: Upgrade to Netty 4.1.38.Final. 23532f19
finagle - Finagle 19.7.0

Published by finaglehelper over 5 years ago

New Features

  • finagle-http: Measure streaming (message.isChunked) chunk payload size with two new histograms:
    stream/request/chunk_payload_bytes and stream/response/chunk_payload_bytes, they are
    published with a debug verbosity level. These chunk payload sizes are also traced via the same
    trace keys. 11f4e32cd8e5fcab9fc0de998f3e844f37ab741c

  • finagle-base-http: Add support for new "b3" tracing header. 87218372d0ae81d93c551a0752aec57b3fdaf60d

  • finagle-core: Allow to not bypass SOCKS proxy for localhost by using the GlobalFlag
    -com.twitter.finagle.socks.socksProxyForLocalhost 5521bc830f792862bb2aa06847f3f8493c673412

  • finagle-core: OffloadFilter flag to reduce network contention. 2bd4d61b896d261b3928ce5b6858e7d250e2be39

  • finagle-exp: Add private c.t.f.exp.ConcurrencyLimitFilter for rejecting requests
    that exceed estimated concurrency limit e331491cb7c9013ac0292e1d39b6fd9f16374b99

Runtime Behavior Changes

  • finagle-http: c.t.f.http.Cors has been changed to no longer use the c.t.f.http.Response
    associated with the passed in c.t.f.http.Request. 455718a5bec275452d904d09351d10ab0727973a

  • finagle-http: c.t.f.http.filter.ExceptionFilter has been changed to no longer
    use the c.t.f.http.Response associated with the passed in. 54d4acf1918fba9d1711f3591f667fd62fc4e2da

  • finagle-http: Optimize creation of new Http Dispatchers by re-using created metrics and loggers.
    9156f0f82c31b0df689a851712cefcce490aa50f

Breaking API Changes

  • finagle-base-http: Removed the methods setStatusCode and getStatusCode from
    c.t.f.http.Response which have been deprecated since 2017. 20b37b0be21b345622ebe48ad1b16fabd58b7f03

  • finagle-core: All deprecated c.t.f.builder.ServerBuilder#build methods have
    been removed. Users should migrate to using the build method which takes a
    ServiceFactory[Req, Rep] as a parameter. 7ae208df0499b89bc3e632502a36463303172074

  • finagle-core: The c.t.f.ssl.client.SslClientEngineFactory#getHostname method has been removed.
    All uses should be changed to use the getHostString method of SslClientEngineFactory instead.

  • finagle-http: The setOriginAndCredentials, setMaxAge, setMethod, and setHeaders methods
    of c.t.f.http.Cors.HttpFilter are no longer overridable. 455718a5bec275452d904d09351d10ab0727973a

  • finagle-http: The details of the c.t.f.Http.HttpImpl class are meant to be implementation
    details so the class constructor was made private along with the fields. Along these same lines
    the c.t.f.Http.H2ClientImpl.transporter method has been moved to a private location.
    1338e508dff6517a1801454cdcad95c1a4b94779

Bug Fixes

  • finagle-core: Ensure ClientDispatcher queueSize gauge is removed on transport
    close, instead of waiting for clean-up at GC time. 963e9b84153584184fc47c03c32b5cd5feda8bdc

  • finagle-http2: Don't propagate stream dependency information for the H2 client.
    a2e6c0ba5a1e9381fe7306ae128acca92df16021

finagle - Finagle 19.6.0

Published by finaglehelper over 5 years ago

New Features

  • finagle-core: SSL/TLS session information has been added to c.t.f.ClientConnection.
    69a28c10
  • finagle-core: Add a Stack Module with 7 parameters for convenience sake. 6f9d7f0d
  • finagle-core: For both, servers and clients, introduce a way to shift application-level future
    callbacks off of IO threads, into a given FuturePool or ExecutorService.
    Use withExecutionOffloaded configuration method (on a client or a server) to access
    new functionality. 40431bb4
  • finagle-http: Added counters for request/response stream as: stream/request/closed,
    stream/request/failures, stream/request/failures/<exception_name>, stream/request/opened,
    stream/request/pending and stream/response/closed, stream/response/failures,
    stream/response/failures/<exception_name>, stream/response/opened, stream/response/pending.
    The counters will be populated when isChunked is set to true, the failures counters will be
    populated when isChunked is set to true and the stream fails before it has been fully read in the
    request and response respectively. d9b69bdc
  • finagle-http: Add two new API variants in CookieMap: addAll and removeAll that allow for
    adding and removing cookies in bulk, without triggering a header rewrite on each item.
    4127cf6d
  • finagle-mysql: finagle-mysql now supports using SSL/TLS with MySQL. SSL/TLS can be turned on by
    calling withTransport.tls(sslClientConfiguration) with a specified
    c.t.f.ssl.client.SslClientConfiguration. 0b6c20ac

Runtime Behavior Changes

  • finagle: Upgrade to Netty 4.1.35.Final and netty-tcnative 2.0.25.Final.
    9ffbf7a7
  • finagle-core: The default failure accrual policy has been changed from one
    which uses only consecutive failures to a hybrid model which uses both
    success rate over a window and consecutive failures. Previously this was
    changeable via toggle. The toggle has been removed, and the hybrid version
    has been made the default. 6f85c56e
  • finagle-http: Rename request_stream_duration_ms to stream/request/duration_ms and
    response_stream_duration_ms to stream/response/duration_ms. The stats will be
    populated when isChunked is set to true in the request and response respectively.
    d9b69bdc
  • finagle-http2: Disable ping-based failure detector in HTTP/2 client as it seems to do
    more harm than good. ea5b0c77
  • finagle-http2: Frame logging is now disabled by default for clients. To enable,
    use the c.t.f.http2.param.FrameLogging.Enabled Stack Param. For example:
    Http.client.configured(FrameLogging.Enabled). 0b2ec201
  • finagle-netty4: When using a Netty LocalChannel, the value of the BackPressure
    stack param is effectively changed to backPressureDisabled so that other functionality
    (e.g. SSL/TLS) works as expected. 3a8e5c19
  • finagle-netty4: finagle/netty/pooling/used now includes the size of the buffers in the
    thread-local caches. 824596f0
  • finagle-core: Stats and retry modules use a ResponseClassifier to give hints
    for how to handle failure (e.g., Is this a success or is it a failure? If
    it's a failure, may I retry the request?). The stats module increments a
    success counter for successes, and increments a failure counter for failures.
    But there isn't a way to tell the stats module to just do nothing. And, this
    is exactly what the stats module should do (nothing) in the case of ignorable
    failures (e.g. backup request cancellations). To represent these cases, we
    introduce a new ResponseClass: Ignorable. 256b79b8

Bug Fixes

  • finagle-core: UsingSslSessionInfo would fail to be constructed properly when
    SSLSession.getLocalCertificates returns 'null'. 8d984963
  • finagle-http: Finagle now properly sets the Transport.peerCertificate local context
    when using HTTP/2. a661fef4
  • finagle-http: c.t.f.http.collection.RecordSchema.Record is now thread-safe.
    4e343f0e
  • finagle-zipkin-core: Fix a race condition which could cause a span to get logged
    missing some annotations. 53901a28
  • finagle-mysql: Don't log c.t.f.ChannelClosedException when rolling back a transaction
    fails. 29cfffe6

Breaking API Changes

  • finagle-core: The exceptions c.t.f.SslHandshakeException and
    c.t.f.SslHostVerificationException were no longer used and have
    been removed. 2a53531d
  • finagle-mysql: The structure of c.t.f.mysql.Request has changed. It is now based on
    a higher level c.t.f.mysql.ProtocolMessage and the cmd field must contain a value.
    Additionally, the synthetic Command.COM_NO_OP has been removed, as due to the
    restructuring it was no longer necessary. d6e4042f
  • finagle-mysql: Uses of the abbreivation 'cap' have been renamed to the full
    word: 'capabilities', including for the baseCapabilities of Capability.
    4c57afda

Deprecations

  • finagle-http: Removed deprecated response_size in Finagle Http stats. This is a duplicate stat
    of response_payload_bytes. 1286c438
finagle - Finagle 19.5.1

Published by finaglehelper over 5 years ago

No Changes

finagle - Finagle 19.5.0

Published by finaglehelper over 5 years ago

New Features

  • finagle-http: Add two new methods to com.twitter.finagle.http.MediaType,
    MediaType#typeEquals for checking if two media types have the same type and
    subtype, ignoring their charset, and MediaType#addUtf8Charset for easily
    setting a utf-8 charset. ec0953f1

Bug Fixes

  • finagle-http: Ensure server returns 400 Bad Request when
    non-ASCII characters are present in the HTTP request URI path. a7dae7ea

Runtime Behavior Changes

  • finagle-core: Deterministic aperture (d-aperture) load balancers no longer export
    "loadband" scoped metrics: "widen", "narrow", "offered_load_ema". These were not
    necessary as d-aperture does not change the aperture size at runtime. 20029ac5
  • finagle-core: Request logging now defaults to disabled. Enable it by configuring the
    RequestLogger Stack parameter on your Client or Server. ee9cb4ec
  • finagle-core: Subtree binding failures in NameTree.Union's are ignored in the
    final binding result. 2fde4d2d

Breaking API Changes

  • finagle-core: The c.t.f.client.EndpointerModule and c.t.f.pushsession.PushStackClient public
    and protected APIs have been changed to use the abstract java.net.SocketAddress instead of the
    concrete java.net.InetSocketAddress as relying on the concrete implementation was not
    necessary. 77a3cdfd
  • finagle-http: For Finagle HTTP clients, the withMaxRequestSize(size) API
    method has been removed. For Finagle HTTP servers, the
    withMaxResponseSize(size) method has been removed. The underlying Stack
    params which are set by these methods are respectively HTTP server and HTTP
    client side params only. Using these removed methods had no effect on the
    setup of Finagle HTTP clients and servers. 5eb3ae24
  • finagle-mysql: HandshakeResponse has been removed from finagle-mysql's public
    API. It is expected that users of the library are relying entirely on
    finagle-mysql for handshaking. f0ab09a6