blob: a8ed2c75a2d99061e2002d387a6a72ee1dc95576 [file] [log] [blame]
<table class="configuration table table-bordered">
<thead>
<tr>
<th class="text-left" style="width: 20%">Key</th>
<th class="text-left" style="width: 15%">Default</th>
<th class="text-left" style="width: 10%">Type</th>
<th class="text-left" style="width: 55%">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><h5>state.backend.rocksdb.memory.fixed-per-slot</h5></td>
<td style="word-wrap: break-word;">(none)</td>
<td>MemorySize</td>
<td>The fixed total amount of memory, shared among all RocksDB instances per slot. This option overrides the 'state.backend.rocksdb.memory.managed' option when configured. If neither this option, nor the 'state.backend.rocksdb.memory.managed' optionare set, then each RocksDB column family state has its own memory caches (as controlled by the column family options).</td>
</tr>
<tr>
<td><h5>state.backend.rocksdb.memory.high-prio-pool-ratio</h5></td>
<td style="word-wrap: break-word;">0.1</td>
<td>Double</td>
<td>The fraction of cache memory that is reserved for high-priority data like index, filter, and compression dictionary blocks. This option only has an effect when 'state.backend.rocksdb.memory.managed' or 'state.backend.rocksdb.memory.fixed-per-slot' are configured.</td>
</tr>
<tr>
<td><h5>state.backend.rocksdb.memory.managed</h5></td>
<td style="word-wrap: break-word;">true</td>
<td>Boolean</td>
<td>If set, the RocksDB state backend will automatically configure itself to use the managed memory budget of the task slot, and divide the memory over write buffers, indexes, block caches, etc. That way, the three major uses of memory of RocksDB will be capped.</td>
</tr>
<tr>
<td><h5>state.backend.rocksdb.memory.partitioned-index-filters</h5></td>
<td style="word-wrap: break-word;">false</td>
<td>Boolean</td>
<td>With partitioning, the index/filter block of an SST file is partitioned into smaller blocks with an additional top-level index on them. When reading an index/filter, only top-level index is loaded into memory. The partitioned index/filter then uses the top-level index to load on demand into the block cache the partitions that are required to perform the index/filter query. This option only has an effect when 'state.backend.rocksdb.memory.managed' or 'state.backend.rocksdb.memory.fixed-per-slot' are configured.</td>
</tr>
<tr>
<td><h5>state.backend.rocksdb.memory.write-buffer-ratio</h5></td>
<td style="word-wrap: break-word;">0.5</td>
<td>Double</td>
<td>The maximum amount of memory that write buffers may take, as a fraction of the total shared memory. This option only has an effect when 'state.backend.rocksdb.memory.managed' or 'state.backend.rocksdb.memory.fixed-per-slot' are configured.</td>
</tr>
<tr>
<td><h5>state.backend.rocksdb.timer-service.factory</h5></td>
<td style="word-wrap: break-word;">ROCKSDB</td>
<td><p>Enum</p>Possible values: [HEAP, ROCKSDB]</td>
<td>This determines the factory for timer service state implementation. Options are either HEAP (heap-based) or ROCKSDB for an implementation based on RocksDB.</td>
</tr>
</tbody>
</table>