在 OceanBase 数据库中,有一部分线程是用于维持 OceanBase 数据库分布式数据库服务的系统线程,还有一部分是用来处理数据库负载的 Worker 线程。
整体上,OceanBase 数据库的线程可以分成以下几类:
- 租户线程:负责租户请求处理的线程,例如,租户处理 SQL 和事务请求的线程, 命名规则为 TNT_L_。
- 系统线程:
- net io:处理网络 IO 的线程。
- disk io:处理磁盘 IO 的线程。
- dag 线程:用于 Partition 的转储、合并、迁移等任务的执行。
- clog writer:写 Clog 的线程。
- election worker:选举线程。
- misc timer:包括多个后台定时器线程,主要负责清理资源。
- 除此之外,还有一批 RootServer 专有的线程,这里不再做细分。
- 最后还有一些特定用途的后台线程,在进一步深入了解 OceanBase 数据库之前,可以先忽略。
其中,租户线程是每个租户独有负责执行该租户的请求;系统线程负责保证这一节点上 OBServer 的正常运行、请求处理,是多租户共享的。