Skip to content

RocksDB upgrade to 9.5.0 release notes #710

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -897,6 +897,25 @@ the following steps.
4. Restore the dump to the new deployment. You can directly move from any
3.11 or 3.12 version to 3.12.4 (or later) this way.

## RocksDB upgrade

<small>Introduced in: v3.12.6</small>

The RocksDB library has been upgraded from version 7.2.0 to 9.5.0.

As part of this storage engine upgrade, the default values of the following
RocksDB-related startup options have been changed:

- `--rocksdb.compaction-read-ahead-size` has been changed from 2MB to 8MB.
- `--rocksdb.max-subcompactions` has been changed from 2 to 4.
- `--rocksdb.max-total-wal-size` has been changed from 80MB to 256MB.
- `--rocksdb.throttle-slots` has been changed from 120 to 128.
- `--rocksdb.throttle-scaling-factor` has been changed from 17 to 192.
- `--rocksdb.pending-compactions-slowdown-trigger` has been changed from 128KB to 1GB.
- `--rocksdb.pending-compactions-stop-trigger` has been changed from 16GB to 32GB.
- `--rocksdb.partition-files-for-documents` has been changed from false to true.
- `--rocksdb.throttle-slow-down-writes-trigger` has been obsoleted.

## HTTP RESTful API

### JavaScript-based traversal using `/_api/traversal` removed
Expand Down
34 changes: 34 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 @@ -2085,6 +2085,40 @@ DB-Servers in a cluster has been added:
|:------|:------------|
| `arangodb_vocbase_transactions_lost_subordinates_total` | Counts the number of lost subordinate transactions on database servers. |

### RocksDB upgrade

<small>Introduced in: v3.12.6</small>

The RocksDB library has been upgraded from version 7.2.0 to 9.5.0.

As a result, you may see performance improvements while using slightly less
resources especially for mixed workloads.
Comment on lines +2094 to +2095
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm hesitant about adding specific numbers here (30-40% according to Kaveh)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not since it is hard to predict these numbers from one workload to another


The following new RocksDB functionality is exposed in ArangoDB:

- Different types of block caches, LRU and HyperClockCache (HCC), selectable via
the new `--rocksdb.block-cache-type` startup option
- A `--rocksdb.block-cache-estimated-entry-charge` startup option to configure the HCC.
- RocksDB table format version 6 (not downwards-compatible to older versions of RocksDB).
- RocksDB blob caching (if blobs are enabled for the documents column family),
which you can enable via `--rocksdb.enable-blob-cache`.
- Using blob files only from a certain level onwards (if blobs are enabled for
the documents column family), which you can enable via
`--rocksdb.blob-file-starting-level`.
- Blob cache prepopulation, which you can enable via `--rocksdb.prepopulate-blob-cache`.
- An option to generate Bloom/Ribbon filters that minimize memory internal
fragmentation, which you can enable with `--rocksdb.optimize-filters-for-memory`.

The following RocksDB metrics have been added:

| Label | Description |
|:------|:------------|
| `rocksdb_block_cache_charge_per_entry` | Average size of entries in RocksDB block cache.
| `rocksdb_block_cache_entries` | Number of entries in the RocksDB block cache.
| `rocksdb_live_blob_file_garbage_size` | Size of garbage in live RocksDB .blob files.
| `rocksdb_live_blob_file_size` | Size of live RocksDB .blob files.
| `rocksdb_num_blob_files` | Number of live RocksDB .blob files.

## Client tools

### Protocol aliases for endpoints
Expand Down