This is an automated email from the ASF dual-hosted git repository.
dlmarion pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git
The following commit(s) were added to refs/heads/main by this push:
new ca6a69a47 Updated Accumulo 4.x Configuration docs (#491)
ca6a69a47 is described below
commit ca6a69a471d5c7404da03eef7f9bf7909a3a7900
Author: Dave Marion <[email protected]>
AuthorDate: Tue Sep 22 07:35:36 2026 -0400
Updated Accumulo 4.x Configuration docs (#491)
Co-authored-by: Daniel Roberts <[email protected]>
---
_docs-4/configuration/overview.md | 36 +++++++++++++++++++++++---
_docs-4/configuration/server-properties.md | 18 ++++++++++++-
_docs-4/getting-started/table_configuration.md | 5 ++++
3 files changed, 55 insertions(+), 4 deletions(-)
diff --git a/_docs-4/configuration/overview.md
b/_docs-4/configuration/overview.md
index 036ace1be..9158a1854 100644
--- a/_docs-4/configuration/overview.md
+++ b/_docs-4/configuration/overview.md
@@ -19,10 +19,12 @@ set in the following configuration locations (with
increasing precedence):
1. [Default](#default) - All properties have a default value
2. [Site](#site) - Properties set in [accumulo.properties]
3. [System](#system) - Properties set using shell or Java API that apply to
entire Accumulo instance
-4. [Namespace](#namespace) - Table properties set using shell or Java API that
apply to a table namespace
-5. [Table](#table) - Table properties set using shell or Java API that apply
to a table.
+4. [Resource Group](#resourcegroup) - Property set using the shell or Java API
that apply to processes in a Resource Group
+5. [Namespace](#namespace) - Table properties set using shell or Java API that
apply to a table namespace
+6. [Table](#table) - Table properties set using shell or Java API that apply
to a table.
-If a property is set in multiple locations, the value in the location with the
highest precedence is used.
+If a property is set in multiple locations, the value in the location with the
highest precedence is used. Note that starting
+with 4.0.0 table properties can only be specified in Namespace and Table
configuration locations.
These configuration locations are described in detail below:
@@ -72,6 +74,34 @@ client.instanceOperations().modifyProperties(properties -> {
});
```
+### ResourceGroup
+
+Resource Group configuration refers to [server properties] set for the
processes running in a Resource Group. These settings are stored in ZooKeeper
and can be identified
+by **zk mutable: yes** in their description on the [server properties] page.
Resource Group configuration will override any System configuration set in
ZooKeeper and
+any site configuration set in [accumulo.properties]. While most system
configuration settings take effect immediately, some require a restart of the
process which is
+indicated in the **zk mutable** section of their description. Resource Group
configuration can be set using the following shell command:
+
+```console
+config -rg GROUP_NAME -s PROPERTY=VALUE
+```
+
+They can also be set using {% jlink
org.apache.accumulo.core.client.admin.ResourceGroupOperations %} in the Java
API:
+
+```java
+client.resourceGroupOperations().setProperty("general.low.mem.protection.scan",
"true");
+```
+
+The java api also supports adding, modifying and removing multiple properties
in a single operation:
+
+```java
+client.resourceGroupOperations().modifyProperties(properties -> {
+ properties.remove("general.block.cache.manager.class");
+ properties.put("general.low.mem.protection.scan", "true");
+ properties.put("general.server.iter.opts.compression", "zstd");
+ properties.put("tserver.summary.retrieval.threads", "128");
+});
+```
+
### Namespace
Namespace configuration refers to [table.* properties] set for a certain table
namespace (i.e. group of tables). These settings are stored in ZooKeeper.
Namespace configuration
diff --git a/_docs-4/configuration/server-properties.md
b/_docs-4/configuration/server-properties.md
index a6ef3533a..ede3f3208 100644
--- a/_docs-4/configuration/server-properties.md
+++ b/_docs-4/configuration/server-properties.md
@@ -13,6 +13,7 @@ Below are properties set in `accumulo.properties` or the
Accumulo shell that con
| <a name="compaction_prefix" class="prop"></a> **compaction.*** | **Available
since:** 4.0.0<br>Both major and minor compaction properties can be included
under this prefix. |
| <a name="compaction_coordinator_prefix" class="prop"></a>
**compaction.coordinator.*** | **Available since:** 2.1.0<br>Properties in this
category affect the behavior of the accumulo compaction coordinator server. |
| <a name="compaction_coordinator_compactor_dead_check_interval"
class="prop"></a> compaction.coordinator.compactor.dead.check.interval |
**Available since:** 2.1.0<br>The interval at which to check for dead
compactors.<br>**type:** TIMEDURATION, **zk mutable:** yes but requires restart
of the compaction, **default value:** `5m` |
+| <a name="compaction_coordinator_compactor_wakeup_threads" class="prop"></a>
compaction.coordinator.compactor.wakeup.threads | **Available since:**
2.1.7<br>The number of threads the Coordinator should use to wake Compactors
that are in a wait state. A value of zero disables Compactor wake up. Enabling
this feature will cause Compactors in a long wait state (see
COMPACTOR_MAX_JOB_WAIT_TIME) to check in with the Coordinator for
work.<br>**type:** COUNT, **zk mutable:** yes, **default val [...]
| <a name="compaction_coordinator_reservation_threads_meta" class="prop"></a>
compaction.coordinator.reservation.threads.meta | **Available since:**
4.0.0<br>The number of threads used to reserve files for compaction in a tablet
for accumulo.metadata tablets.<br>**type:** COUNT, **zk mutable:** yes,
**default value:** `1` |
| <a name="compaction_coordinator_reservation_threads_root" class="prop"></a>
compaction.coordinator.reservation.threads.root | **Available since:**
4.0.0<br>The number of threads used to reserve files for compaction in a tablet
for the root tablet.<br>**type:** COUNT, **zk mutable:** yes, **default
value:** `1` |
| <a name="compaction_coordinator_reservation_threads_user" class="prop"></a>
compaction.coordinator.reservation.threads.user | **Available since:**
4.0.0<br>The number of threads used to reserve files for compaction in a tablet
for user tables.<br>**type:** COUNT, **zk mutable:** yes, **default value:**
`64` |
@@ -70,6 +71,7 @@ Below are properties set in `accumulo.properties` or the
Accumulo shell that con
| <a name="general_micrometer_user_tags" class="prop"></a>
general.micrometer.user.tags | **Available since:** 4.0.0<br>A comma separated
list of tags to emit with all metrics from the process. Example:
"tag1=value1,tag2=value2".<br><br>**type:** STRING, **zk mutable:** no,
**default value:** empty |
| <a name="general_opentelemetry_enabled" class="prop"></a>
general.opentelemetry.enabled | **Available since:** 2.1.0<br>Enables
OpenTelemetry traces for new spans in the server process that are not already
part of an existing trace. Spans that are part of an existing trace, such as
one originating in client code and propagated to the server over an RPC
request, are always traced, regardless of this value. (Note: no tracing will
occur if OpenTelemetry is not first configured for the JVM [...]
| ~~<a name="general_process_bind_addr" class="prop"></a>
general.process.bind.addr~~ | **Available since:** 3.0.0<br>*Deprecated since:*
4.0.0<br>*Replaced by:* <a href="#rpc_bind_addr">rpc.bind.addr</a><br>~~The
local IP address to which this server should bind for sending and receiving
network traffic.~~<br>~~**type:** STRING~~, ~~**zk mutable:** no~~, ~~**default
value:** `0.0.0.0`~~ |
+| <a name="general_rpc_server_threaded_selector_threads" class="prop"></a>
general.rpc.server.threaded.selector.threads | **Available since:**
2.1.7<br>The number of selector threads to use for the TThreadedSelectorServer.
If the value ends with C, then it will be multiplied by the number of cores on
the system.<br>**type:** COUNT, **zk mutable:** no, **default value:** `2` |
| <a name="general_rpc_server_type" class="prop"></a> general.rpc.server.type
| **Experimental**<br>**Available since:** 1.7.0<br>Type of Thrift server to
instantiate, see org.apache.accumulo.server.rpc.ThriftServerType for more
information. Only useful for benchmarking thrift servers.<br>**type:** STRING,
**zk mutable:** no, **default value:** empty |
| <a name="general_rpc_timeout" class="prop"></a> general.rpc.timeout |
**Available since:** 1.3.5<br>Time to wait on I/O for simple, short RPC
calls.<br>**type:** TIMEDURATION, **zk mutable:** no, **default value:** `120s`
|
| <a name="general_security_credential_provider_paths" class="prop"></a>
general.security.credential.provider.paths | **Available since:**
1.6.1<br>Comma-separated list of paths to CredentialProviders.<br>**type:**
STRING, **zk mutable:** no, **default value:** empty |
@@ -240,7 +242,7 @@ Below are properties set in `accumulo.properties` or the
Accumulo shell that con
| <a name="table_sampler_opt_prefix" class="prop"></a> **table.sampler.opt.***
| **Available since:** 1.8.0<br>The property is used to set options for a
sampler. If a sample had two options like hasher and modulous, then the two
properties table.sampler.opt.hasher=${hash algorithm} and
table.sampler.opt.modulous=${mod} would be set. |
| <a name="table_scan_dispatcher" class="prop"></a> table.scan.dispatcher |
**Available since:** 2.0.0<br>This class is used to dynamically dispatch scans
to configured scan executors. Configured classes must implement {% jlink
org.apache.accumulo.core.spi.scan.ScanDispatcher %}. See [scan executors]({%
durl administration/scan-executors %}) for an overview of why and how to use
this property. This property is ignored for the root and metadata table. The
metadata table always dispatche [...]
| <a name="table_scan_dispatcher_opts_prefix" class="prop"></a>
**table.scan.dispatcher.opts.*** | **Available since:** 2.0.0<br>Options for
the table scan dispatcher. |
-| <a name="table_scan_max_memory" class="prop"></a> table.scan.max.memory |
**Available since:** 1.3.5<br>The maximum amount of memory that will be used to
cache results of a client query/scan. Once this limit is reached, the buffered
data is sent to the client.<br>**type:** BYTES, **zk mutable:** yes, **default
value:** `512k` |
+| <a name="table_scan_max_memory" class="prop"></a> table.scan.max.memory |
**Available since:** 1.3.5<br>The maximum amount of memory that will be used to
cache results of a client query/scan. Once this limit is reached, the buffered
data is sent to the client. This is an estimate of heap usage and includes per
entry object overhead, so it will always exceed the size of the key value data
actually sent to the client.<br>**type:** BYTES, **zk mutable:** yes, **default
value:** `512k` |
| <a name="table_security_scan_visibility_default" class="prop"></a>
table.security.scan.visibility.default | **Available since:** 1.3.5<br>The
security label that will be assumed at scan time if an entry does not have a
visibility expression.<br>Note: An empty security label is displayed as []. The
scan results will show an empty visibility even if the visibility from this
setting is applied to the entry.<br>CAUTION: If a particular key has an empty
security label AND its table's defaul [...]
| <a name="table_shuffle_sources" class="prop"></a> table.shuffle.sources |
**Available since:** 2.1.5<br>Shuffle the opening order for Rfiles to reduce
thread contention on file open operations.<br>**type:** BOOLEAN, **zk
mutable:** yes, **default value:** `false` |
| <a name="table_split_endrow_size_max" class="prop"></a>
table.split.endrow.size.max | **Available since:** 1.7.0<br>Maximum size of end
row.<br>**type:** BYTES, **zk mutable:** yes, **default value:** `10k` |
@@ -331,3 +333,17 @@ Below are properties set in `accumulo.properties` or the
Accumulo shell that con
| fate meta config | A string that:<br>1. Represents a valid, parsable JSON
object.<br>2. Each key is a string which represents a name for the
value/pool.<br>3. Each value is a JSON with a single key/value: key =
comma-separated string list of FATE<br>operations, value = integer for the
number of threads assigned to run those FATE operations.<br>4. All possible
meta FATE operations are present in the JSON.<br>5. No FATE operations are
repeated.<br> |
| (deprecated) Manager FATE thread pool size | No format check. Allows any
value to be set but will warn the user that the property is no longer used. |
| erasurecode | One of 'enable','disable','inherit'. |
+
+### Java System Properties
+
+Below are properties used to modify the runtime behavior.
+
+| Property | Description |
+|--------------|-------------|
+| accumulo.properties | Path to accumulo.properties file. |
+| io.compression.codec.bzip2.class | BZip2 Codec Compression Algorithm. |
+| io.compression.codec.lz4.class | LZ4 Codec Compression Algorithm. |
+| io.compression.codec.lzo.class | LZO Codec Compression Algorithm. |
+| io.compression.codec.snappy.class | Snappy Codec Compression Algorithm. |
+| io.compression.codec.zstd.class | ZStandard Codec Compression Algorithm. |
+| org.apache.accumulo.client.rpc.debug.host | Set to host:port for the client
to connect to a specific server. |
diff --git a/_docs-4/getting-started/table_configuration.md
b/_docs-4/getting-started/table_configuration.md
index 387eafdbf..370be00a6 100644
--- a/_docs-4/getting-started/table_configuration.md
+++ b/_docs-4/getting-started/table_configuration.md
@@ -344,6 +344,7 @@ in reduced read latency. Read the [Caching] documentation
to learn more.
## Compaction
See {% dlink administration/compaction %}
+
## Pre-splitting tables
Accumulo will balance and distribute tables across servers. Before a
@@ -408,6 +409,9 @@ faster to set the split point and merge the entire table:
root@myinstance> config -t myTable -s table.split.threshold=256M
root@myinstance> merge -t myTable
+Automatic merging of tablets has been added in 4.0.0 and is described
+further in [merging].
+
## Delete Range
Consider an indexing scheme that uses date information in each row.
@@ -619,3 +623,4 @@ preserved.
[Caching]: {% durl administration/caching %}
[table.bloom.enabled]: {% purl table.bloom.enabled %}
[table.file.compress.type]: {% purl table.file.compress.type %}
+[merging]: {% durl administration/merging %}