ArangoDB v3.3.13 Release Notes

Release Date: 2018-07-26 // almost 6 years ago
    • 🛠 fixed internal issue #2567: the Web UI was showing the possibility to move a shard from a follower to the current leader

    • 🛠 fixed issue #5977: Unexpected execution plan when subquery contains COLLECT

    • 🛠 Bugfix: The AQL syntax variants UPDATE/REPLACE k WITH d now correctly take _rev from k instead of d (when ignoreRevs is false) and ignore d._rev.

    • put an upper bound on the number of documents to be scanned when using db.<collection>.any() in the RocksDB storage engine

    previous versions of ArangoDB did a scan of a random amount of documents in the collection, up to the total number of documents available. this produced a random selection with a good quality, but needed to scan half the number of documents in the collection on average.

    The new version will only scan up to 500 documents, so it produces a less random result, but will be a lot faster especially for large collections.

    The implementation of any() for the MMFiles engine remains unchanged. The MMFiles engine will pick a random document from the entire range of the in-memory primary index without performing scans.

    • 👻 return an empty result set instead of an "out of memory" exception when querying the geo index with invalid (out of range) coordinates

    • ➕ added load balancer support and user-restriction to cursor API.

    If a cursor is accessed on a different coordinator than where it was created, the requests will be forwarded to the correct coordinator. If a cursor is accessed by a different user than the one who created it, the request will be denied.

    • keep failed follower in followers list in Plan.

    This increases the changes of a failed follower getting back into sync if the follower comes back after a short time. In this case the follower can try to get in sync again, which normally takes less time than seeding a completely new follower.

    • 🛠 fix assertion failure and undefined behavior in Unix domain socket connections, introduced by 3.3.12

    • ➕ added configuration option --rocksdb.sync-interval

    This option specifies interval (in milliseconds) that ArangoDB will use to automatically synchronize data in RocksDB's write-ahead log (WAL) files to disk. Automatic syncs will only be performed for not-yet synchronized data, and only for operations that have been executed without the waitForSync attribute.

    Automatic synchronization is performed by a background thread. The default sync interval is 0, meaning the automatic background syncing is turned off. Background syncing in 3.3 is opt-in, whereas in ArangoDB 3.4 the default sync interval will be 100 milliseconds.

    Note: this option is not supported on Windows platforms. Setting the sync interval to a value greater 0 will produce a startup warning.

    • 🛠 fixed graph creation sometimes failing with 'edge collection already used in edge def' when the edge definition contained multiple vertex collections, despite the edge definitions being identical

    • 🔧 inception could get caught in a trap, where agent configuration version and timeout multiplier lead to incapacitated agency

    • 🛠 fixed issue #5827: Batch request handling incompatible with .NET's default ContentType format

    • 🛠 fixed agency's log compaction for internal issue #2249

    • inspector collects additionally disk data size and storage engine statistics