Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CELEBORN-1052] Introduce dynamic ConfigService at SystemLevel and TenantLevel #2100

Closed
wants to merge 6 commits into from

Conversation

RexXiong
Copy link
Contributor

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.

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

Copy link

codecov bot commented Nov 14, 2023

Codecov Report

Attention: 45 lines in your changes are missing coverage. Please review.

Comparison is base (3c6e469) 46.76% compared to head (f0a39a9) 46.95%.
Report is 17 commits behind head on main.

Files Patch % Lines
...rn/server/common/service/config/DynamicConfig.java 56.25% 16 Missing and 5 partials ⚠️
...ver/common/service/config/FsConfigServiceImpl.java 76.48% 9 Missing and 3 partials ⚠️
...on/service/config/DynamicConfigServiceFactory.java 0.00% 5 Missing ⚠️
...orn/server/common/service/config/SystemConfig.java 64.29% 5 Missing ⚠️
...cala/org/apache/celeborn/common/CelebornConf.scala 92.31% 1 Missing ⚠️
...rn/server/common/service/config/ConfigService.java 75.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2100      +/-   ##
==========================================
+ Coverage   46.76%   46.95%   +0.20%     
==========================================
  Files         166      173       +7     
  Lines       10695    10929     +234     
  Branches      977     1009      +32     
==========================================
+ Hits         5000     5131     +131     
- Misses       5373     5466      +93     
- Partials      322      332      +10     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@SteNicholas SteNicholas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RexXiong, I left some comments for the dynamic config implementation.

Copy link
Contributor

@FMX FMX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean code. LGTM.

@FMX FMX closed this in ad57c8b Nov 27, 2023
RexXiong pushed a commit that referenced this pull request Dec 4, 2023
…vel and TenantLevel

### What changes were proposed in this pull request?

Follow up #2100. Mainly changes the package from scala to java of the codes in #2100. Meanwhile, `FsConfigServiceImpl#refresh` should directly return instead of refreshing configs.

### Why are the changes needed?

This PR follow up dynamic `ConfigService` at `SystemLevel` and `TenantLevel`, Dynamic configuration is a type of configuration that can be changed at runtime as needed in #2100. The implementation of `ConfigService` is based on Java codes, which are put into Scala package and cause that the spotless plugin does not format well. After the changes of the pull request, there are much code style changes generated from the package moving behavior.

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

No.

### How was this patch tested?

`ConfigServiceSuiteJ`.

Closes #2125 from SteNicholas/CELEBORN-1052.

Authored-by: SteNicholas <[email protected]>
Signed-off-by: Shuang <[email protected]>
SteNicholas added a commit that referenced this pull request Feb 28, 2024
… and config service

### What changes were proposed in this pull request?

Introduce `configuration.md` to document dynamic config and config service.

### Why are the changes needed?

`DynamicConfig` and `ConfigService` have already been supported in #2100, which should be documented to introduce the feature.

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

No.

### How was this patch tested?

No.

Closes #2336 from SteNicholas/CELEBORN-1286.

Authored-by: SteNicholas <[email protected]>
Signed-off-by: SteNicholas <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants