Unified Thread Pool | Hackathon 2019 优秀项目介绍
作者:夏锐航 本文由逊馁队的成员夏锐航同学主笔,介绍 Unified Thread Pool 项目的设计与实现过程。该项目实现了在 TiKV 中使用一个统一的自适应线程池处理读请求,能够显著提升性能,并可预测性地限制大查询对小请求的干扰,最终在 TiDB Hackathon 2019 中斩获一等奖。 距离 TiDB Hackathon 落幕已经过去了半个多月,回忆这次比赛、获奖的经历,依然让我感到非常兴奋。我目前是华南理工大学大三的学生,我和正在 PingCAP 实习的学长奕霖一起组队参加了这次 TiDB Hackathon,比赛的主题为 “Improve”,即提升 TiDB 及相关项目的性能、易用性等。我们项目设计的切入点是: TiKV 现有的线程池在大小查询混合场景下的表现不太优秀。 需要针对不同的环境、场景配置线程池数量,使用和学习成本较高。 于是我和奕霖尝试为 TiKV 重新实现一个线程池来解决这个问题,以达到 Improve 整体表现的效果。除了优化读请求的线程池外,我们计划将这个线程池来代替 TiKV 中其他线程池,最后就产生了我们本次的参赛作品 Unified Thread Pool。 项目设计 在 TiKV 现行的线程池方案中有 Coprocessor、Storage 和 Scheduler 三套线程池。这些线程池原本是设计来分隔不同的任务,减少它们之间的相互影响