Releases: tikv/raft-engine
Releases · tikv/raft-engine
0.4.2
What's Changed
Behavior Changes
- When log rewrite encounters IO failures, Raft Engine will return an error to the caller instead of panic directly. (#343)
- Raft Engine will now triggers IO sync operation when rewritten bytes exceeded a threshold(512KiB by default), this can help avoiding too big sync impact the foreground write latency. (#347)
New Contributors
Full Changelog: 0.4.1...0.4.2
0.4.1
What's Changed
Behavior Changes
- When log recycling is enabled, Raft Engine will now retain 50% more log files to reduce the chance of running out. (#331)
- Reduce the scope of keys reserved for internal use. (#335)
New Contributors
Full Changelog: 0.4.0...0.4.1
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
0.3.0
What's Changed
Bug Fixes
- Unconditionally tolerate
fallocate
failures as a fix to its portability issue. Errors other thanEOPNOTSUPP
will still emit a warning. (#225) - Avoid leaving fractured write after failure by reseeking the file writer. Panic if the reseek fails as well. (#200)
- Fix a parallel recovery panic bug. (#251)
- Fix panic when an empty batch is written to engine and then reused. (#267)
New Features
- Add
PerfContext
which records detailed time breakdown of the write process to thread-local storage. (#227) - Support recycling obsolete log files to reduce the cost of
fallocate
-ing new ones. (#224)
Public API Changes
- Add
is_empty
toEngine
API. (#228) - Add metadata deletion capability to
FileSystem
trait. Users can implementexists_metadata
anddelete_metadata
to clean up obsolete metadata from older versions of Raft Engine. (#229) - Add
Engine::scan_messages
andEngine::scan_raw_messages
for iterating over written key-values. (#234) - Add
Engine::get
for getting raw value. (#259) - Move
sync
fromenv::WriteExt
toenv::Handle
. (#269) - Deprecate
bytes_per_sync
. (#269)
Behavior Changes
New Contributors
- @Uchiha007 made their first contribution in #222
- @guoxiangCN made their first contribution in #242
Full Changelog: 0.2.0...0.3.0
0.2.2
0.2.1
What's Changed
Bug Fixes
- Unconditionally tolerate fallocate failures as a fix to its portability issue. Errors other than EOPNOTSUPP will still emit a warning. #226
Public API Changes
- Add metadata deletion capability to
FileSystem
trait. Users can implementexists_metadata
anddelete_metadata
to clean up obsolete metadata from older versions of Raft Engine. #230
Full Changelog: 0.2.0...0.2.1
0.2.0
What's Changed
Bug Fixes
- Fix a false negative case of
LogBatch::is_empty()
#212 - Fix fsync ordering when rotating log file #219
New Features
- Support limiting the memory usage of Raft Engine under new feature
swap
#211 - Add a new Prometheus counter
raft_engine_memory_usage
to track memory usage #207
Improvements
- Reduce memory usage by 25% #206
Public API Changes
Full Changelog: 0.1.0...0.2.0
0.1.0
The first public release of Raft Engine. Now available on crates.io.
New Contributors
- @koushiro made their first contribution in #41
- @yuqi1129 made their first contribution in #102
- @ztelur made their first contribution in #163
- @PsiACE made their first contribution in #164
Full Changelog: https://github.com/tikv/raft-engine/commits/0.1.0