[FEATURE] Implement a tag based `SessionConfAdvisor`
- Dominant language
- Scala
- Stars
- 2.4k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before asking
- [X] I have searched in the [issues](https://github.com/apache/incubator-kyuubi/issues?q=is%3Aissue) and found no similar issues.
### Describe the feature
As discussed in https://github.com/apache/incubator-kyuubi/issues/966#issuecomment-901945984, I want to implement a tag based `SessionConfAdvisor` that gets some session configuration for given tags.
Tag level:
+ SYSTEM
+ SERVER
+ USER
+ TAG
Priority of configuration: TAG > USER > SERVER > SYSTEM
### Motivation
I want to optimize the configuration based on some tags specified by the user.
### Describe the solution
We can implement `FileTagConfAdvisor` first and store the tag configuration in a file.
### Additional context
_No response_
### Are you willing to submit PR?
- [X] Yes I am willing to submit a PR!
Contributor guide
Research direction
Start by reading the existing SessionConfAdvisor entry point and the proposed FileTagConfAdvisor described in the issue, then review issue #966 for the prior discussion. Define how SYSTEM, SERVER, USER, and TAG settings are stored and resolved, with TAG taking precedence over USER, SERVER, and SYSTEM. Done means tag-based session configuration is implemented with the stated priority order.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100