暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式数据库学习Note8:OceanBase社区版中,数据库后台线程的定义是什么?

本文列举了 OceanBase 数据库的一部分后台线程,并简单解释了这些后台线程的基本功能。在大部分场景下,用户完全不需要去关注后台线程的实现细节。

后台线程

在 OceanBase 数据库的版本迭代中,有可能会对后台线程进行持续优化和效率提高,因此有些后台线程会在版本升级的过程出现消失、合并的情况;也有可能随着版本的更新,出现新的后台线程。

线程名归属模块线程数量功能
TsMgrTrx1用于本地 GTS Cache 的刷新。
WeakReadSvrTrx1用于计算本地 Server 级别备机读时间戳。
HAGtsSourceTrx1用于 ha_gts 的刷新,刷新频率由配置项 gts_refresh_interval 控制。
GCPartAdptTrx1定期检查 all_tenant_gc_partition_info 表,获取分区的 GC 情况,用于 GC 和事务 2PC 的推进。
PartWorkerTrx1遍历本机所有的 Partition,执行以下操作:
  1. 每隔 50ms 尝试写事务层 Checkpoint Log。
  2. 每隔 15s 计算迁移的快照点。
  3. 每隔 10s 驱动本 Partition 上所有活跃事务,为其检查Scheduler 的状态,用于事务上下文的 GC。
  4. 每隔 10s 驱动刷新本 Partition 上缓存的 Clog日志。
LockWaitMgrTrx1用于热点行场景下,等锁队列在特殊情况下的唤醒保障。例如,语句超时、Session 被Kill 等。
ClogAdapterTrx8用于事务层异步提交 Clog。
ObTransServiceTrx6主要负责以下功能:
  • 用于事务提交过程处理 Error Message。
  • 用于语句回滚失败之后的重试。
  • 用于提前解行锁场景,后继事务的唤醒操作。
