ArangoDB v3.5.0-rc.5 Release Notes

Release Date: 2019-07-22 // almost 5 years ago
    • MinReplicationFactor: Collections can now be created with a minimal replication factor (minReplicationFactor), which defaults to 1. If minReplicationFactor > 1 a collection will go into "read-only" mode as soon as it has less then minReplicationFactor many insync followers. With this mechanism users can avoid to have collections diverge too much in case of failure scenarios. minReplicationFactor can have the values: 1 <= minReplicationFactor <= replicationFactor. Having minReplicationFactor == 1 ArangoDB behaves the same way as in any previous version.

    • 🛠 Fixed a query abort error with SmartJoins if both collections were restricted to a single shard using the "restrict-to-single-shard" optimizer rule.

    • 🛠 Fixed a performance regression of COLLECT WITH COUNT INTO.

    • 🛠 Fixed some races in cluster collection creation, which allowed collections with the same name to be created in parallel under some rare conditions.

    • arangoimport would not stop, much less report, communications errors. Add CSV reporting of line numbers that are impacted during such errors

    • 🚧 Prevent rare cases of duplicate DDL actions being executed by Maintenance.

    • Coordinator code was reporting rocksdb error codes, but not the associated detail message. Corrected.

    • ⏱ The keep alive timeout specified via --http.keep-alive-timeout is now being honored

    • Replication requests on Document API are now on higher priority then client-triggered requests. This should help to keep in sync replication up and running even if the server is overloaded.

    • 🛠 Bugfix: Save distinct WAL ticks for multiple replication clients from the same server. Also, when a follower is added for synchronous replication, the WAL tick held by the client is freed immediately, rather than waiting for a timeout. The corresponding APIs get a new parameter syncerId, which, if given, supersedes serverId. This affects the routes /_api/wal/tail, /_api/replication/batch, /_api/replication/logger-follow and the internal route /_api/replication/addFollower. The new field syncerId is also added to the response of /_api/replication/logger-state.

    • Disallow indexing the _id attribute even as a sub-attribute. Previous versions of ArangoDB did not allow creating indexes on the _id attribute, but didn't check if an index was created on the _id attribute of a sub-attribute, e.g. referredTo._id or data[*]._id. Such indexes could be created with previous versions of ArangoDB, but they were non-functional. From now on, such indexes cannot be created anymore, and any attempts to create them will fail.

    • ➕ Added option --replication.max-parallel-tailing-invocations to limit the maximum number of concurrent WAL tailing invocations.

    The option can be used to limit the usage of the WAL tailing APIs in order to control server load.

    • 🛠 Fixed agency bug with election lock step.

    • 🛠 Fixed some error reporting and logging in Maintenance.

    • 🛠 Fixed an error condition in which an ex-leader for a short still believed to be the leader and wrongly reported to Current.