kubo/docs/changelogs
Hector Sanjuan c953abb431 provider: buffer pin providers.
Fixes #10596.

The reproviding process can take long. Currently, each CID to be provided is
obtained by making a query to the pinner and reading one by one as the CIDs
get provided.

While this query is ongoing, the pinner holds a Read mutex on the pinset.

If a pin-add-request arrives, a goroutine will start waiting for a Write mutex
on the pinset. From that point, no new Read mutexes can be taken until the writer
can proceed and finishes.

However, no one can proceed because the read mutex is still held while the
reproviding is ongoing.

The fix is mostly in Boxo, where we add a "buffered" provider which reads the
cids onto memory so that they can be provided at its own pace without making
everyone wait.

The consequence is we will need more RAM memory. Rule of thumb is 1GiB extra per 20M cids to be reprovided.

(cherry picked from commit ba22102a64)
2025-03-14 18:20:00 +01:00
..
v0.2.md chore: changelogs split 2022-07-07 19:44:01 +02:00
v0.3.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.4.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.5.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.6.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.7.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.8.md collection of typo fixes (#10647) 2025-01-13 18:55:10 +01:00
v0.9.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.10.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.11.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.12.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.13.md collection of typo fixes (#10647) 2025-01-13 18:55:10 +01:00
v0.14.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.15.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.16.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.17.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.18.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.19.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.20.md chore: update changelog for v0.20 2023-05-09 09:31:11 +00:00
v0.21.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.22.md docs(changelog): link to relevant IPIP 2023-09-16 22:24:30 +02:00
v0.23.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.24.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.25.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.26.md chore: update changelog 2024-01-22 14:35:53 +01:00
v0.27.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.28.md chore: update changelog for v0.28 2024-04-15 07:15:38 +00:00
v0.29.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.30.md feat: Add CI for Spell Checking (#10637) 2025-01-30 17:50:51 +01:00
v0.31.md Add full changelog to release changelog 2024-10-16 05:54:15 -10:00
v0.32.md Update to boxo with refactored providerQueryManager. (#10595) 2024-11-26 03:34:06 -08:00
v0.33.md Merge remote-tracking branch 'origin/master' into merge-release-v0.33.2 2025-02-14 01:30:03 +01:00
v0.34.md provider: buffer pin providers. 2025-03-14 18:20:00 +01:00