Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,31 @@ less overhead.

See [Document and object functions in AQL](../../aql/functions/document-object.md#parse_collection).

### Parallel execution within an AQL query

The new `async-prefetch` optimizer rule allows certain operations of a query to
asynchronously prefetch the next batch of data while processing the current batch,
allowing parts of the query to run in parallel. This can lead to performance
improvements if there is still reserve (scheduler) capacity.

The new `Par` column in a query explain output shows which nodes of a query are
eligible for asynchronous prefetching. Write queries, graph execution nodes,
nodes inside subqueries, and query parts involving remote execution are not
eligible.

```aql
Execution plan:
Id NodeType Par Est. Comment
1 SingletonNode 1 * ROOT
2 EnumerateCollectionNode ✓ 18 - FOR doc IN places /* full collection scan */ FILTER (doc.`label` IN [ "Glasgow", "Aberdeen" ]) /* early pruning */
5 CalculationNode ✓ 18 - LET #2 = doc.`label` /* attribute expression */ /* collections used: doc : places */
6 SortNode ✓ 18 - SORT #2 ASC /* sorting strategy: standard */
7 ReturnNode 18 - RETURN doc
```

The profiling output for queries includes a new `Par` column as well, but it
shows the number of successful parallel asynchronous prefetch calls.

## Indexing

### Stored values can contain the `_id` attribute
Expand Down