Skip to content
This repository was archived by the owner on Dec 13, 2023. It is now read-only.

Commit 123de43

Browse files
authored
Add fillBlockCache option to bypass RocksDB block cache #14234 (#703)
1 parent 81be533 commit 123de43

File tree

4 files changed

+38
-5
lines changed

4 files changed

+38
-5
lines changed

3.8/aql/invocation-with-arangosh.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,17 @@ There are further options that can be passed in the *options* attribute of the *
168168
the query result cache is disabled, and that they will be automatically inserted into
169169
the query result cache when it is active in non-demand mode.
170170

171+
- *fillBlockCache*: if set to *true* or not specified, this will make the query store
172+
the data it reads via the RocksDB storage engine in the RocksDB block cache. This is
173+
usually the desired behavior. The option can be set to *false* for queries that are
174+
known to either read a lot of data that would thrash the block cache, or for queries
175+
that read data known to be outside of the hot set. By setting the option
176+
to *false*, data read by the query will not make it into the RocksDB block cache if
177+
it is not already in there, thus leaving more room for the actual hot set.
178+
171179
- *profile*: if set to *true* or *1*, returns extra timing information for the query. The timing
172-
information is accessible via the *getExtra* method of the query result. Set to *2* the query will include execution stats per query plan node in sub-attribute *stats.nodes* of the *extra* return attribute.
180+
information is accessible via the *getExtra* method of the query result. Set to *2* the query will
181+
include execution stats per query plan node in sub-attribute *stats.nodes* of the *extra* return attribute.
173182
Additionally the query plan is returned in the sub-attribute *extra.plan*.
174183

175184
- *maxWarningCount*: limits the number of warnings that are returned by the query if

3.8/release-notes-api-changes38.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,16 @@ as a database only. It may have an effect for Foxx applications that use HTTP
297297
only be picked up for indexes of type "persistent", "hash" and "skiplist" (where the
298298
latter two are aliases for "persistent" nowadays).
299299

300-
The REST endpoint at GET `/_api/collection/<collection>/checksum` now also works
301-
in cluster setups. In previous versions, this endpoint was not supported in cluster
302-
setups and returned HTTP 501 (Not implemented).
300+
- The REST endpoint at GET `/_api/collection/<collection>/checksum` now also works
301+
in cluster setups. In previous versions, this endpoint was not supported in cluster
302+
setups and returned HTTP 501 (Not implemented).
303+
304+
- The HTTP REST API endpoint `POST /_api/cursor` can now handle an
305+
additional sub-attribute `fillBlockCache` for its `options` attribute.
306+
`fillBlockCache` controls whether the to-be-executed query should
307+
populate the RocksDB block cache with the data read by the query.
308+
This is an optional attribute, and its default value is `true`, meaning
309+
that the block cache will be populated (introduced in v3.8.1).
303310

304311
### Endpoints deprecated
305312

3.9/aql/invocation-with-arangosh.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,17 @@ There are further options that can be passed in the *options* attribute of the *
168168
the query result cache is disabled, and that they will be automatically inserted into
169169
the query result cache when it is active in non-demand mode.
170170

171+
- *fillBlockCache*: if set to *true* or not specified, this will make the query store
172+
the data it reads via the RocksDB storage engine in the RocksDB block cache. This is
173+
usually the desired behavior. The option can be set to *false* for queries that are
174+
known to either read a lot of data that would thrash the block cache, or for queries
175+
that read data known to be outside of the hot set. By setting the option
176+
to *false*, data read by the query will not make it into the RocksDB block cache if
177+
it is not already in there, thus leaving more room for the actual hot set.
178+
171179
- *profile*: if set to *true* or *1*, returns extra timing information for the query. The timing
172-
information is accessible via the *getExtra* method of the query result. Set to *2* the query will include execution stats per query plan node in sub-attribute *stats.nodes* of the *extra* return attribute.
180+
information is accessible via the *getExtra* method of the query result. Set to *2* the query will
181+
include execution stats per query plan node in sub-attribute *stats.nodes* of the *extra* return attribute.
173182
Additionally the query plan is returned in the sub-attribute *extra.plan*.
174183

175184
- *maxWarningCount*: limits the number of warnings that are returned by the query if

3.9/release-notes-api-changes39.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ integrations for ArangoDB 3.9.
1919

2020
### Endpoints augmented
2121

22+
The HTTP REST API endpoint `POST /_api/cursor` can now handle an
23+
additional sub-attribute `fillBlockCache` for its `options` attribute.
24+
`fillBlockCache` controls whether the to-be-executed query should
25+
populate the RocksDB block cache with the data read by the query.
26+
This is an optional attribute, and its default value is `true`, meaning
27+
that the block cache will be populated. This functionality was also backported
28+
to v3.8.1.
29+
2230
### Endpoints moved
2331

2432
### Endpoints removed

0 commit comments

Comments
 (0)