You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ratis.apache.org by Xinyu Tan <ta...@apache.org> on 2024/09/26 07:07:34 UTC

[ANNOUNCE] Apache Ratis 3.1.1 Release

Hi, all

The Apache Ratis team is pleased to announce the release of Apache Ratis 3.1.1.

Apache Ratis is the creation and maintenance of software related to a highly customizable Raft protocol implementation in Java.

This is a bug-fixed version of 3.1.0, which includes a number of new features, bug-fixes, improvements and unstable commit reverts, to list all of them:

### New Features
- NettyClientRpc supports sendRequestAsync. 
- Add a builder for RatisShell

### Bug-fixes
- Surround with [] only if hostName is a IPv6 string
- Fix the issue where RaftServerImpl.appendEntries may be blocked indefinitely
- logMetadata could miss appending the metadataEntry with the lastCommitIndex
- Fixed the issue that RatisServer could not start after frequent restarts
- The leader keeps sending inconsistent entries repeatedly to followers
- Remove uncessary error log in JVMPauseMonitor When GC is serious
- Fix LogAppenderDefault in handling of INCONSISTENCY
- SegmentedRaftLogWorker should close the stream before releasing the buffer
- Thread wait when installing snapshot
- Follower hangs until the next trigger to take a snapshot
- Fixed possible issues caused by concurrent deletion and election when member changes
- Do not perform leader election if the current RaftServer has not started yet 
- Snapshot transfer may cause followers to trigger reloadStateMachine incorrectly
- The old leader may send appendEntries after term changed
- GrpcLogAppender stucks while sending an installSnapshot notification request
- Md5 mismatch when snapshot install
- Let the snapshot sender and receiver use a new digester each time

### Improvements
- Extract common logic of ratis-shell to RaftUtils for reuse
- Publish SBOM artifacts
- No need for manual assembly:single execution
- Improve assembly process
- Set javac --release when compiling with JDK 9+
- Avoid including build timestamp in artifacts
- javadoc jars should not include non-doc items
- Optimize NotLeaderException message
- Ignore http proxy for ratis grpc client & server
- Double shutdown in TestLeaderInstallSnapshot.
- Fix flaky RetryCacheTests and InstallSnapshotFromLeaderTests
- Fix checkstyle:ParameterNumber in GrpcService
- Use consistent method names and parameter types in RaftUtils.
- ratis-version.properties missing from src bundle
- No need for manual assembly:single execution when mvn deploy
- Enhance make_rc.sh for non-first rc at release time

### Revert
- Revert "Refactor client request processing to support reference count."
- Revert "Move TermIndex.PRIVATE_CACHE to Util.CACHE"
- Revert "RATIS-2099. Cache TermIndexImpl instead of using anonymous class


The full changes are available at:
https://ratis.apache.org/post/3.1.1.html

The release is available for download at:
https://ratis.apache.org/downloads.html

Maven artifacts can be found at
https://central.sonatype.com/search?q=org.apache.ratis&smo=true

Regards,
Apache Ratis Team