Skip to content

Commit c523eac

Browse files
authored
DOC-608 | APM-660 | Release notes for memory accounting metrics and memory usage improvements (#346)
* Release notes for memory accounting metrics and memory usage improvements * Review
1 parent 8667083 commit c523eac

File tree

3 files changed

+71
-2
lines changed

3 files changed

+71
-2
lines changed

site/content/3.12/release-notes/version-3.12/api-changes-in-3-12.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,22 @@ ongoing dumps, ArangoSearch parallelism and used file descriptors:
160160
- `arangodb_search_execution_threads_demand`
161161
- `arangodb_search_file_descriptors`
162162

163+
The following new metrics for improved memory observability have been added:
164+
165+
- `arangodb_agency_node_memory_usage`
166+
- `arangodb_index_estimates_memory_usage`
167+
- `arangodb_internal_cluster_info_memory_usage`
168+
- `arangodb_requests_memory_usage`
169+
- `arangodb_revision_tree_buffered_memory_usage`
170+
- `arangodb_scheduler_queue_memory_usage`
171+
- `arangodb_scheduler_stack_memory_usage`
172+
- `arangodb_search_consolidations_memory_usage`
173+
- `arangodb_search_mapped_memory`
174+
- `arangodb_search_readers_memory_usage`
175+
- `arangodb_search_writers_memory_usage`
176+
- `arangodb_transactions_internal_memory_usage`
177+
- `arangodb_transactions_rest_memory_usage`
178+
163179
---
164180

165181
<small>Introduced in: v3.11.2</small>

site/content/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,27 @@ The second option is the recommended one, as it signals the intent more clearly,
7979
and makes the cache behave "as expected", i.e. use up to the configured
8080
memory limit and not just 56% of it.
8181

82-
#### Adjustable Stream Transaction size
82+
## Higher reported memory usage for AQL queries
83+
84+
Due to the [improved memory accounting in v3.12](whats-new-in-3-12.md#improved-memory-accounting),
85+
certain AQL queries may now get aborted because they exceed the defined
86+
memory limit but didn't get killed in previous versions. This is because of the
87+
more accurate memory tracking that reports a higher (actual) usage now. It allows
88+
ArangoDB to more reliably detect and kill queries that go over the per-query and
89+
global query memory limit, potentially preventing out-of-memory crashes of
90+
_arangod_ processes.
91+
92+
In particular, AQL queries that perform write operations now report a
93+
significantly higher `peakMemoryUsage` than before. This is also
94+
reflected in the `arangodb_aql_global_memory_usage` metric. Memory used for
95+
ArangoSearch `SEARCH` operations is now also accounted for in the metric.
96+
97+
You may need to adjust affected queries to use less memory or increase the
98+
per-query limit with the [`memoryLimit` query option](../../aql/how-to-invoke-aql/with-arangosh.md#memorylimit)
99+
or its default using the `--query.memory-limit` startup option. You can adjust
100+
the global limit with the `--query.global-memory-limit` startup option.
101+
102+
## Adjustable Stream Transaction size
83103

84104
[Stream Transactions](../../develop/transactions/stream-transactions.md) may
85105
now be limited to smaller transaction sizes because the maximum transaction size
@@ -119,7 +139,7 @@ server:
119139
- `x-http-method-override`
120140
- `x-method-override`
121141

122-
This functionaltiy posed a potential security risk and was thus removed.
142+
This functionality posed a potential security risk and was thus removed.
123143
Previously, it was only enabled when explicitly starting the
124144
server with the `--http.allow-method-override` startup option.
125145
The functionality has now been removed and setting the startup option does

site/content/3.12/release-notes/version-3.12/whats-new-in-3-12.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,39 @@ for details.
5454
## Analyzers
5555

5656

57+
## Improved memory accounting and usage
58+
59+
Version 3.12 features multiple improvements to observability of ArangoDB
60+
deployments. Memory usage is more accurately tracked and additional metrics have
61+
been added for monitoring the memory consumption.
62+
63+
AQL queries may now report a higher memory usage and thus run into memory limits
64+
sooner, see [Higher reported memory usage for AQL queries](incompatible-changes-in-3-12.md#higher-reported-memory-usage-for-aql-queries).
65+
66+
Furthermore, the memory usage of some subsystems has been optimized. When
67+
dropping a database, all contained collections are now marked as dropped
68+
immediately. Ongoing operations on these collections can be stopped earlier, and
69+
memory for the underlying collections and indexes can be reclaimed sooner.
70+
Memory used for index selectively estimates is now also released early.
71+
ArangoSearch has a smaller memory footprint for removal operations now.
72+
73+
The following new metrics have been added for memory observability:
74+
75+
| Label | Description |
76+
|:------|:------------|
77+
| `arangodb_agency_node_memory_usage` | Memory used by Agency store/cache. |
78+
| `arangodb_index_estimates_memory_usage` | Total memory usage of all index selectivity estimates. |
79+
| `arangodb_internal_cluster_info_memory_usage` | Amount of memory spent in ClusterInfo. |
80+
| `arangodb_requests_memory_usage` | Memory consumed by incoming, queued, and currently processed requests. |
81+
| `arangodb_revision_tree_buffered_memory_usage` | Total memory usage of buffered updates for all revision trees. |
82+
| `arangodb_scheduler_queue_memory_usage` | Number of bytes allocated for tasks in the scheduler queue. |
83+
| `arangodb_scheduler_stack_memory_usage` | Approximate stack memory usage of worker threads. |
84+
| `arangodb_search_consolidations_memory_usage` | Amount of memory in bytes that is used for consolidating an ArangoSearch index. |
85+
| `arangodb_search_mapped_memory` | Amount of memory in bytes that is mapped for an ArangoSearch index. |
86+
| `arangodb_search_readers_memory_usage` | Amount of memory in bytes that is used for reading from an ArangoSearch index. |
87+
| `arangodb_search_writers_memory_usage` | Amount of memory in bytes that is used for writing to an ArangoSearch index. |
88+
| `arangodb_transactions_internal_memory_usage` | Total memory usage of internal transactions. |
89+
| `arangodb_transactions_rest_memory_usage` | Total memory usage of user transactions (excluding top-level AQL queries). |
5790

5891
## Web interface
5992

0 commit comments

Comments
 (0)