GCCollectorstorage1用于定期检查本机所有 Partition 是否能够 GC,如果可以则触发 GC 动作。
RebuildSchestorage1定期驱动需要 Rebuild 的 Partition 任务。
PurgeWorkerstorage1后台 MemTable 的标记删除操作。
DAGstorage16Dag 的工作线程,用于 Partition 的转储、合并、迁移等任务的执行。
DagSchedulerstorage1Dag 的调度线程。
STableChecksumUpstorage1用来批量提交汇报 SSTable Checksum 的任务。
PartitionSchedulerstorage2用来调度转储和调度合并任务。
MemstoreGCstorage1用来回收转储预热完成之后的 Frozen MemStore。
ObStoreFilestorage1用来检查坏块和宏块回收。
PartSerCbstorage40用于分区 Leader 上任、卸任任务处理(20 个线程)。
ObPartitionSplit Workerstorage1用于处理分区分裂的后台任务。
FreezeTimerstorage1检查 MemStore 内存,触发冻结。
RebuildTaskstorage1调度 D 副本拉取数据。
IndexSchestorage1调度建索引任务。
FreInfoReloadstorage1同步内部表中 Major Freeze 相关信息。
TableMgrGCstorage1回收 MemTable,释放内存。
BackupInfoUpdatestorage1用于定时刷 Backup 的相关数据。
LogDiskMonstorage1用于检测系统多盘的情况。
KVCacheWashstorage1用于 KV Cache 的内存清洗。通过配置项 _cache_wash_interval 来控制检测周期,默认是 200ms,取值范围为 [1ms,1m]。
KVCacheRepstorage1用于整理 Cache 的内存碎片回收内存,通过配置项 _cache_wash_interval来控制检测周期,默认是200ms,取值范围为 [1ms,1m]。
RSMonitorRS1用来监控当前 RS 的状态。
CacheCalculatorRS1用来给 location_cache 和 schema_cache 预留内存。
ObDailyMergeSchedulerRS1用来调度每日合并。
ObEmptyServerCheckerRS1用来检测 OBServer 上是否不存在副本。
ObFetchPrimaryDDLOperatorRS1备库逻辑同步主库系统租户 Schema。
ObFreezeInfoUpdaterRS1推动冻结进度和管理快照点回收点。
ObGlobalIndexBuilderRS1调度全局索引的构建。
ObGlobalMaxDecidedTransVersionMgrRS1统计全局最大事务版本号。
ObLeaderCoordinatorRS1管理集群中副本 Leader 分布。
ObLogArchiveSchedulerRS1负责日志归档。
ObMajorFreezeLauncherRS1负责每日发起定时合并。
ObPartitionSpliterRS1负责调度分区合并。
ObRebalanceTaskMgrRS1负责调度负载均衡任务的执行。
ObRootBackupRS1负责调度备份任务。
ObRootBalancerRS1负责生成负载均衡任务。
ObRsGtsMonitorRS1监控 GTS 实例的分布情况,并基于 GTS 副本的分布,生成迁移或补 GTS 副本任务。
ObRsGtsTaskMgrRS1执行 GTS 副本任务的线程。
ObHeartbeatCheckerRS1负责检查和 OBServer 之间的心跳状态。
ObStandbyClusterSchemaProcessorRS1备库副本同步主库的普通租户 Schema。
ObRestoreSchedulerRS1负责恢复流程的调度。
ObWorkQueueRS4执行 RS 的异步任务,线程数通过配置项 rootservice_async_task_thread_count 来控制,取值范围为 [1,10]。
ObAsyncTaskQueueRS16执行构建索引的任务。
LocalityReloadRS1定期刷新 Locality 信息。
RSqlPoolRS1备库用来定期维护主库的 RootServer 列表。
ServerTracerTimerRS1用来维护和其他 Server 状态的定时任务。
LogEngineCLOG1统计监控 Clog 盘空间使用情况,执行 Clog 文件的回收操作。
CLGWRCLOG1负责 Clog item 写盘。
ClogHisRepCLOG3分区上下线时,更新 Clog History 内部表。
BatchSubmitCtxCLOG1负责拆分一阶段优化的事务。
LogScanRunnableCLOG4OBServer 启动时,负责扫描所有 Clog 文件。
LogStateDriCLOG1负责 Clog 模块主备角色切换、检查副本级联状态。
ObElectionGCThreadelection1负责 Election 对象内存的回收。
BlacklistCLOG1负责探测与通信目的端 Server 之间的网络是否联通。
BRPCCLOG5负责后台执行 batch_rpc 聚合包发包。
CLOGReqMinorCLOG1根据 Clog 磁盘空间的情况触发 Minor Freeze,加快 Clog 的回收。
LineCacheCLOG1用于优化历史数据的同步,Liboblog 场景使用。
EXTLogWashCLOG1频率:100ms。
CLogFileGCCLOG1用于定期回收 Clog 文件。
CKPTLogRepCLOG1用于日志副本的 C heckpoint操作。
RebuildRetryCLOG1用于重试重建分区的任务。
ReplayEngineCLOG物理核用于备机 Clog 的回放。
PxPoolThSQL0并行执行的线程池。
sql_mem_timerSQL1用于自动内存管理。
OmtNodeBalancercommon1负责后台刷新多租户信息。
MultiTenantcommon1负责刷多租户 CPU 配比,用于资源调度。
SignalHandlecommon1信号处理线程。
LeaseUpdatecommon3负责 RS 与各个 Server 直接的 Llease 监控。
RsDDLcommon1负责 RS 的 DDL。
MysqlIOcommon12负责 MySQL 的链接处理线程。
all_meta_tablecommon8用于 PG 或者分区状态的汇报。
all_pg_partition_ meta_tablecommon8用于 PG 内分区的状态的汇报。
TimerMonitorcommon1监控内部定时线程动作,对执行时间异常的任务报警。
ConfigMgrcommon1用于配置项的刷新。
OB_ALOGcommon1用于系统异步日志的日志落盘。
ELE_ALOGelection1用于选举模块异步日志的日志落盘。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论