Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Broadcast to concurrent Sinks in Fanout #11197

Closed
wants to merge 1 commit into from
Closed

Conversation

blt
Copy link
Contributor

@blt blt commented Feb 4, 2022

This commit tries to avoid the slow receiver problem in our Fanout
implementation by running downstream Sinks in their own spawned tasks,
feeding incoming Events into a broadcast channel. This commit is VERY
ROUGH. The hope is to get a sense of whether this approach works in
practice, what it's limits are. Success is lighting up the CPUs vector
runs on as that will get us back into a more familiar optimization loop.

@netlify
Copy link

netlify bot commented Feb 4, 2022

✔️ Deploy Preview for vector-project ready!

🔨 Explore the source changes: 68fe2b5

🔍 Inspect the deploy log: https://app.netlify.com/sites/vector-project/deploys/61fd9cb5b8bf3900083e6860

😎 Browse the preview: https://deploy-preview-11197--vector-project.netlify.app

@github-actions github-actions bot added domain: core Anything related to core crates i.e. vector-core, core-common, etc domain: topology Anything related to Vector's topology code labels Feb 4, 2022
This commit tries to avoid the slow receiver problem in our Fanout
implementation by running downstream Sinks in their own spawned tasks,
feeding incoming Events into a broadcast channel. This commit is VERY
ROUGH. The hope is to get a sense of whether this approach works in
practice, what it's limits are. Success is lighting up the CPUs vector
runs on as that will get us back into a more familiar optimization loop.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
@blt blt changed the title chore: Fanout with tasks chore: Broadcast to concurrent Sinks in Fanout Feb 4, 2022
blt added a commit that referenced this pull request Feb 5, 2022
This commit is kind of a peer to #11197, in pursuit of #10144. The basic idea
here is we want to get rid of the lock-step behavior that a strict Sink requires
for fanning out, because we know that we have issues with slow receivers. This
commit is not nearly so intrusive as #11197 but does allow for incremental
progress among the cohort of downstream sinks.

I still have some tests commented out. The error propagation story here is yet
to be worked on.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
blt added a commit that referenced this pull request Feb 7, 2022
This commit is kind of a peer to #11197, in pursuit of #10144. The basic idea
here is we want to get rid of the lock-step behavior that a strict Sink requires
for fanning out, because we know that we have issues with slow receivers. This
commit is not nearly so intrusive as #11197 but does allow for incremental
progress among the cohort of downstream sinks.

I still have some tests commented out. The error propagation story here is yet
to be worked on.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
@blt
Copy link
Contributor Author

blt commented Feb 8, 2022

Closing in favor of #11206

@blt blt closed this Feb 8, 2022
blt added a commit that referenced this pull request Feb 8, 2022
This commit is kind of a peer to #11197, in pursuit of #10144. The basic idea
here is we want to get rid of the lock-step behavior that a strict Sink requires
for fanning out, because we know that we have issues with slow receivers. This
commit is not nearly so intrusive as #11197 but does allow for incremental
progress among the cohort of downstream sinks.

I still have some tests commented out. The error propagation story here is yet
to be worked on.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
blt added a commit that referenced this pull request Feb 8, 2022
This commit is kind of a peer to #11197, in pursuit of #10144. The basic idea
here is we want to get rid of the lock-step behavior that a strict Sink requires
for fanning out, because we know that we have issues with slow receivers. This
commit is not nearly so intrusive as #11197 but does allow for incremental
progress among the cohort of downstream sinks.

I still have some tests commented out. The error propagation story here is yet
to be worked on.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
Co-authored-by: Luke Steensen <luke.steensen@gmail.com>
blt added a commit that referenced this pull request Feb 8, 2022
This commit is kind of a peer to #11197, in pursuit of #10144. The basic idea
here is we want to get rid of the lock-step behavior that a strict Sink requires
for fanning out, because we know that we have issues with slow receivers. This
commit is not nearly so intrusive as #11197 but does allow for incremental
progress among the cohort of downstream sinks.

I still have some tests commented out. The error propagation story here is yet
to be worked on.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
Co-authored-by: Luke Steensen <luke.steensen@gmail.com>
blt added a commit that referenced this pull request Feb 9, 2022
This commit is kind of a peer to #11197, in pursuit of #10144. The basic idea
here is we want to get rid of the lock-step behavior that a strict Sink requires
for fanning out, because we know that we have issues with slow receivers. This
commit is not nearly so intrusive as #11197 but does allow for incremental
progress among the cohort of downstream sinks.

I still have some tests commented out. The error propagation story here is yet
to be worked on.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
Co-authored-by: Luke Steensen <luke.steensen@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain: core Anything related to core crates i.e. vector-core, core-common, etc domain: topology Anything related to Vector's topology code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant