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

Introduce Notification block pinning limit #2935

Merged
merged 10 commits into from
Feb 26, 2024

Conversation

skunert
Copy link
Contributor

@skunert skunert commented Jan 15, 2024

While investigating some pruning issues I found some room for improvement in the notification pin handling.

Problem: It was not possible to define an upper limit on notification pins. The block pinning cache has a limit, but only handles bodies and justifications.

After this PR, bookkeeping for notifications is managed in the pinning worker. A limit can be defined in the worker. If that limit is crossed, blocks that were pinned for that notification are unpinned, which now affects the state as well as bodies and justifications. The pinned blocks cache still has a limit, but should never be hit.

closes #19

@skunert skunert added R0-silent Changes should not be mentioned in any release notes T0-node This PR/Issue is related to the topic “node”. labels Jan 15, 2024
@skunert skunert changed the title Notification block pinning now unpins state Introduce Notification block pinning limit Jan 15, 2024
@bkchr
Copy link
Member

bkchr commented Jan 15, 2024

Problem: It was not possible to define an upper limit on notification pins. The block pinning cache has a limit, but only handles bodies and justifications.

I'm confused. Why do we need two times bookkeeping to handle this? Can we not just fix it in the block pinning cache?

@skunert
Copy link
Contributor Author

skunert commented Jan 16, 2024

Problem: It was not possible to define an upper limit on notification pins. The block pinning cache has a limit, but only handles bodies and justifications.

I'm confused. Why do we need two times bookkeeping to handle this? Can we not just fix it in the block pinning cache?

The pinning cache is for everything pinned by the backend. For example the RPC API will also pin things.

I want that we have a defined limit on notifications pinned. And for that we need the extra bookkeeping.

@skunert skunert requested a review from a team January 16, 2024 11:18
@skunert skunert marked this pull request as ready for review January 16, 2024 11:18
@skunert skunert requested a review from a team February 15, 2024 12:30
@skunert skunert added this pull request to the merge queue Feb 26, 2024
Merged via the queue into paritytech:master with commit 6c5a42a Feb 26, 2024
129 of 130 checks passed
@skunert skunert deleted the skunert/pin-improvements branch February 26, 2024 12:12
ordian added a commit that referenced this pull request Feb 28, 2024
…head-data

* origin/master: (51 commits)
  Runtime Upgrade ref docs and Single Block Migration example pallet  (#1554)
  Collator overseer builder unification (#3335)
  Introduce storage attr macro `#[disable_try_decode_storage]` and set it on `System::Events` and `ParachainSystem::HostConfiguration` (#3454)
  Add Polkadotters bootnoders per IBP application (#3423)
  Add documentation around FRAME Origin (#3362)
  Bridge zombienet tests: Check amount received at destination (#3490)
  Snowbridge benchmark tests fix (#3424)
  fix(zombienet): increase timeout in download artifacts (#3376)
  Cleanup String::from_utf8 (#3446)
  [prdoc] Validate crate names (#3467)
  Limit max execution time for `test-linux-stable` CI jobs (#3483)
  Introduce Notification block pinning limit (#2935)
  frame-support: Improve error reporting when having too many pallets (#3478)
  add Encointer as trusted teleporter for Westend (#3411)
  [pallet-xcm] Adjust benchmarks (teleport_assets/reserve_transfer_assets) not relying on ED (#3464)
  Add more debug logs to understand if statement-distribution misbehaving (#3419)
  Remove redundant parachains assigner pallet. (#3457)
  Use generic hash for runtime wasm in resolve_state_version_from_wasm (#3447)
  Runtime: allow backing multiple candidates of same parachain on different cores  (#3231)
  Bridge zombienet tests: move all "framework" files under one folder (#3462)
  ...
bgallois pushed a commit to duniter/duniter-polkadot-sdk that referenced this pull request Mar 25, 2024
While investigating some pruning issues I found some room for
improvement in the notification pin handling.

**Problem:** It was not possible to define an upper limit on
notification pins. The block pinning cache has a limit, but only handles
bodies and justifications.

After this PR, bookkeeping for notifications is managed in the pinning
worker. A limit can be defined in the worker. If that limit is crossed,
blocks that were pinned for that notification are unpinned, which now
affects the state as well as bodies and justifications. The pinned
blocks cache still has a limit, but should never be hit.

closes paritytech#19

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
R0-silent Changes should not be mentioned in any release notes T0-node This PR/Issue is related to the topic “node”.
Projects
Status: done
Development

Successfully merging this pull request may close these issues.

sync: "Unable to pin block for finality notification"
4 participants