DAL: amplificator Eio-ification
This MR is the first step toward bringing the ability to verify, in parallel, batches of shards -- improving the performances of the shard verification.
To do so, it is needed to rework the amplificator, and especially the Process_worker. Indeed, offloading of computation was done using a Unix.fork, something prohibited in the context of Eio (and thus, Ocaml multicore). The amplificator workflow was reworked in order to:
- use
Eio.Stream.tinstead ofLwt_channelsto communicate between DAL node and amplificator - use the Eio domain runtime to run the actual computations
- wrap and rework the code to conform to the
Eioconstraints when usingLwt
Manually testing the MR
The code is expected to behave similarly. Green CI is already a good step.
It might worth monitoring a DAL node running the amplificator to notice potential regression (perf, crashes or memory leaks).
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR