21.10.8 Release Notes
We are pleased to announce the official release of EventStoreDB OSS & Commercial version 21.10.8 long-term support (LTS).
This LTS release will be supported until October 2023.
Read more about our versioning strategy here.
The complete changelog can be found here. If you need help planning your upgrade or want to discuss support, please contact us here.
EventStoreDB 21.10.8 is available for the following operating systems:
- Windows
- Ubuntu 18.04
- Ubuntu 20.04
- CentOS 7 (Commercial version)
- Amazon Linux 2 (Commercial version)
- Oracle Linux 7 (Commercial version)
Additionally, an experimental build for ARM64 processors will be available shortly as a Docker image.
Note:
Ubuntu 16.04 is not supported anymore as of the 21.10.0 release, more information about Ubuntu’s release and support policy can be found here.
Where Can I Get the Packages?
Downloads are available on our website.
The packages can also be installed using the following instructions.
Ubuntu 18.04/20.04 (via packagecloud)
curl -s https://packagecloud.io/install/repositories/EventStore/EventStore-OSS/script.deb.sh | sudo bash
sudo apt-get install eventstore-oss=21.10.8
Windows (via Chocolatey)
choco install eventstore-oss -version 21.10.8
Docker (via docker hub)
docker pull eventstore/eventstore:21.10.8-focal
docker pull eventstore/eventstore:21.10.8-buster-slim
Important Fixes
gRPC requests can no longer stall when a node is Unavailable
Previously, authentication attempts (such as for read requests) could stall when made against a node that was not ready to handle requests. For example, requests could stall while the node was still starting up and in the Initializing state, or when an election had just happened and the node was in the PreLeader state.
This resulted in these requests either timing out if they had a deadline, or just hanging indefinitely until the client or node was shut down.
The server will now handle these requests correctly and respond with an Unavailable error. The client will then be able to retry the request.
We recommend upgrading to this version if you are using the gRPC interface.
Memory leak caused by EventPipeEventSource
Thanks to @PaskeS for identifying and fixing a memory leak that caused memory usage to grow at a steady rate. This fix also corrects the GC stats reported by EventStore.
Check out the PR for more information.
Double serialization of projections using $init function
Thanks again to @PaskeS for finding this issue in projections.
Projections using the $init function were calling a state transform on each event, even if there weren’t any transformations defined. Since state transformation causes events to be serialized, calling this unnecessarily negatively affects the projection’s performance.
The fix improves the performance of projections using the $init function and not using the transformBy function.
New Features
Support for custom log templates
We’ve upgraded Serilog, which means that custom log templates are now supported and can be defined in the logconfig.json file.
You can read more about custom log templates for Serilog here.
If you have a support contract, please bear in mind that changing the log templates may affect how quickly our support staff is able to help you.
Upgrade Procedure
To upgrade a cluster from 20.10.x or 21.10.x, a usual rolling upgrade can be done:
- Pick a node (start with follower nodes first, then choose the leader last).
- Stop the node, upgrade it and start it.
There is no way to perform a rolling upgrade between version 5.x and version 21.10.x due to changes in the replication protocols and the way nodes gossip and host elections.
As such, the upgrade process from 5.x is as follows:
- Take down the cluster
- Perform an in-place upgrade of the nodes, ensuring that the relevant configuration and certificates are set up
- Bring the nodes back online and wait for them to stabilize
Documentation and previous releases notes
Documentation for EventStoreDB can be found here. Previous release notes can be found here.
Providing Feedback
If you encounter any issues, please don’t hesitate to open an issue on GitHub if there isn’t one already.
Additionally, there is a fairly active Discuss channel, and an #event-store-db channel on the DDD-CQRS-ES Discord community.
If you have any questions that aren't covered in these release notes or the docs, please feel free to reach out.