WIP: multi-log file backend
Tracking this as a WIP mainly so that we don't lose this. The idea is to use N backing logs instead of just one, pre-allocate them to an initial size, and then extend them in bulk as needed.
The changes in this WIP are only enough for limited proof of concept benchmarks, but the performance boost is significant (from 150 to 540 MiB/s write bandwidth in point to point tests with 32 KiB access size).
Further changes needed:
- implement asynchronous fallocate to extend logs when their capacity reaches a configurable threshold
- configuration variables for number of logs and initial size
- store current log record offset on clean shutdown, retrieve it and clear it on clean startup
- set log record offset to end of current log file for safety if exact log position cannot be found
- fix multi-target and multi-provider modes