v1.22.0
Summary
This release includes two new features:
- dqlite clients now search for the current leader by connecting to several nodes of the cluster in parallel (#292, thanks @cnnrznn). The level of parallelism can be configured with the new
WithConcurrentLeaderConns
option (#303, thanks @masnax). - The new
WithRolesAdjustmentHook
option allows applications that use go-dqlite to react to changes in cluster membership and roles (#301, thanks @masnax).
It also includes several bug fixes and performance improvements:
- Introduce a timeout for connecting to the leader in the dqlite-demo example program (#295, thanks @letFunny).
- Fix a panic caused by reading from a closed channel when accepting new client connections (#304, thanks @marco6).
- Copy blob values from server messages in bulk instead of one byte at a time (#297, thanks @marco6).
- Fix a panic causes by an unset field in the client's
Rows
object (#308, thanks @marco6).
All changes
- .github/workflows: run tests on go 1.21.x by @MathieuBordere in #280
- packages: Add mantic. by @MathieuBordere in #281
- Remove lunar, add noble by @cole-miller in #285
- driver_test: test interrupting query yielding rows. by @MathieuBordere in #286
- github: Don't install libraft-dev package by @cole-miller in #288
- Set protocol version inside connectAttemptOne by @cnnrznn in #287
- Attempt to connect to leader via 10 servers simultaneously by @cnnrznn in #292
- set client timeout in dqlite demo by @letFunny in #295
- Improve Message.getBlob performance by @marco6 in #297
- Hook into continual dqlite role probes by @masnax in #301
- Use range loop instead of endless loop by @marco6 in #304
- Configure maximum concurrent leader probes by @masnax in #303
- Avoid context cancellation during net.Dial call in connector by @cole-miller in #306
- driver: Expose leadership-related error codes by @cole-miller in #307
- Fix missing log in Rows by @marco6 in #308
See also the full commit log.