0.4.0
What's Changed
Behavior Changes
LogBatch::put
returns aResult<()>
instead of()
. It errs when the key is reserved for internal use. (#290)- Possible to specify a permission in
FileSystem::open
. (#296) - Prometheus counter
raft_engine_log_file_count
no longer includes retired log files that are stashed for recycling. Those files are now tracked by a new counterraft_engine_recycled_file_count
. (#297)
Bug Fixes
- Fix data loss caused by aborted rewrite operation. Downgrading to an earlier version without the fix may produce phantom Raft Groups or keys, i.e. never written but appear in queries. (#290)
- Fix a potential bug that an un-persisted log batch is mistakenly recovered and causes checksum mismatch error when being read later. (#319)
New Features
- Support preparing prefilled logs to enable log recycling when start-up. The amount of logs to prepare is controlled by
Config::prefill_limit
. (#278) - Add a new configuration
spill-dir
to allow automatic placement of logs into an auxiliary directory whendir
is full. (#294) - Add a new method
Engine::fork
to duplicate anEngine
to a new place, with a few disk file copies. (#296) - Support configuring lz4 acceleration factor with
compression-level
. (#311)
New Contributors
- @MichaelScofield made their first contribution in #322
Full Changelog: 0.3.0...0.4.0