Skip to content

Make FailFast cloneable#617

Merged
olix0r merged 2 commits intomainfrom
ver/failfast-clone
Aug 5, 2020
Merged

Make FailFast cloneable#617
olix0r merged 2 commits intomainfrom
ver/failfast-clone

Conversation

@olix0r
Copy link
Member

@olix0r olix0r commented Aug 5, 2020

Currently, the FailFast middleware is not cloneable, as it maintains
state including a timeout future.

This change modifies FailFast to implement Clone. When the module is
cloned, it reverts to the open state.

This has no impact on the current proxy, but when the stack gets cloned
(as required by an upcoming change), this will have the effect that
connections do not share failfast state. This seems better than adding a
Lock or Buffer just to accomodate this.

Currently, the FailFast middleware is not cloneable, as it maintains
state including a timeout future.

This change modifies FailFast to implement Clone. When the module is
cloned, it reverts to the open state if it's pending failfast.

This has no impact on the current proxy, but when the stack gets cloned
(as required by an upcoming change), this will have the effect that
connections do not share failfast state. This seems better than adding a
Lock or Buffer just to accomodate this.
@olix0r olix0r requested a review from a team August 5, 2020 16:02
Copy link
Contributor

@kleimkuhler kleimkuhler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense 👍

Copy link
Contributor

@hawkw hawkw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noticed a couple typos, but otherwise, looks good to me!

Co-authored-by: Eliza Weisman <[email protected]>
@olix0r olix0r merged commit 67c7744 into main Aug 5, 2020
@olix0r olix0r deleted the ver/failfast-clone branch August 5, 2020 16:40
olix0r added a commit to linkerd/linkerd2 that referenced this pull request Aug 5, 2020
This release enables a multi-threaded runtime. Previously, the proxy
would only ever use a single thread for data plane processing; now, when
the proxy is allocated more than 1 CPU share, the proxy allocates a
thread per available CPU. This has shown substantial latency
improvements in benchmarks, especially when the proxy is serving
requests for many concurrent connections.

---

* Add a `multicore` feature flag (linkerd/linkerd2-proxy#611)
* Add `multicore` to default features (linkerd/linkerd2-proxy#612)
* admin: add an endpoint to dump spawned Tokio tasks (linkerd/linkerd2-proxy#595)
* trace: roll `tracing` and `tracing-subscriber` dependencies (linkerd/linkerd2-proxy#615)
* stack: Add NewService::into_make_service (linkerd/linkerd2-proxy#618)
* trace: tweak tracing & test support for the multithreaded runtime (linkerd/linkerd2-proxy#616)
* Make FailFast cloneable (linkerd/linkerd2-proxy#617)
* Move HTTP detection & server into linkerd2_proxy_http (linkerd/linkerd2-proxy#619)
* Mark tap integration tests as flakey (linkerd/linkerd2-proxy#621)
* Introduce a SkipDetect layer to preempt detection (linkerd/linkerd2-proxy#620)
adleong pushed a commit to linkerd/linkerd2 that referenced this pull request Aug 6, 2020
This release enables a multi-threaded runtime. Previously, the proxy
would only ever use a single thread for data plane processing; now, when
the proxy is allocated more than 1 CPU share, the proxy allocates a
thread per available CPU. This has shown substantial latency
improvements in benchmarks, especially when the proxy is serving
requests for many concurrent connections.

---

* Add a `multicore` feature flag (linkerd/linkerd2-proxy#611)
* Add `multicore` to default features (linkerd/linkerd2-proxy#612)
* admin: add an endpoint to dump spawned Tokio tasks (linkerd/linkerd2-proxy#595)
* trace: roll `tracing` and `tracing-subscriber` dependencies (linkerd/linkerd2-proxy#615)
* stack: Add NewService::into_make_service (linkerd/linkerd2-proxy#618)
* trace: tweak tracing & test support for the multithreaded runtime (linkerd/linkerd2-proxy#616)
* Make FailFast cloneable (linkerd/linkerd2-proxy#617)
* Move HTTP detection & server into linkerd2_proxy_http (linkerd/linkerd2-proxy#619)
* Mark tap integration tests as flakey (linkerd/linkerd2-proxy#621)
* Introduce a SkipDetect layer to preempt detection (linkerd/linkerd2-proxy#620)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants