broad-processor-92400
05/23/2023, 2:32 AMwitty-crayon-22786
05/23/2023, 3:33 AMTree
protobuf (which we have some code to serialize/deserialize already).
a Tree
is an entire Directory
, recursively: it contains a root, and then all of the reachable `Directory`s. files are still digests, referenced from the directorieswitty-crayon-22786
05/23/2023, 3:33 AMwitty-crayon-22786
05/23/2023, 3:34 AMbroad-processor-92400
05/23/2023, 3:36 AMa/
then a/b/
then a/b/c/
to finally get a/b/c/file1.txt
, one could get the whole tree, and then straight away a/b/c/file.txt
?witty-crayon-22786
05/23/2023, 3:36 AMbroad-processor-92400
05/23/2023, 3:40 AMwitty-crayon-22786
05/23/2023, 3:44 AMbroad-processor-92400
05/23/2023, 3:58 AMfast-nail-55400
05/23/2023, 10:45 AMfast-nail-55400
05/23/2023, 10:46 AMfast-nail-55400
05/23/2023, 10:48 AMfast-nail-55400
05/23/2023, 10:49 AMbroad-processor-92400
05/23/2023, 10:49 AMfast-nail-55400
05/23/2023, 10:50 AMfast-nail-55400
05/23/2023, 10:51 AMfast-nail-55400
05/23/2023, 10:51 AMfast-nail-55400
05/23/2023, 10:51 AMbroad-processor-92400
05/23/2023, 10:52 AMGET {digest}
and PUT {digest}
, so there's no way to meaningfully benefit from "please get digest1
, digest2
, digest3
all togther" other than... running 3 requests GET {digest1}
, GET {digest2}
, GET {digest3}
, in parallel at least, but pants can already do that.fast-nail-55400
05/23/2023, 10:53 AMfast-nail-55400
05/23/2023, 10:53 AMfast-nail-55400
05/23/2023, 10:54 AMfast-nail-55400
05/23/2023, 10:55 AMbroad-processor-92400
05/23/2023, 11:04 AMbroad-processor-92400
05/23/2023, 11:06 AM(and indeed exists is better phrased as "FIND_MISSING_BLOBS digest1, digest2, digest3, ...")This is likely also something that doesn't generalise well for non-REAPI caches, e.g. often one might have only
HEAD {digest}
without batching; at least cheaper then a full GET
or PUT
though?