EventStoreDB 5.0.0 Release Candidate 3

Shaan Nobee  |  29 January 2019

EventStoreDB 5.0.0 RC 3 is out! It is available for the following operating systems:

  • Windows
  • Ubuntu 18.04
  • Ubuntu 16.04
  • Ubuntu 14.04
  • macOS 10.9+
  • CentOS 7 (Commercial version)
  • Amazon Linux AMI (Commercial version)

This release candidate includes all the changes in 5.0.0 RC 1 and 5.0.0 RC 2.

Event Store 5.0.0 RC 3 Changelog

Breaking Changes

New Features

  • #1842 - (Server) Add a maximum index level for automatically merging ptables.
    • A new configuration option named MaxAutoMergeIndexLevel (int) has been added which defines the highest PTable level below which PTable index files will be merged automatically (just like it’s done by default). Let’s denote the maximum merge level you have set in your configuration by L to simplify the explanation below.
    • To merge index files that are at the specified level L, an endpoint can be manually triggered by doing a POST request to /admin/mergeindexes. This will merge the index files at level L to level L+1. Index files that are at level L+1 or higher will stay the same.
    • This option is useful in situations where large index merges are slowing down writes due to heavy disk usage. With this option, large index files can be merged during off-peak hours.
    • Once set, the maximum merge level can be decreased in your configuration. However, increasing it in your configuration may require a full index rebuild.

Bug Fixes / Enhancements

  • #1828 - (Server) Check to avoid crash when network is disconnected.
  • #1839 - (Server) Look for EventStore plugins in /usr/share/eventstore/plugins on Linux and /usr/local/share/eventstore/plugins on macOS.
  • #1841 - (Server) Fix drive stats for ZFS (total/free space). (thanks to @ahjohannessen!)
    The following error would previously be visible in the logs:
    Error while reading drive info for path "/path/to/db". Message: "The drive name does not exist
    Parameter name: driveName".
    

Performance

  • #1829 - (Server) Do not publish StorageMessage.EventCommitted messages when rebuilding the index. This speeds up full index rebuilds by a factor of approximately 1.8x and also speeds up node startup time by a few seconds when there are many index entries to rebuild.
  • #1830 - (Server) Set spin count to 1 in ManualResetEventSlim. This drastically reduces the CPU usage due to excess spinning on processors with long PAUSE cycles, for example: Intel Skylake/Kaby Lake.
  • #1835 - (Server/C# Client) ConcurrentQueue workaround to speed up ConcurrentQueue.Count.
    This speeds up our queue loops on Linux/macOS where the queue length is required. The ConcurrentQueue data structures have changed as from mono 5.2 and .NET Core 2.0 and in some scenarios, ConcurrentQueue.Count can be extremely slow.

Miscellaneous

  • #1826 - (Server) Enable structured logging by default.
  • #1837 - (Server) Make the console logs human-readable even when structured logging is enabled.

Commercial version

  • Fix plugin packaging for Linux and macOS packages.
  • UI: fix issue where some Javascript code was not correctly minified due to a bug in uglify-js 3.4.9.

Where can I get the packages?

Downloads are available on our website in the “Pre-Release” section.

The packages can be installed using the following instructions.

Ubuntu 14.04/16.04/18.04 (via packagecloud)

curl -s https://packagecloud.io/install/repositories/EventStore/EventStore-OSS-PreRelease/script.deb.sh | sudo bash
sudo apt-get install eventstore-oss=5.0.0-rc3-1

Windows (via Chocolatey)

choco install eventstore-oss -version 5.0.0-rc3 -pre

Client Packages

EventStore Client

Install-Package EventStore.Client -Pre

EventStore Embedded Client

Install-Package EventStore.Client.Embedded -Pre

How do I provide feedback?

We appreciate any feedback via either GitHub Issues or forum.


Photo of Shaan Nobee

Shaan Nobee Shaan joined Event Store in 2017 as a software engineer and works on the core database engine. He is from Mauritius, a beautiful and peaceful island in the Indian Ocean.