Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A fault tolerant, protocol-agnostic RPC system
Scala Java Python Ruby Thrift Shell HTML

finagle-mux: Optimize WindowedMax

`WindowedMax` which is used by our `ThresholdFailureDetector` creates small structs, `AgedLong`s,
which have the unfortunate behavior of having medium lifetimes which is what the JVM's garbage
collector wants to avoid.

Allocate once. Use everywhere.

Zero allocations for `add`. Slightly better peformance.

latest commit cb429dc0c5
@vkostyukov vkostyukov authored jenkins committed
Failed to load latest commit information.
bin finagle: Fix travis build
doc finagle-core: Export metrics from Netty's HashedWheelTimer
finagle-benchmark finagle-mux: Optimize WindowedMax
finagle-cacheresolver Switch Source to Monobuild - go/monobuildproject
finagle-commons-stats util-stats: Improve StatsReceiver.toString
finagle-core util-core: decommission scheduler clock stats
finagle-example Remove finagle-http
finagle-exception finagle-exception: ExceptionReporter is no longer the default service
finagle-exp [finagle-exp] fire backup request in BackupRequestFilter if first att…
finagle-httpx-compat Remove finagle-http
finagle-httpx Remove finagle-http
finagle-kestrel Mid September pants release
finagle-mdns finagle: Disable MdnsTest in CI
finagle-memcached finagle-memcached: Change test fixture to behave more like memcached
finagle-mux finagle-mux: Optimize WindowedMax
finagle-mysql finagle/finagle-mysql: Support MySQL logins with no password
finagle-native Convert finagle-native to finagle-httpx
finagle-ostrich4 util-stats: Improve StatsReceiver.toString
finagle-redis finagle-redis: remove concurrent lb
finagle-serversets Revert "finagle-serversets: Use FutureCache for pending getData calls"
finagle-spdy culling stale owners
finagle-stats util-stats: Improve StatsReceiver.toString
finagle-stream [finagle-stream] Stream dispatcher not converting headers
finagle-stress finagle-stress: Migrate to finagle-httpx
finagle-swift 2.11 fixes: Another usage of
finagle-test Fix target types of 'fake' jar library targets
finagle-testers util-core: Remove deprecated methods from Var
finagle-thrift finagle-thrift: Add more patience to EndToEndTest
finagle-thriftmux finagle: use max ping instead of ema in FailureDetector
finagle-validate Fix target types of 'fake' jar library targets
finagle-zipkin finagle-core: Introduce Context.getOrElse
project finagle-mux: Optimize WindowedMax
site site: Update Finatra project link and blurb
.gitignore fix broken WatermarkPool link in doc, also add *.pyc to .gitignore
.mailmap add a .mailmap
.travis.yml Update dependency and plugin versions in SBT builds Add Buoyant to
CHANGES Privatize Netty types in DefaultTimer and TimerFromNettyTimer
CONFIG.ini finagle: fix config for docbird finagle|util: Mention Java compilation tests in
CONTRIBUTORS [split] finagle-doc: beginnings of a finagle user's guide
GROUPS [split] Use new git-review with simplified OWNERS/GROUPS
LICENSE Project scaffolding
OWNERS Goodbye Added ING Bank as adopter of Finagle. [split] finagle-core: introduce Transports and Dispatchers
pushsite.bash [split] birdcage: Upgrading scalatest + scalacheck
sbt Fix sbt jar retrieval


Build status Coverage status Project status


This project is used in production at Twitter (and many other organizations), and is being actively developed and maintained.

Finagle logo

Getting involved

Finagle is an extensible RPC system for the JVM, used to construct high-concurrency servers. Finagle implements uniform client and server APIs for several protocols, and is designed for high performance and concurrency. Most of Finagle’s code is protocol agnostic, simplifying the implementation of new protocols.

For extensive documentation, please see the user guide and API documentation websites. Documentation improvements are always welcome, so please send patches our way.


The following are a few of the companies that are using Finagle:

For a more complete list, please see our adopter page. If your organization is using Finagle, consider adding a link there and sending us a pull request!


The master branch of this repository contains the latest stable release of Finagle, and weekly snapshots are published to the develop branch. In general pull requests should be submitted against develop. See for more details about how to contribute.

Something went wrong with that request. Please try again.