kubo/docs/changelogs
Hector Sanjuan ecb25581c6
cmd/files: flush parent folders (#10630)
* cmd/files: flush parent folders

This is a mitigation to increased MFS memory usage in the course of many writes operations.

The underlying issue is the unbounded growth of the mfs directory cache in
boxo. In the latest boxo version, this cache can be cleared by calling Flush()
on the folder. In order to trigger that, we call Flush() on the parent folder
of the file/folder where the write-operations are happening.

To flushing the parent folder allows it to grow unbounded. Then, any read
operation to that folder or parents (i.e. stat), will trigger a sync-operation to match
the cache to the underlying unixfs structure (and obtain the correct node-cid).

This sync operation must visit every item in the cache. When the cache has grown too much,
and the underlying unixfs-folder has switched into a HAMT, the operation can take minutes.

Thus, we should clear the cache often and the Flush flag is a good indicator
that we can let it go. Users can always run with --flush=false and flush at
regular intervals during their MFS writes if they want to extract some performance.

Fixes #8694, #10588.

* cmd/files: docs and changelog for --flush changes
2024-12-19 14:07:17 -08: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 docs: remove repetitive words (#10370) 2024-03-19 12:10:34 +01:00
v0.5.md docs: remove repetitive words (#10370) 2024-03-19 12:10:34 +01:00
v0.6.md chore: changelogs split 2022-07-07 19:44:01 +02:00
v0.7.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.8.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.9.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.10.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.11.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.12.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.13.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.14.md chore: switch to dist.ipfs.tech 2022-08-12 23:42:17 +02:00
v0.15.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.16.md docs: update changelog-v0.16 with full changelog data 2022-10-04 11:15:00 +02:00
v0.17.md docs: bulk spelling edits (#9544) 2023-02-20 23:37:10 +01:00
v0.18.md chore: fix toc in changelog for 0.18 2023-03-10 15:30:18 +01:00
v0.19.md docs: add changelog for v0.19.2 2023-05-09 11:18:59 +02:00
v0.20.md chore: update changelog for v0.20 2023-05-09 09:31:11 +00:00
v0.21.md Merge branch 'release-v0.21' back into master 2023-08-08 14:18:32 +02:00
v0.22.md docs(changelog): link to relevant IPIP 2023-09-16 22:24:30 +02:00
v0.23.md chore: update changelog for v0.23 2023-10-05 15:40:42 +00:00
v0.24.md docs(changelog): clarify webrtc in v0.24 2023-11-09 09:23:22 +01:00
v0.25.md chore: update changelog for v0.25 2023-12-14 14:11:25 +00:00
v0.26.md chore: update changelog 2024-01-22 14:35:53 +01:00
v0.27.md chore: update changelog for v0.27 2024-03-04 10:10:56 +00:00
v0.28.md chore: update changelog for v0.28 2024-04-15 07:15:38 +00:00
v0.29.md docs(changelog): v0.29.0 2024-06-10 15:10:57 +02:00
v0.30.md Merge branch 'master' into merge-release-v0.30.0 2024-09-11 18:54:27 +02: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 cmd/files: flush parent folders (#10630) 2024-12-19 14:07:17 -08:00