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 30284d66ee..302982f099 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 @@ -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 + +Introduced in: v3.12.6 + +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 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 39ffd8435e..ec2668d2f9 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 @@ -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 + +Introduced in: v3.12.6 + +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. + +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