能否实现一个负责TiDB压力负载均衡的组件?类似于Yarn,实现TiDB节点之间的调度和负载均衡的功能

v4.0.7
我了解过HaProxy以及Ngnix,也试用过,但是目前不能满足我的需求。
PD提供的是TiDB内部的region之间的负载均衡,还有一块负载均衡也很重要,就是通过jdbc连接TiDB进行数据分析这块的负载均衡。也就是应该通过JDBC,把复杂SQL提交到哪个TiDB节点上去运行,从而实现TiDB节点之间的负载均衡。

目前的解决方案,如Ngnix和HaProxy,我的理解,只能实现类似于Java web的那种OLTP类型的请求的负载均衡,而不能很好的实现复杂OLAP场景下的TiDB节点之间的负载均衡。
比如我一个复杂SQL,需要占用内存30G,CPU30%,如果这个SQL提交到TiDB-01节点上,那么下一个复杂的SQL,就不能往这个TiDB节点上提交了,应该提交到其他比较空闲的TiDB节点上了。

目前我是自己写的简易的资源调度,就是提交之前,get到各个TiDB节点的CPU,内存等的情况,然后通过JDBC,连接最空闲的那个TiDB节点,提交SQL,同时如果这个节点的资源,小于一定值了,就不能继续提交SQL了,否则会导致这个TiDB节点挂掉,等到有资源的时候,在提交。

能否实现一个功能更全的调度系统,类似于Yarn的ResourceManager?实现无资源的等待功能,还有就是任务的负载均衡功能?

感谢反馈,能否麻烦您在 github 提交一个问题反馈下 https://github.com/pingcap/tidb/issues ,在那里会评估需求,并且跟进,麻烦了,多谢。

好的,谢谢

:handshake: