rqlite 8.38.0 to 8.42.0: Leader Stepdown, Google Cloud Backups, and More

rqlite is a lightweight, user-friendly, open-source, distributed relational database. It’s written in Go and uses SQLite as its storage engine. Recent versions—8.38.0 through 8.42.0—introduce several notable improvements, including Google Cloud Storage support, new HTTP APIs for cluster control, and improvements to Backup support.

New Features and Enhancements

Leader Stepdown API and CLI Support
Versions 8.40.0 through 8.41.0 introduce a new HTTP endpoint to trigger stepdown of the current Leader. This allows external systems to request that leadership transfer to a specified peer. The rqlite CLI shell also supports this functionality via the new .stepdown command, and users can explicitly specify a new target Leader by ID.

This can be useful, for example, if you wish to take the Leader node out of service and want to minimize disruption to remainder of the cluster. While simply deprovisioning the Leader would result in a new Leader being elected anyway, it might be operationally safer to separate an election from deprovisioning.

Google Cloud Storage Integration
Starting in version 8.39.0, rqlite’s Automatic Backup and Restore system now supports Google Cloud Storage. Backups are timestamped, allowing operators to use GCS for versioned backups, just like they can with backups to AWS S3.

Raft Index in Responses
Any request to rqlite that changes the database is first written to the Raft log. Version 8.38.0 adds support for returning the actual log index which stored such a request. This can help clients correlate reads with committed writes to rqlite system.

Backups in DELETE Mode
Version 8.42.0 also enhances backup support so that the SQLite backup file is optionally converted to DELETE journal mode before it is returned to the user. The SQLite documents recommend that SQLite backups always be in DELETE mode, so that there is no risk of invalid SQLite files due to the lack WAL mode flies. This is mostly a convenience feature as users could previously convert WAL mode files to DELETE after downloaded if they wished.

Implementation Improvements

There have been various other implementation changes, which make the current and future development easier.

  • Substantial development of the Change Data Capture system, though further programming remains before this feature will be released.
  • Minor Raft-related network logging added.

  • Internal modules have been reorganized and refactored for better separation of concerns.

  • Upgraded dependencies, including upgrading SQLite to 3.50.3.

  • New Followers() method added to the Store for easier testing.

For the full list of changes, consult the CHANGELOG. To discuss these updates or ask questions, join the rqlite Slack channel.

Leave a Reply

Your email address will not be published. Required fields are marked *