Skip to content

Releases: tikv/raft-engine

0.4.2

26 Apr 08:39
084c5ca
Compare
Choose a tag to compare

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

14 Sep 09:43
fa56f89
Compare
Choose a tag to compare

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

01 Sep 08:57
0a33383
Compare
Choose a tag to compare

What's Changed

Behavior Changes

  • LogBatch::put returns a Result<()> 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 counter raft_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 when dir is full. (#294)
  • Add a new method Engine::fork to duplicate an Engine to a new place, with a few disk file copies. (#296)
  • Support configuring lz4 acceleration factor with compression-level. (#311)

New Contributors

Full Changelog: 0.3.0...0.4.0

0.3.0

14 Sep 09:00
b95dd01
Compare
Choose a tag to compare

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. (#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 to Engine API. (#228)
  • Add metadata deletion capability to FileSystem trait. Users can implement exists_metadata and delete_metadata to clean up obsolete metadata from older versions of Raft Engine. (#229)
  • Add Engine::scan_messages and Engine::scan_raw_messages for iterating over written key-values. (#234)
  • Add Engine::get for getting raw value. (#259)
  • Move sync from env::WriteExt to env::Handle. (#269)
  • Deprecate bytes_per_sync. (#269)

Behavior Changes

  • Change format version to 2 from 1 by default. (#265)
  • Enable log recycling by default. (#265)

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

26 Jul 06:12
b4d564c
Compare
Choose a tag to compare

What's Changed

Bug Fixes

  • Avoid leaving fractured write after failure by reseeking the file writer. Panic if the reseek fails as well. (#245)
  • Fix a parallel recovery panic bug. (#251)

Full Changelog: 0.2.1...0.2.2

0.2.1

12 Jul 07:05
c01135d
Compare
Choose a tag to compare

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 implement exists_metadata and delete_metadata to clean up obsolete metadata from older versions of Raft Engine. #230

Full Changelog: 0.2.0...0.2.1

0.2.0

02 Jun 02:33
e15b9ec
Compare
Choose a tag to compare

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

  • Introduce a new error type Full #206
  • LogBatch::merge returns a Result<()> instead of () #206

Full Changelog: 0.1.0...0.2.0

0.1.0

28 Mar 08:04
2d1f8fc
Compare
Choose a tag to compare

The first public release of Raft Engine. Now available on crates.io.

New Contributors

Full Changelog: https://github.com/tikv/raft-engine/commits/0.1.0