ok/jj
1
0
Fork 0
forked from mirrors/jj
jj/lib
Martin von Zweigbergk 1b9a3e27e0 merged_tree: read before/after trees concurrently
I'm going to rewrite `TreeDiffIterator` to fetch one level (depth) of
the tree at a time and concurrently. One step towards that is to
convert the iterator to a `Stream`. I'd like to do that by making the
current `Iterator` implementation call the new `Stream`
implementation. However, we can't call `futures::executor::block_on()`
on a future that itself calls `futures::executor::block_on()` (as
`Store::read_tree()` does), so the first step is to bubble up the
async-ness a bit. This patch does that by fetching both sides of the
diff concurrently. That should give close to a 2x speedup on
high-latency backends. (It doesn't help with our backend at Google,
however, because we have a daemon process that does some speculative
prefetching that usually downloads the child trees anyway.)
2023-10-08 23:36:49 -07:00
..
benches
gen-protos
src merged_tree: read before/after trees concurrently 2023-10-08 23:36:49 -07:00
tests working_copy: don't crash when updating and tracked file exits on disk 2023-10-07 14:02:31 -07:00
testutils backend: make read functions async 2023-10-08 23:36:49 -07:00
Cargo.toml backend: make read functions async 2023-10-08 23:36:49 -07:00
LICENSE