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.
The bootstr
Configuration: | |
Key size: 32 | |
Value size: 13 | |
Number of bindings: 10000000 | |
Log size: 500000 | |
Seed: 0 | |
Metrics: true | |
Frequency: 10 | |
Replace in random order and time each operation |
I'm following TheLortex's notes on how to run my unikernel on esp32, in particular odroid-go. (Thanks to @julow and @clecat for the pointers and help.)
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