This is a bugfix release, no new features since 3.7.4 were added.
Changelog
Compared to the latest release 3.7.4, the following changes and bugfixes were added.
Bugfixes
This is a complete list of the merged pull requests.
Fix wildcard index of search collection in MongoDB is missing _id field resulting in poor sorting performance
PR #2170 addresses a potential performance issue for Ditto’s search.
In case a single user e.g. has access to READ
a lot of things and queries with a simple query those things, adding
sorting the results explicitly by their thingId
, this sort was not using the MongoDB wildcard index and was instead
done in memory, resulting in a potential really slow API call.
The PR contains adding another wildcard index, adding the _id
field as well as “compound index”.
This however can only be used when using MongoDB version 7.0 or higher, were support for compound indexes including a wildcard index was added.
Therefore, this is not activated as default index - also in order to not break existing Ditto deployments.
The index can be activated via configuration - there is a new search configuration option activated-index-names
available,
e.g. also exposed via the Helm chart.
Fixing CPU hotspots in mapping strategies and JSON key validation
PR #2171 provides a fix for Ditto internal performance hotspots.
One of those is configurable as it would alter the behavior of how Ditto validates JSON keys.
Currently, Ditto prevents using control characters in JSON keys by validating the keys against a regex.
The validation is done recursively for each contained key in a JSON object and every time a JSON object is internally built.
This can have quite an influence on CPU usage, so this behavior can be deactivated via the environment variable
DITTO_DEVOPS_FEATURE_JSON_KEY_VALIDATION_ENABLED
.
It can e.g. make sense to disable this validation if there are other means to ensure that JSON keys are valid and no
control characters are used.
For example, by using WoT based validation.
Helm Chart
Added more configuration options for ingress-nginx
PR #2167 provides more options to configure the ingress-nginx controller:
- workerProcesses
- workerConnections
- workerOpenFiles
Fixed setting tag of hook image in Helm chart
PR #2169 fixes a mix up of parameters which caused the “pod deletion cost”
hook image version to be always latest
instead of the configured version.