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.
After writing a doc commit into @hannahhoward's #277 to clarify the preloader
Loader()
flow, I noticed a possible wasteful write @lassie/pkg/retriever/bitswaphelpers/preloadcachingstorage.go
Lines 311 to 316 in 2b3656b
At that point, the
Loader()
call has failed to find the block in the parent or cache linksystems and it's not in the preload queue, so it's a new block that hasn't been encountered before and we load it from the "Fetcher" (bitswap) directly, bypassing any messy preload semantics. But after we have it, we write it both to the cache and to the parent. But, once it's in the parent, we shouldn't need it in the cache anymore. It's up to the user of the preloader to ensure that the parent linksystem is also able to cache blocks for duplicate-block traversals, and it already does for us—we have a messy 3-way CAR + Stream output attached to this as both the parent and cache, so the double write is entirely wasteful.That then exposes some other simplifications for the code, which is very nice.
17 additions and 40 deletions.