OceanBase 数据库的那些线程,分别是做什么的?

在 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 的正常运行、请求处理,是多租户共享的。

谢谢大佬分享!

请问一下ddl相关的线程如下查看有2个taskexecutor,内部针对待执行的ddl操作是有什么区分吗?

ps -T -p $(pidof observer) | grep -i ddl

23272 23323 ?    00:02:24 DDLQueueTh0

23272 23372 ?    00:05:22 DDLTaskExecutor

23272 23459 ?    00:05:27 DDLTaskExecutor