Two proposals for a layered store with two lower stores:
- one lower (called lower_new) is used until it is full, at which point the other lower (called lower_old) is cleared and it becomes lower_new:
The following benchmarks are from bootstrapping the layered store and calling a freeze every 50, 500 or 4000 commits. The x axis represents the completion time of requests successfully validated by the block validator, or the prevalidator, as they are read from the logs. The x axis does not represent the commits, so a freeze does not necessarily occur at the 50th mark on the axis. The logs as well as the scripts for generating the graphs are here.
Sometimes I'll use a local benchmark, provided in the layered store branch. The default setup for these benchmark is that every commit add 1000 nodes to the previous commit and a freeze is called every 50 commits.
They can be run by executing
dune exec -- ./test/irmin-pack/layered_bench.exe --nbatches=4 --depth=1000 2> outs for instance and then using the scripts here to generate the graphs.
First attempt to install the cross-compiler for esp-32:
opam repo add git https://github.com/well-typed-lightbulbs/opam-cross-esp32.git opam install mirage-esp32 ocaml-esp32.4.07.1
which is supposed to work for linux. On mac, I get the error