Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
By declaring
concurrency :shared
, a single shared instance can be used by pipeline workers concurrently instead of the legacy sharing we get by default that shares the instance sequentially.(labeled as a bug, since this plugin was designed with concurrent use in mind, we simply neglected to declare it)
What does this PR do?
Removes a bottleneck caused by Logstash selecting the "legacy" strategy, which prevented the single shared instance of this plugin from being used concurrently.
Why is it important/What is the impact to the user?
Make it go ZOOM! (improves throughput by allowing use of available resources)
Checklist
[ ] I have made corresponding changes to the documentation[ ] I have made corresponding change to the default configuration files (and/or docker env variables)Author's Checklist
How to test this PR locally
upstream
anddownstream
:downstream
pipeline with alogstash
input that receives events and discards themupstream
pipeline with ajava_generator
input that floods the queue as quickly as possible and alogstash
output that transmits the events to thedownstream
ssl_enabled => false
to both to obviate the need to set up certificates.upstream
has little/no net effect on throughput (because the single sharedlogstash
output is sequentially accessed by the workers)