Hmm! I would expect 1 GB to be enough (assuming defaults). Then again, that's "only" about 50 MiB per download task. Then there's up to 20 MB of unusable storage due to the blocking factor /…
It would be nice to also stream from cache - but I have not figured out a nice api for that in oneffs. The problem is the checksum is over the whole data, and we can't verify it until we've read it all. I'm not sure it's desirable to stream the whole data and then find out it's corrupt /o\
Nice! Thank you for your investigation and nice work. To me the code is now simpler and seem more robust (with the http-mirage-client behavior change).
Well, it can appear if both tasks are within the change_and_push
:
let* () = Store.set fs (Key.v "/foo") "value" in
Store.change_and_push fs @@ fun fs ->
Lwt.async (fun () ->…
I opened an issue on GitHub instead: https://github.com/robur-coop/git-kv/issues/4
So my worry was that we could have an unfortunate task interleaving where rename
just read /foo
then another task (also inside change_and_push
) sets /foo
to something else and then the…