Overview
The v0.2.0 release primarily focuses on stability and hardening, however, it also includes a few important features. This release is also marks the end of the alpha phase of LiteFS and it is now considered "beta" software. It should generally run well, however, please report bugs to the GitHub repository.
Major features
Candidacy
By default, every node in the cluster can become the primary node. However, moving a primary from one region to another can change performance characteristics significantly so it may be useful to only allow certain nodes to become primary. You can now set the candidate
flag in the config to false
for any nodes which should not become primary:
candidate: false
Static Lease
LiteFS uses Consul to dynamically change the current primary in the cluster on the fly. However, for users that do not wish to run Consul, they can set a single fixed primary node. This is similar to how Litestream's read replication was meant to work. Please see #47 for more details.
Pull Requests
- Upgrade to LTX v0.2.0 in #45
- Implement candidacy in #46
- Implement static lease in #47
- Return ENOSYS for xattr requests by @darthShadow in #51
- Implement database snapshot to LTX in #53
- Update contribution policy in #54
- Retention enforcement in #57
- Implement statfs() callback in #58
- Support non-default page size in #59
- Expose DB position via FUSE in #60
- Optional registration of Consul node in #63
- Use default consul key, if not specified in #65
- Return hostname in primary file in #66
- Metrics in #67
- Update lock delay to 5s in #68
- Set hostname env variable, if unset in #69
- Default Advertise URL in #70
- Add configurable data directory in #71
- Rename pprof import in #72
- Fix database locks to use LockOwner in #74
- Atomically write LTX files on commit in #78
- Add unique, persistent node ID in #79
- Disconnect streams when primary status changes in #80
- Add DB nil check on HTTP server in #81
- Remove GITHUB_TOKEN & Makefile in #82
- Add staticcheck CI in #83
- Add errcheck to CI in #84
- Wait for ready state on startup in #85
- Ensure node does not startup if LTX files are invalid in #86
- Minor CI tweaks in #87
- Disable poll() in FUSE layer in #88
- Verify all LTX files on startup in #89
- Verify database checksum on startup in #90
- Fix locking on LTX apply in #91
- Verify txid/checksum on LTX frame in #92
- Add long-running, functional test in #93
- Fix http log formatting in #94
- Skip LTX checksum check on snapshot in #95
- Document 'exec' field in config in #97
- Fix LTX checksum on VACUUM in #98
- Refactor GitHub Actions in #99
- Mark ready after initial replication set in #100
- Fix FUSE return so replicas report a SQLITE_READONLY error in #101
- Remove DBID in #102
- Refactor RWMutex & RWMutexGuard in #103
- Move CI timeout to 'go test' command in #104
- Use HTTP/2 for internal endpoints in #106
- Require explicit data directory in #109
- Only release amd64 and arm64 in #110
New Contributors
- @darthShadow made their first contribution in #51
Full Changelog: v0.1.1...v0.2.0