This release adds WAL support and we've done a ton of hardening & stability work. Checksumming has been revamped so it is not so error prone which should help stability quite a bit.
What's Changed
- docs:
disconnected
fixup in store by @ryanrussell in #111 - Prefix FUSE debug logs by @benbjohnson in #113
- Use uppercase hex for node ID by @benbjohnson in #114
- WAL support by @benbjohnson in #120
- Add WAL checkpoint test by @benbjohnson in #121
- Fix return lock type for SHM lock by @benbjohnson in #123
- List journal filenames in root handle by @dangra in #125
- Updates workflows to support external PRs by @dangra in #126
- Force WAL fsync() by @benbjohnson in #127
- Remove dead code for WAL locking by @benbjohnson in #129
- Consolidate locks & guards by @benbjohnson in #130
- Fix snapshot in WAL mode by @benbjohnson in #131
- Continue running on error by @benbjohnson in #137
- Reduce logging by @benbjohnson in #143
- Rollback journal on startup by @benbjohnson in #144
- Validate that mount & data directories are different by @benbjohnson in #145
- Ensure mount directory exists before mounting by @benbjohnson in #146
- refactor: replace
Readdir(-1)
withos.ReadDir
by @Juneezee in #147 - Fix locking when applying LTX file to replica in WAL mode by @benbjohnson in #148
- Retain OS page cache on open(2) by @benbjohnson in #150
- Attempt unmount for unclean exit by @benbjohnson in #151
- Specify 'exec' command from CLI by @benbjohnson in #152
- Add SHM locks to /debug/vars by @benbjohnson in #154
- Add endpoint for dynamically setting debug logging by @benbjohnson in #156
- Replay last LTX on recovery by @benbjohnson in #157
- Fix recovery on replication position mismatch by @benbjohnson in #158
- Clear LTX files on snapshot received by @benbjohnson in #160
- Remove pre-exec sleep by @benbjohnson in #161
- Print version & commit info on startup by @benbjohnson in #162
- Initialize DB.mode on open by @benbjohnson in #163
- Add support for PERSIST journal mode by @benbjohnson in #168
- Add support for TRUNCATE journal mode by @benbjohnson in #169
- Show position file in readdir output by @benbjohnson in #175
- Allow simple expressions in env var expansion by @benbjohnson in #177
- Reduce Consul lock delay by @benbjohnson in #180
- Fix FUSE connection close deadlock by @benbjohnson in #181
- Add END frame to HTTP stream by @benbjohnson in #183
- Recover from invalid database on startup by @benbjohnson in #184
- Improve snapshot logging by @benbjohnson in #185
- Acquire all SHM read locks on snapshot by @benbjohnson in #186
- Read page count after verify by @benbjohnson in #187
- Move functionality to 'mount' subcommand by @benbjohnson in #188
- Update page count on apply by @benbjohnson in #189
- Implement StrictVerify for WAL by @benbjohnson in #190
- Add 'strict-verify' to YAML config by @benbjohnson in #191
- Fix compilation on Darwin by @benbjohnson in #193
- Fix JournalNode.Read() by @benbjohnson in #194
- Restrict dirty pgno to commit size by @benbjohnson in #195
- Allow retention enforcement to be disabled by @benbjohnson in #196
- Add litefs-bench test program by @benbjohnson in #198
- Fix frame count calculation on journal recovery by @benbjohnson in #197
- Upgrade to LTX v0.2.7 by @benbjohnson in #199
- Check for journal header magic after first segment by @benbjohnson in #200
- Set journal mode in litefs-bench by @benbjohnson in #201
- Skip dirty page tracking in WAL mode by @benbjohnson in #202
- Add -debug CLI flag to mount command by @benbjohnson in #203
- Move WAL commit to after WAL_WRITE_LOCK release by @benbjohnson in #205
- Fix Pos() deadlock with file system invalidation by @benbjohnson in #206
- Fix WriteSnapshotTo() lock in WAL mode by @benbjohnson in #207
- Add 'query' command to litefs-bench by @benbjohnson in #208
- Add latency metrics by @benbjohnson in #209
- Add
skip-sync
config flag by @benbjohnson in #210 - Acquire shared CKPT & RECOVER lock during snapshot by @benbjohnson in #211
- Add 'import' command by @benbjohnson in #212
- Disable fail-fast on CI by @benbjohnson in #214
- Remove journal on import by @benbjohnson in #213
- Make FUSE layer thinner by @benbjohnson in #215
- Fix journal checksum validation by @benbjohnson in #216
- Consolidate Remaining DB API by @benbjohnson in #218
- Add trace logging by @benbjohnson in #219
- Implement page-level checksum tracking by @benbjohnson in #221
- Sync WAL to LTX on startup by @benbjohnson in #222
- Rewrite SHM after replica LTX apply by @benbjohnson in #224
- Move debug flag to FUSE config section by @benbjohnson in #225
- Implement rolling trace log by @benbjohnson in #226
- Skip lock page on checksum by @benbjohnson in #227
- Skip lock page on snapshot by @benbjohnson in #228
- Checkpoint on primary/replica state change by @benbjohnson in #229
- Remove FUSE debugging on CI testing by @benbjohnson in #231
- Implicit CKPT lock on WRITE lock by @benbjohnson in #230
- Add additional trace logging to CommitWAL() by @benbjohnson in #232
- Prevent partial WAL rewind by @benbjohnson in #233
- Continue init on database early EOF by @benbjohnson in #235
- Increase default retention by @benbjohnson in #236
- Require explicit Consul key by @benbjohnson in #237
- Commit WAL on Handle Close by @benbjohnson in #238
- Move mount directory to FUSE config by @benbjohnson in #239
- Move data-dir to data section by @benbjohnson in #240
- Consolidate consul & static lease configs by @benbjohnson in #241
- Fail unless lease type is valid by @dangra in #242
- Add ref_name to Docker builds by @benbjohnson in #243
- Remove static.primary config field by @benbjohnson in #244
- Strict config type checking by @benbjohnson in #245
- Minor updates to litefs.yml reference by @benbjohnson in #246
- Refactor config comments by @benbjohnson in #247
- Add test for rollback on database creation by @benbjohnson in #248
New Contributors
- @ryanrussell made their first contribution in #111
- @dangra made their first contribution in #125
- @Juneezee made their first contribution in #147
Full Changelog: v0.2.0...v0.3.0