celeborn/docs/configuration/master.md
Shuang ad57c8b91e
[CELEBORN-1052] Introduce dynamic ConfigService at SystemLevel and TenantLevel
### What changes were proposed in this pull request?
This PR introduce dynamic ConfigService at SystemLevel and TenantLevel, Dynamic configuration is a type of configuration that can be changed at runtime as needed. It can be used at system level/tenant level. When applying dynamic configuration, the priority order is as follows: tenant level overrides system level, which in turn overrides static configuration(CelebornConf). This means that if a configuration is defined at the tenant level, it will be used instead of the system level or static configuration(CelebornConf). If the tenant-level configuration is missing,
the system-level configuration will be used. If the system-level configuration is also missing, CelebornConf
will be used as the default value.

There are several other tasks related to this feature that will be implemented in the future.

- [ ]  [Add isDynamic property for CelebornConf](https://issues.apache.org/jira/browse/CELEBORN-1051)
- [ ]  [Support DB based Configserver](https://issues.apache.org/jira/browse/CELEBORN-1054)
- [ ]  [Add restAPI for configuration management](https://issues.apache.org/jira/browse/CELEBORN-1056)

### Why are the changes needed?
The current configuration of the server (CelebornConf) is static. When the configuration is changed, the service needs to be restarted. This PR introduces a dynamic configuration solution. The server side can use dynamic configuration as needed. At the same time, it is considered that the tenant level will be supported in the future (such as supporting tenant level dynamic quota control) configuration, so this time we will also consider supporting dynamic tenant-level configuration, and this PR will provide a default implementation based on the file system.

### Does this PR introduce _any_ user-facing change?
No

### How was this patch tested?
UT

Closes #2100 from RexXiong/CELEBORN-1052.

Authored-by: Shuang <lvshuang.tb@gmail.com>
Signed-off-by: mingji <fengmingxiao.fmx@alibaba-inc.com>
2023-11-27 12:17:05 +08:00

4.3 KiB

license
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Key Default Description Since
celeborn.dynamicConfig.refresh.time 120s The time interval for refreshing the corresponding dynamic config periodically 0.4.0
celeborn.dynamicConfig.store.backend NONE Store backend for dynamic config, NONE means disabling dynamic config store 0.4.0
celeborn.master.estimatedPartitionSize.initialSize 64mb Initial partition size for estimation, it will change according to runtime stats. 0.3.0
celeborn.master.estimatedPartitionSize.update.initialDelay 5min Initial delay time before start updating partition size for estimation. 0.3.0
celeborn.master.estimatedPartitionSize.update.interval 10min Interval of updating partition size for estimation. 0.3.0
celeborn.master.hdfs.expireDirs.timeout 1h The timeout for a expire dirs to be deleted on HDFS. 0.3.0
celeborn.master.heartbeat.application.timeout 300s Application heartbeat timeout. 0.3.0
celeborn.master.heartbeat.worker.timeout 120s Worker heartbeat timeout. 0.3.0
celeborn.master.host <localhost> Hostname for master to bind. 0.2.0
celeborn.master.http.host <localhost> Master's http host. 0.4.0
celeborn.master.http.port 9098 Master's http port. 0.4.0
celeborn.master.port 9097 Port for master to bind. 0.2.0
celeborn.master.slot.assign.extraSlots 2 Extra slots number when master assign slots. 0.3.0
celeborn.master.slot.assign.loadAware.diskGroupGradient 0.1 This value means how many more workload will be placed into a faster disk group than a slower group. 0.3.0
celeborn.master.slot.assign.loadAware.fetchTimeWeight 1.0 Weight of average fetch time when calculating ordering in load-aware assignment strategy 0.3.0
celeborn.master.slot.assign.loadAware.flushTimeWeight 0.0 Weight of average flush time when calculating ordering in load-aware assignment strategy 0.3.0
celeborn.master.slot.assign.loadAware.numDiskGroups 5 This configuration is a guidance for load-aware slot allocation algorithm. This value is control how many disk groups will be created. 0.3.0
celeborn.master.slot.assign.maxWorkers 10000 Max workers that slots of one shuffle can be allocated on. Will choose the smaller positive one from Master side and Client side, see celeborn.client.slot.assign.maxWorkers. 0.3.1
celeborn.master.slot.assign.policy ROUNDROBIN Policy for master to assign slots, Celeborn supports two types of policy: roundrobin and loadaware. Loadaware policy will be ignored when HDFS is enabled in celeborn.storage.activeTypes 0.3.0
celeborn.master.userResourceConsumption.update.interval 30s Time length for a window about compute user resource consumption. 0.3.0
celeborn.master.workerUnavailableInfo.expireTimeout 1800s Worker unavailable info would be cleared when the retention period is expired 0.3.1
celeborn.storage.availableTypes HDD Enabled storages. Available options: MEMORY,HDD,SSD,HDFS. Note: HDD and SSD would be treated as identical. 0.3.0
celeborn.storage.hdfs.dir <undefined> HDFS base directory for Celeborn to store shuffle data. 0.2.0
celeborn.storage.hdfs.kerberos.keytab <undefined> Kerberos keytab file path for HDFS storage connection. 0.3.2
celeborn.storage.hdfs.kerberos.principal <undefined> Kerberos principal for HDFS storage connection. 0.3.2