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:
parent
2ef60282b6
commit
510927e43a
5 changed files with 66 additions and 39 deletions
|
|
@ -58,7 +58,7 @@ impl From<super::Error> for Error {
|
|||
//
|
||||
// It assumes the caller adds returned nodes to the directories it assembles.
|
||||
#[instrument(skip_all, fields(entry.file_type=?&entry.file_type(),entry.path=?entry.path()))]
|
||||
fn process_entry<BS: BlobService, CS: ChunkService, DS: DirectoryService>(
|
||||
fn process_entry<BS: BlobService, CS: ChunkService + std::marker::Sync, DS: DirectoryService>(
|
||||
blob_service: &mut BS,
|
||||
chunk_service: &mut CS,
|
||||
directory_service: &mut DS,
|
||||
|
|
@ -167,7 +167,7 @@ fn process_entry<BS: BlobService, CS: ChunkService, DS: DirectoryService>(
|
|||
#[instrument(skip(blob_service, chunk_service, directory_service), fields(path=?p))]
|
||||
pub fn import_path<
|
||||
BS: BlobService,
|
||||
CS: ChunkService,
|
||||
CS: ChunkService + std::marker::Sync,
|
||||
DS: DirectoryService,
|
||||
P: AsRef<Path> + Debug,
|
||||
>(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue