Home JGroups Raft 1.1.0.Final Released
Post
Cancel

JGroups Raft 1.1.0.Final Released

Hello, everyone!

I’m happy to share the release of JGroups Raft 1.1.0.Final. I’ve created a branch for the 1.0.x version should updates ever be needed.

This release includes several bug fixes, including issues with cluster changes during the election procedure and improvements when utilizing COMPRESSION in the stack. The full release notes are available on GitHub: https://github.com/jgroups-extras/jgroups-raft/releases/tag/jgroups-raft-1.1.0.Final.

Minor Version Bump

There’s been a minor version bump because we’re deprecating the LevelDBLog implementation. We’ve dropped our reliance on abandonware for the LevelDB Java library. The current implementation now delegates to our own implementation: FileBasedLog.

This introduces some incompatibilities and requires a manual migration of the data files. The migration is necessary because the implementations utilize different formats. Therefore, if you used the LevelDBLog implementation in version 1.0.x, a migration is required to move to 1.1.x without losing data.

We’ve included a CLI script to perform this migration. The migration tool is a JBang! script hosted in our bin folder in the repository with name migrate_leveldb.java. To run the script, you can download it to the host where you want to perform the migration or run it remotely using JBang!. For example, assuming your logs are written by LevelDB in /home/user/A.log (the log_dir property in RAFT), the most straightforward approach is running the script remotely from GitHub:

1
jbang https://raw.githubusercontent.com/jgroups-extras/jgroups-raft/refs/tags/jgroups-raft-1.1.0.Final/bin/migrate_leveldb.java /home/user/A.log

JBang! will retrieve the code from GitHub and execute the migration procedure. The script will output the steps being performed and track progress for each entry.

This runs locally. The same steps should be applied to every node in the cluster.

The script will verify whether there’s data suitable for a FileBasedLog implementation and will abort if it finds existing files. If you’re sure you want to proceed, you can use the --force parameter. It will create a temp folder in /home/user/A.log/temp and copy the existing data into it as a FileBasedLog.

Another approach, slightly more complex, is to create the script locally. The script needs to be named migrate_leveldb.java.

1
jbang migrate_leveldb.java /home/user/A.log

The LevelDBLog implementation remains present and is deprecated. We plan to remove it in the next major release, making the FileBasedLog implementation the default.

The original data generated by the LevelDBLog implementation is not deleted after the migration.

Thanks!

This post is licensed under CC BY 4.0 by the author.
Trending Tags
Contents

Hello World!

JGroups Raft 2.0.x Roadmap

Trending Tags