Deprecated
Features listed in this section should no longer be used, because they are considered obsolete and may get removed in a future release. They are currently kept for backward compatibility. There are usually better alternatives to replace the old features with:
-
MMFiles Storage Engine: The MMFiles storage engine was deprecated in version 3.6.0 and removed in 3.7.0. To change your MMFiles storage engine deployment to RocksDB, see: Switch storage engine
MMFiles specific startup options still exist but will also be removed. This will affect the following options:
--compaction.*--database.force-sync-properties--database.index-threads--database.maximal-journal-size--database.throw-collection-not-loaded-error--ttl.only-loaded-collection--wal.*
The collection attributes
doCompact,indexBuckets,isVolatile,journalSizeandpathare only used with MMFiles and are thus also deprecated. They are completely ignored when specified in requests. -
Export API: The export REST API is deprecated and will be removed in a future version. Instead of using this API, please use an AQL query with a streaming cursor to dump the contents of a collection.
-
Batch Requests API: The batch request REST API is deprecated and will be removed in a future version. Instead of using this API, please use the HTTP Interface for Documents that can insert, update, replace or remove arrays of documents.
-
Simple Queries: Idiomatic interface in arangosh to perform trivial queries. They are superseded by AQL queries, which can also be run in arangosh. AQL is a language on its own and way more powerful than Simple Queries could ever be. In fact, the (still supported) Simple Queries are translated internally to AQL, then the AQL query is optimized and run against the database in recent versions, because of better performance and reduced maintenance complexity.
-
Accessing collections by ID instead of by name: Accessing collections by their internal ID instead of accessing them by name is deprecated and highly discouraged. This functionality may be removed in future versions of ArangoDB.
-
Old metrics API: The old metrics API under
/_admin/metricsis deprecated and replaced by a new one under/_admin/metrics/v2from version 3.8.0 on. This step was necessary because the old API did not follow quite a few Prometheus guidelines for metrics. -
Statistics API: The endpoints
/_admin/statisticsand/_admin/statistics-descriptionare deprecated in favor of the new metrics API under/_admin/metrics/v2. The metrics API provides a lot more information than the statistics API, so it is much more useful. -
Older cluster REST API endpoints: The following endpoints are simply redirects since ArangoDB 3.7 and are thus deprecated from ArangoDB 3.8 onwards:
/_admin/clusterNodeVersion: redirects to/_admin/cluster/nodeVersion/_admin/clusterNodeEngine: redirects to/_admin/cluster/nodeEngine/_admin/clusterNodeStats: redirects to/_admin/cluster/nodeStatistics/_admin/clusterStatistics: redirects to/_admin/cluster/statistics
The redirecting endpoints will be removed in a future version of ArangoDB. Their usage in client applications can be replaced by the endpoints they redirect to.
-
Loading and unloading of collections: The JavaScript functions for explicitly loading and unloading collections,
db.<collection-name>.load()anddb.<collection-name>.unload()and their REST API endpointsPUT /_api/collection/<collection-name>/loadandPUT /_api/collection/<collection-name>/unloadare deprecated in 3.8. There should be no need to explicitly load or unload a collection with the RocksDB storage engine. The load/unload functionality was useful only with the MMFiles storage engine, which is not available anymore since 3.7. -
Actions: Snippets of JavaScript code on the server-side for minimal custom endpoints. Since the Foxx revamp in 3.0, it became really easy to write Foxx Microservices, which allow you to define custom endpoints even with complex business logic.
From v3.5.0 on, the system collections
_routingand_modulesare not created anymore when the_systemdatabase is first created (blank new data folder). They are not actively removed, they remain on upgrade or backup restoration from previous versions.You can still find the Actions documentation in 3.4 or older versions of the documentation.
- Outdated AQL functions: The following AQL functions are deprecated and
their usage is discouraged:
IS_IN_POLYGONNEARWITHINWITHIN_RECTANGLE
See Geo functions for substitutes.
-
bfsoption in AQL graph traversal: Using the bfs attribute inside traversal options is deprecated since v3.8.0. The preferred way to start a breadth-first traversal is by using the neworderattribute, and setting it to a value ofbfs. -
Overwrite option: The
overwriteoption for insert operations (either single document operations or AQLINSERToperations) is deprecated in favor of theoverwriteModeoption, which provides more flexibility. -
minReplicationFactorcollection option: TheminReplicationFactoroption for collections has been renamed towriteConcern. IfminReplicationFactoris specified and nowriteConcernis set, theminReplicationFactorvalue will still be picked up and used aswriteConcernvalue. However, this compatibility mode will be removed eventually, so changing applications from usingminReplicationFactortowriteConcernis advised. -
Outdated startup options
The following arangod startup options are deprecated and will be removed in a future version:
--database.old-system-collections(no need to use it anymore)--server.jwt-secret(use--server.jwt-secret-keyfile)--arangosearch.threads/--arangosearch.threads-limit(use the following options instead):--arangosearch.commit-threads--arangosearch.commit-threads-idle--arangosearch.consolidation-threads--arangosearch.consolidation-threads-idle
--rocksdb.exclusive-writes(was intended only as a stopgap measure to make porting applications from MMFiles to RocksDB easier)--http.allow-method-override: this option allows incoming HTTP POST request to override the actual HTTP method used by setting one of the special HTTP headersx-http-method,x-method-overrideorx-http-method-override. This was originally intended for very restricted callers, which only supported HTTP GET and HTTP POST, but seems very unnecessary nowadways.--http.hide-product-header: whether or not to hide theServer: ArangoDBheader in all responses served by arangod.
The following options are deprecated for arangorestore:
--default-number-of-shards(use--number-of-shardsinstead)--default-replication-factor(use--replication-factorinstead)
The following startup options are deprecated in arangod and all client tools:
--log(use--log.levelinstead)--log.use-local-time(use--log.time-formatinstead)--log.use-microtime(use--log.time-formatinstead)--log.performance(use--log.levelinstead)
-
Obsoleted startup options: Any startup options marked as obsolete can be removed in any future version of ArangoDB, so their usage is highly discouraged. Their functionality is already removed, but they still exist to prevent unknown startup option errors.
-
HTTP and JavaScript traversal APIs: The HTTP traversal API is deprecated since version 3.4.0. The JavaScript traversal module
@arangodb/graph/traversalis also deprecated since then. The preferred way to traverse graphs is via AQL. - JavaScript-based AQL graph functions: The following JavaScript-based AQL
graph functions are deprecated:
arangodb::GRAPH_EDGESarangodb::GRAPH_VERTICESarangodb::GRAPH_NEIGHBORSarangodb::GRAPH_COMMON_NEIGHBORSarangodb::GRAPH_COMMON_PROPERTIESarangodb::GRAPH_PATHSarangodb::GRAPH_SHORTEST_PATHarangodb::GRAPH_DISTANCE_TOarangodb::GRAPH_ABSOLUTE_ECCENTRICITYarangodb::GRAPH_ECCENTRICITYarangodb::GRAPH_ABSOLUTE_CLOSENESSarangodb::GRAPH_CLOSENESSarangodb::GRAPH_ABSOLUTE_BETWEENNESSarangodb::GRAPH_BETWEENNESSarangodb::GRAPH_RADIUSarangodb::GRAPH_DIAMETER