kyuubi/docs/deployment/engine_lifecycle.md
Kent Yao d805f49fe7
[KYUUBI #1557] [DOC] The TTL Of Kyuubi Engines
<!--
Thanks for sending a pull request!

Here are some tips for you:
  1. If this is your first time, please read our contributor guidelines: https://kyuubi.readthedocs.io/en/latest/community/contributions.html
  2. If the PR is related to an issue in https://github.com/apache/incubator-kyuubi/issues, add '[KYUUBI #XXXX]' in your PR title, e.g., '[KYUUBI #XXXX] Your PR title ...'.
  3. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP][KYUUBI #XXXX] Your PR title ...'.
-->

### _Why are the changes needed?_
<!--
Please clarify why the changes are needed. For instance,
  1. If you add a feature, you can talk about the use case of it.
  2. If you fix a bug, you can clarify why it is a bug.
-->

![image](https://user-images.githubusercontent.com/8326978/146000343-44c7b30c-28ba-4434-ab6e-9fb4d0a97d75.png)

### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [x] Add screenshots for manual tests if appropriate

- [ ] [Run test](https://kyuubi.readthedocs.io/en/latest/develop_tools/testing.html#running-tests) locally before make a pull request

Closes #1557 from yaooqinn/ttk.

Closes #1557

8446180a [Kent Yao] [DOC] The TTL Of Kyuubi Engines

Authored-by: Kent Yao <yao@apache.org>
Signed-off-by: Kent Yao <yao@apache.org>
2021-12-15 10:02:02 +08:00

19 KiB

The TTL Of Kyuubi Engines

For a multi-tenant cluster, its overall resource utilization is a KPI that measures how effectively its resource is utilized against its availability or capacity. To better improve the overall resource utilization of the cluster,

  • At cluster layer, we leverage the capabilities, such as Capacity Scheduler, of resource scheduling management services, such as YARN and K8s.
  • At application layer, we'd be better to acquire and release resources according to the real workloads.

The Big Contributors Of Resource Waste

  • The time to wait for the resource to be allocated, such as the scheduling delay, the start/stop cost.

    • A longer time-to-live(TTL) for allocated resources can significantly reduce such time costs within an application.
  • The time being idle of the resource.

    • A shorter time to live for allocated resources can make all resources in rapid turnarounds across applications.

TTL Types In Kyuubi Engines

  • Engine TTL
    • The TTL of engines describes how long an engine will be cached after all sessions are disconnected.
  • Executor TTL
    • The TTL of the executor describes how long an executor will be cached when no tasks come.

Configurations

Engine TTL

Key Default Meaning Type Since
kyuubi.session.engine
.check.interval
PT5M
The check interval for engine timeout
duration
1.0.0
kyuubi.session.engine
.idle.timeout
PT30M
engine timeout, the engine will self-terminate when it's not accessed for this duration. 0 or negative means not to self-terminate.
duration
1.0.0

The above two configurations can be used together to set the TTL of engines. These configurations are user-facing and able to use in JDBC urls. Note that, for connection share level engines that will be terminated at once when the connection is disconnected, these configurations not necessarily work in this case.

Executor TTL

Executor TTL is part of functionality of Apache Spark's Dynamic Resource Allocation.