Skip to content

Commit 6ceaf13

Browse files
committed
Add cluster setting example, Public Preview note
1 parent 1f09bab commit 6ceaf13

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/current/v25.3/architecture/storage-layer.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,19 @@ A certain amount of read amplification is expected in a normally functioning Coc
102102

103103
{% include_cached new-in.html version="v25.3" %}
104104

105+
{% include feature-phases/preview.md %}
106+
105107
The storage engine implements a performance optimization called _value separation_. When the engine encounters a key-value pair with a sufficiently large value component, it stores the key in the [LSM](#log-structured-merge-trees) alongside a pointer to the value's location in a _blob file_ which is located outside the LSM. This indirection allows [compactions](#compaction) of the LSM to skip rewriting large values over and over; instead, compactions can copy a pointer to the large value's location.
106108

107109
Value separation is especially beneficial for workloads with large values relative to key size (for example, [Raft log]({% link {{ page.version.version }}/architecture/replication-layer.md %}#raft) entries). It reduces [write amplification](#write-amplification) by about 50%, at the cost of about 20% in [space amplification]({% link {{ page.version.version }}/operational-faqs.md %}#space-amplification). What this means in practice is that the storage engine uses far less [IOPS]({% link {{ page.version.version }}/common-issues-to-monitor.md %}#disk-iops) and storage bandwidth overall, which are expensive, at the cost of an increase in storage capacity, which is much cheaper.
108110

111+
To enable this feature, set the following [cluster setting]({% link {{ page.version.version }}/set-cluster-setting.md %}):
112+
113+
{% include_cached copy-clipboard.html %}
114+
~~~ sql
115+
SET CLUSTER SETTING storage.value_separation.enabled = true;
116+
~~~
117+
109118
To monitor this feature, see [the documentation for the metrics in the `storage.value_separation.*` namespace]({% link {{ page.version.version }}/essential-metrics-self-hosted.md %}#storage-value-separation).
110119

111120
##### Compaction

0 commit comments

Comments
 (0)