-
Notifications
You must be signed in to change notification settings - Fork 252
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
feat: rumqttc async v5 client request batching #823
base: batching
Are you sure you want to change the base?
Conversation
Hello. |
Pull Request Test Coverage Report for Build 8611480676Details
💛 - Coveralls |
It would be really helpful if you could base this PR on #825 so that we can move towards simplifying the codebase significantly! I am thinking of streamlining all the idiosyncratic code in |
I'm putting this on hold until #825 is fixed and merged. |
This number shall be reused for the tx side as well.
Store the pending throttle interval within the EventLoop. Fixes: bytebeamio#814
Collect up to BATCH_SIZE request from the client channel before flushing the network. Fixes bytebeamio#810
Implemented the processing of requests and incoming frames in batches for v5. Minor updates here and there. |
Creating certain instances part of event loop needs to happen inside the target tokio runtime.
Add timeouts on network read and write in the v4 client. Partial cleanup of the options: use references where possible instead of copying the network options. Use std::time::Duration instead of u32 secs (align with pending throttle).
Remove the `Io` variant from `StateError` because this type of error is also present in `ConnectionError` and fits better there. Same for `ConnectionAborted` which is covered with `ConnectionError::ConnectionClosed`.
Hello. Can I get a comment on this PR? I'd like to incorporate findings before applying the pattern used in |
hey, sorry about the delay but i'm currently caught up with other work, so don't have enough bandwidth for this right now! thanks for understanding! |
@flxo please note that we value your time and contributions a lot but have been facing a landslide of work due to which our ability to maintain the repo has been significantly hampered. We will merge your PR into a feature branch for now, as we need to continue developing test suites and benchmarks to ensure that we are really seeing a good enough impact for the feature to be merged into main, without breaking the wrong things. Hope you understand!
Happy holiday! |
Process multiple client requests before flushing the network in the async v5 client.
Type of change
New feature (non-breaking change which adds functionality)
Checklist:
cargo fmt
CHANGELOG.md
if it's relevant to the users of the library. If it's not relevant mention why.Fixes:
ConnectionError::RequestsDone
is unreachable #815