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

OceanBase后台线程

OceanBase 2022-11-19
472

下表列举出 OBServer 的一部分后台线程及其功能描述。大部分场景下用户无需关注其实现细节。

说明

在 OBServer 版本迭代中会对后台线程持续优化,因此有些后台线程会在版本升级的过程出现消失、合并等情况,也有可能会出现新的后台线程。

线程名归属模块线程数量功能描述
TsMgrTrx1用于本地 gts cache 的刷新。
WeakReadSvrTrx1用于计算本地 server 级别备机读时间戳。
HAGtsSourceTrx1用于 ha_gts 的刷新。 刷新频率由配置项 gts_refresh_interval 控制。
TransCheckpoint WorkerTrx1用户事务的 checkpoint 操作。
GCPartAdptTrx1定期检查 all_tenant_gc_partition_info 表,获取分区的 gc 情况,用于 GC 和事务 2PC 的推进。
PartWorkerTrx1遍历本机所有的 partition,做以下操作: 1. 每隔 50ms 尝试写事务层 checkpoint log。 2. 每隔 15s 计算迁移的快照点。 3. 每隔 10s 驱动本 partition 上所有活跃事务,为其检查 scheduler 的状态,用于事务上下文的 GC。 5. 每隔 10s 驱动刷新本 partition 上缓存的 clog 日志。
LockWaitMgrTrx1用于热点行场景下,等锁队列兜底的唤醒保障,比如语句超时,session 被 kill。
ClogAdapterTrx8用于事务层异步提交 clog。
ObTransServiceTrx6主要负责以下功能: 用于事务提交过程处理 error msg 用于语句回滚失败之后的重试。 * 用于提前解行锁场景,后继事务的唤醒操作。
GCCollectorstorage1用于定期检查本机所有 partition 是否能够 GC,如果可以则触发 GC 动作。
RebuildSchestorage1定期驱动需要 rebuild 的 partition 任务。
PurgeWorkerstorage1后台 memtable 的标记删除操作。
DAGstorage16dag 的工作线程,用于 partition 的转储、合并、迁移等任务的执行。
DagSchedulerstorage1dag 的调度线程。
STableChecksumUpstorage1用来 batch 提交汇报 sstable checksum 的任务。
PartitionSchedulerstorage2用来调度转储和调度合并任务。
MemstoreGCstorage1用来回收转储预热完成之后的 frozen memstore。
ObStoreFilestorage1用来检查坏块和宏块回收。
PartSerCbstorage40用于 partition leader 上任、卸任任务处理(20 个线程)。
ObPartitionSplit Workerstorage1用于处理 partition 分裂的后台任务。
FreezeTimerstorage1检查 memstore 内存,触发冻结。
RebuildTaskstorage1调度 D 副本拉取数据。
IndexSchestorage1调度建索引任务。
FreInfoReloadstorage1同步内部表中 major freeze 相关信息。
TableMgrGCstorage1收 memtable,释放内存。
BackupInfoUpdatestorage1用于定时刷 backup 的相关数据。
LogDiskMonstorage1用于检测系统多盘的情况。
KVCacheWashstorage1用于 kvcache 的内存 wash。 通过配置项 _cache_wash_interval 来控制检测周期,默认是 200ms,范围 [1ms,1m]。
KVCacheRepstorage1用于整理 cache 的内存碎片回收内存。 通过配置项 _cache_wash_interval 来控制检测周期,默认是 200ms,范围 [1ms,1m]。
RSMonitorRS1用来监控当前 RS 的状态。
CacheCalculatorRS1用来给 location_cache 和 schema_cache 预留内存。
ObDailyMergeSchedulerRS1用来调度每日合并。
ObEmptyServerCheckerRS1用来检测 OBS 上面是否不存在副本。
ObFetchPrimaryDDLOperatorRS1备库逻辑同步主库系统租户 schema。
ObFreezeInfoUpdaterRS1推动冻结进度和管理快照点回收点。
ObGlobalIndexBuilderRS1调度全局索引的构建。
ObGlobalMaxDecidedTransVersionMgrRS1统计全局最大事务版本号。
ObLeaderCoordinatorRS1管理集群中副本 leader 分布。
ObLogArchiveSchedulerRS1负责日志归档。
ObMajorFreezeLauncherRS1负责每日发起定时合并。
ObPartitionSpliterRS1负责调度分区合并。
ObRebalanceTaskMgrRS1负责调度负载均衡任务的执行。
ObRootBackupRS1负责调度备份任务。
ObRootBalancerRS1负责生成负载均衡任务。
ObRsGtsMonitorRS1监控 gts 实例的分布情况的,并基于 gts 副本的分布,生成迁移或补 gts 副本任务。
ObRsGtsTaskMgrRS1执行 gts 副本任务的线程。
ObHeartbeatCheckerRS1负责检查和 OBS 之间的心跳状态。
ObStandbyClusterSchemaProcessorRS1备库副本同步主库的普通租户 schema。
ObRestoreSchedulerRS1负责恢复流程的调度。
ObWorkQueueRS4执行 RS 的异步任务。 线程数通过配置项 rootservice_async_task_thread_count 来控制,范围 [1,10]。
ObAsyncTaskQueueRS16执行构建索引的任务。
LocalityReloadRS1定期刷新 locality 信息。
RSqlPoolRS1备库用来定期维护主库的 rs_list。
ServerTracerTimerRS1用来维护和其他 server 状态的定时任务。
LogEngineCLOG1统计监控 clog 盘空间使用情况,执行 clog 文件回收操作。
CLGWRCLOG1负责 clog item 写盘。
ClogHisRepCLOG3partition 上下线时更新 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用于日志副本的 checkpoint 操作。
RebuildRetryCLOG1用于重试 rebuild partition 的任务。
ReplayEngineCLOG物理核用于备机 CLOG 的回放。
PxPoolThSQL0并行执行的线程池。
sql_mem_timerSQL1用于自动内存管理。
OmtNodeBalancercommon1负责后台刷新多租户信息。
MultiTenantcommon1负责刷多租户 CPU 配比,用于资源调度。
SignalHandlecommon1信号处理线程。
LeaseUpdatecommon3负责 rs 与各个 server 直接的 lease 监控。
RsDDLcommon1负责 RS 的 DDL。
MysqlIOcommon12负责 MySQL 的链接处理线程。
all_meta_tablecommon8用于 PG 或者 partition 状态的汇报。
all_pg_partition_ meta_tablecommon8用于 PG 内 partition 的状态的汇报。
TimerMonitorcommon1监控内部定时线程动作,对执行时间异常的任务报警。
ConfigMgrcommon1用于配置项的刷新。
OB_ALOGcommon1用于系统异步日志的日志落盘。
ELE_ALOGelection1用于选举模块异步日志的日志落盘。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论