From 4d1cf299d6433440ba276a0a40ba4367b3498cbf Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Wed, 15 Oct 2025 12:44:28 +0200 Subject: [PATCH 1/3] Release notes for improved memory accounting: MERGE(), RETURN DISTINCT, and certain COLLECT operations --- .../version-3.12/incompatible-changes-in-3-12.md | 9 +++++++++ .../version-3.12/whats-new-in-3-12.md | 14 ++++++++++++++ .../version-3.12/incompatible-changes-in-3-12.md | 9 +++++++++ .../version-3.12/whats-new-in-3-12.md | 14 ++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/site/content/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md b/site/content/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md index 696a7d8fc2..90b75096f9 100644 --- a/site/content/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md +++ b/site/content/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md @@ -320,6 +320,15 @@ per-query limit with the [`memoryLimit` query option](../../aql/how-to-invoke-aq or its default using the `--query.memory-limit` startup option. You can adjust the global limit with the `--query.global-memory-limit` startup option. +--- + +Introduced in: v3.12.6 + +The memory accounting for AQL queries has been extended to track the memory usage +of the `MERGE()` function, `RETURN DISTINCT`, and certain uses of the `COLLECT` +operation. More queries compared to previous 3.12 versions may get killed due to +exceeding the memory limit as a result of the improved tracking. + ## Adjustable Stream Transaction size [Stream Transactions](../../develop/transactions/stream-transactions.md) may diff --git a/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md index 9dc4aee978..51f09774f4 100644 --- a/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md @@ -180,6 +180,20 @@ The following new metrics have been added for memory observability: | `arangodb_transactions_internal_memory_usage` | Total memory usage of internal transactions. | | `arangodb_transactions_rest_memory_usage` | Total memory usage of user transactions (excluding top-level AQL queries). | +--- + +Introduced in: v3.12.6 + +The memory accounting for AQL queries has been extended to track the memory usage +of the following: + +- Grouping with the `COLLECT` operation if the `sorted` method is used. +- Aggregating with `COLLECT ... AGGREGATE`. +- Deduplicating results with `RETURN DISTINCT`. +- Using the `MERGE()` function to combine objects. + +It is expected that the reported memory consumption is now higher. + ## Web interface ### Shard rebalancing diff --git a/site/content/3.13/release-notes/version-3.12/incompatible-changes-in-3-12.md b/site/content/3.13/release-notes/version-3.12/incompatible-changes-in-3-12.md index 696a7d8fc2..90b75096f9 100644 --- a/site/content/3.13/release-notes/version-3.12/incompatible-changes-in-3-12.md +++ b/site/content/3.13/release-notes/version-3.12/incompatible-changes-in-3-12.md @@ -320,6 +320,15 @@ per-query limit with the [`memoryLimit` query option](../../aql/how-to-invoke-aq or its default using the `--query.memory-limit` startup option. You can adjust the global limit with the `--query.global-memory-limit` startup option. +--- + +Introduced in: v3.12.6 + +The memory accounting for AQL queries has been extended to track the memory usage +of the `MERGE()` function, `RETURN DISTINCT`, and certain uses of the `COLLECT` +operation. More queries compared to previous 3.12 versions may get killed due to +exceeding the memory limit as a result of the improved tracking. + ## Adjustable Stream Transaction size [Stream Transactions](../../develop/transactions/stream-transactions.md) may diff --git a/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md index 9dc4aee978..51f09774f4 100644 --- a/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md @@ -180,6 +180,20 @@ The following new metrics have been added for memory observability: | `arangodb_transactions_internal_memory_usage` | Total memory usage of internal transactions. | | `arangodb_transactions_rest_memory_usage` | Total memory usage of user transactions (excluding top-level AQL queries). | +--- + +Introduced in: v3.12.6 + +The memory accounting for AQL queries has been extended to track the memory usage +of the following: + +- Grouping with the `COLLECT` operation if the `sorted` method is used. +- Aggregating with `COLLECT ... AGGREGATE`. +- Deduplicating results with `RETURN DISTINCT`. +- Using the `MERGE()` function to combine objects. + +It is expected that the reported memory consumption is now higher. + ## Web interface ### Shard rebalancing From 8e6fd1664a8480dc8aa5b4e02201b8b4c1335490 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Wed, 15 Oct 2025 17:07:35 +0200 Subject: [PATCH 2/3] Mention already merged tracking features of internal buffers --- .../3.12/release-notes/version-3.12/whats-new-in-3-12.md | 4 ++++ .../3.13/release-notes/version-3.12/whats-new-in-3-12.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md index 51f09774f4..35281497fb 100644 --- a/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md @@ -191,6 +191,10 @@ of the following: - Aggregating with `COLLECT ... AGGREGATE`. - Deduplicating results with `RETURN DISTINCT`. - Using the `MERGE()` function to combine objects. +- Internal buffers for late materialization, building results, and distributing + AQL queries in cluster deployments. +- Internal buffers for decay, distance, and replace functions. +- Internal buffers used by the query parser and optimizer. It is expected that the reported memory consumption is now higher. diff --git a/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md index 51f09774f4..35281497fb 100644 --- a/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md @@ -191,6 +191,10 @@ of the following: - Aggregating with `COLLECT ... AGGREGATE`. - Deduplicating results with `RETURN DISTINCT`. - Using the `MERGE()` function to combine objects. +- Internal buffers for late materialization, building results, and distributing + AQL queries in cluster deployments. +- Internal buffers for decay, distance, and replace functions. +- Internal buffers used by the query parser and optimizer. It is expected that the reported memory consumption is now higher. From b9ef703f4eb2e8154e99180970b28c2cc6dc0de9 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Fri, 17 Oct 2025 13:24:19 +0200 Subject: [PATCH 3/3] Mention execution block tracking --- .../3.12/release-notes/version-3.12/whats-new-in-3-12.md | 4 ++-- .../3.13/release-notes/version-3.12/whats-new-in-3-12.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md index 35281497fb..da13d655d6 100644 --- a/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md @@ -191,8 +191,8 @@ of the following: - Aggregating with `COLLECT ... AGGREGATE`. - Deduplicating results with `RETURN DISTINCT`. - Using the `MERGE()` function to combine objects. -- Internal buffers for late materialization, building results, and distributing - AQL queries in cluster deployments. +- Internal buffers for execution blocks, late materialization, building results, + and distributing AQL queries in cluster deployments. - Internal buffers for decay, distance, and replace functions. - Internal buffers used by the query parser and optimizer. diff --git a/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md index 35281497fb..da13d655d6 100644 --- a/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/3.13/release-notes/version-3.12/whats-new-in-3-12.md @@ -191,8 +191,8 @@ of the following: - Aggregating with `COLLECT ... AGGREGATE`. - Deduplicating results with `RETURN DISTINCT`. - Using the `MERGE()` function to combine objects. -- Internal buffers for late materialization, building results, and distributing - AQL queries in cluster deployments. +- Internal buffers for execution blocks, late materialization, building results, + and distributing AQL queries in cluster deployments. - Internal buffers for decay, distance, and replace functions. - Internal buffers used by the query parser and optimizer.