diff options
author | Florian Klink <flokli@flokli.de> | 2024-06-16T20·28+0300 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2024-06-20T10·28+0000 |
commit | 1446e3be9991291367a2b0cd7daa1d3c0f86e8b7 (patch) | |
tree | bba4889a18714067b998c4c20a9eee079eae299b | |
parent | 8137077a747d14eaee7884ef6e59f4bcfe3d3886 (diff) |
docs(tvix/docs): document nar renderer optimization potential r/8296
Change-Id: I747ab5c8ba3424828b1c88e0353170ad0efab3a6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11849 Tested-by: BuildkiteCI Reviewed-by: Simon Hauser <simon.hauser@helsinki-systems.de>
-rw-r--r-- | tvix/docs/src/TODO.md | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tvix/docs/src/TODO.md b/tvix/docs/src/TODO.md index 10fb08cab0a4..a999e137066d 100644 --- a/tvix/docs/src/TODO.md +++ b/tvix/docs/src/TODO.md @@ -59,6 +59,18 @@ which are supposed to be skipped. indices into that. We might need to have different representations for small amount of context elements or larger ones, and need tooling to reason about the amount of contexts we have. + - To calculate NAR size and digest (used for output path calculation of FODs), + our current `SimpleRenderer` `NarCalculationService` sequentially asks for + one blob after another (and internally these might consists out of multiple + chunks too). + That's a lot of roundtrips, adding up to a lot of useless waiting. + While we cannot avoid having to feed all bytes sequentially through sha256, + we already know what blobs to fetch and in which order. + There should be a way to buffer some "amount of upcoming bytes" in memory, + and not requesting these seqentially. + This is somewhat the "spiritual counterpart" to our sequential ingestion + code (`ConcurrentBlobUploader`, used by `ingest_nar`), which keeps + "some amount of outgoing bytes" in memory. ### Error cleanup - Currently, all services use tvix_castore::Error, which only has two kinds |