This repository has been archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
lexnv
added
A0-please_review
Pull request needs code review.
C1-low
PR touches the given topic and has a low impact on builders.
D3-trivial 🧸
PR contains trivial changes in a runtime directory that do not require an audit
B1-note_worthy
Changes should be noted in the release notes
T2-API
This PR/Issue is related to APIs.
labels
Aug 2, 2023
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
bot rebase |
Rebased |
niklasad1
reviewed
Aug 14, 2023
niklasad1
reviewed
Aug 14, 2023
niklasad1
reviewed
Aug 14, 2023
Signed-off-by: Alexandru Vasile <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
…nv/chainhead_limits
niklasad1
reviewed
Aug 14, 2023
niklasad1
approved these changes
Aug 14, 2023
skunert
reviewed
Aug 15, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Only some small comments.
skunert
approved these changes
Aug 15, 2023
Co-authored-by: Sebastian Kunert <[email protected]>
Ank4n
pushed a commit
that referenced
this pull request
Aug 20, 2023
* chainHead/api: Make storage/body/call pure RPC methods Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Add mpsc channel between RPC methods Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/subscriptions: Extract mpsc::Sender via BlockGuard Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/subscriptions: Generate and provide the method operation ID Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Generate `chainHead_body` response Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Generate `chainHead_call` response Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Generate `chainHead_storage` responses Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Propagate responses of methods to chainHead_follow Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/tests: Adjust `chainHead_body` responses Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/tests: Adjust `chainHead_call` responses Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/tests: Adjust `chainHead_call` responses Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/tests: Ensure unique operation IDs across methods Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/events: Remove old method events Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/subscriptions: Add limit helper Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/subscription: Expose limits to `BlockGuard` Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/tests: Adjust testing to ongoing operations Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Make limits configurable via `ChainHeadConfig` Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/tests: Adjust testing to `ChainHeadConfig` Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/tests: Ensure operation limits discards items Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Improve documentation Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Rename `OngoingOperations` -> `LimitOperations` Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Rename reserve -> reserve_at_most Signed-off-by: Alexandru Vasile <[email protected]> * chainHead: Use duration const instead of u64 Signed-off-by: Alexandru Vasile <[email protected]> * chainHead/subscription: Use tokio::sync::Semaphore for limits Signed-off-by: Alexandru Vasile <[email protected]> * Update client/rpc-spec-v2/src/chain_head/subscription/inner.rs Co-authored-by: Sebastian Kunert <[email protected]> --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: parity-processbot <> Co-authored-by: Sebastian Kunert <[email protected]>
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
A0-please_review
Pull request needs code review.
B1-note_worthy
Changes should be noted in the release notes
C1-low
PR touches the given topic and has a low impact on builders.
D3-trivial 🧸
PR contains trivial changes in a runtime directory that do not require an audit
T2-API
This PR/Issue is related to APIs.
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.
This PR adds support for limiting the number of ongoing operations:
chainHead_follow
subscription (items inchainHead_storage
count each as a operation)limitReached
when capacity cannot be reserved (or subscription ID is invalid or stale)chainHead_storage
discards elements when there's not enough capacitystruct ChainHeadConfig
is added to have granular control over the limits of the APIArc<Mutex<usize>>
with a configurable maximum and a RAII style release of capacity on dropBlockGuard
OngoingOperations
andPermitOperations
ensure_operation_limits_works()
This builds on top of: #14692
Closes: #14640
// @paritytech/subxt-team