feat(tvix/store): use rayon to upload chunks concurrently

Look at the data that's written to us, and upload all chunks but the
rest in parallel, using rayon. This required moving `upload_chunk`
outside the struct, and accepting a ChunkService to use for upload
(which it was previously getting from `self.chunk_service`).

This doesn't speed up things too much for now, because things are still
mostly linear.

Change-Id: Id785b5705c3392214d2da1a5b6a182bcf5048c8d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8195
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
This commit is contained in:
Florian Klink 2023-03-01 18:30:54 +01:00 committed by flokli
parent 2ef60282b6
commit 510927e43a
5 changed files with 66 additions and 39 deletions

View file

@ -14,10 +14,11 @@ count-write = "0.1.0"
data-encoding = "2.3.3"
fastcdc = "3.0.0"
lazy_static = "1.4.0"
nix-compat = { path = "../nix-compat" }
prost = "0.11.2"
rayon = "1.6.1"
sha2 = "0.10.6"
sled = { version = "0.34.7", features = ["compression"] }
nix-compat = { path = "../nix-compat" }
thiserror = "1.0.38"
tokio-stream = "0.1.11"
tokio = { version = "1.23.0", features = ["rt-multi-thread"] }