昨天发了篇关于分布式数据库的聊聊类不同点的文章,实际上分布式数据库的待事特点是分片与并行计算,所以无论哪种架构,析最新版最终都会通过分片和并行计算来提供强大的聊聊类横向扩展能力与并行处理能力。最终的待事目标都是在计算层通过强大的,远超过集中式数据库复杂度的析最新版CBO优化器,产生优秀的聊聊类,可大量并发执行的待事执行计划,并将最小粒度的析最新版算子下推到其他计算节点或者存储节点去做并行计算;在存储层,通过更细粒度的聊聊类分片管理,能够更为精细化的待事管理数据分片;在资源管理层,具有强大的析最新版资源管理和隔离能力,确保关键任务与普通任务能够以不同的聊聊类优先级获得各种算力资源,同时能够通过多租户能力为用户提供各种需求的待事资源。 今天我们来谈谈数据库的析最新版等待事件问题。等待事件是服务器托管做性能优化、故障诊断的利器。Oracle数据库在7.3开始通过OWI提供了等待事件接口,自此开始,等待事件已经成为DBA分析数据库的最为重要的手段之一。 最近我一直在梳理PG及其相近与相兼容的数据库的等待事件,用于D-SMART的运维知识图谱之中。前阵子去阿布吉徒步,这个工作被耽搁了半个月,今天下午终于完成了初稿。整理等待事件的知识主要的目的是用于运维中的自动化诊断。根据数据库内部等待事件的情况来判断系统可能在哪些方面出现了问题。  图片
 根据数据库中的等待事件,通过智能化诊断算法去做一个初步分析,为运维专家提供一些参考:  图片
 比如上面的案例,通过等待事件分析,发现系统中的HASH JION的并发执行过大。香港云服务器 本次梳理的等待事件涵盖了PostgreSQL(9.x-15),openGauss系列数据库,包含海量G100、南大通用GBASE 8C、MogDB等兼容国产数据库。以及华为商用版的Gaussdb、Gaussdb DWS,以及阿里Polardb-Postgresql、Polardb-O等相关兼容的数据库产品。 等待事件的知识图谱要覆盖数据库的各种历史版本,才能在各种用户的场景中发挥作用。我在梳理等待事件的时候,对于某些等待事件也知之不多,因此经常向各个厂家的朋友请教,在这里我也要对给与我帮助的各个友商的朋友表示感谢。 在梳理等待事件知识图谱的时候,我也经常会遇到某些等待事件,目前已经被厂商废弃了,因此很难给出明确的答案。我想对于数据库产品的研发人员来说,可以不太去关注已经废弃的IT技术网功能,但是对于数据库厂商来说,这些功能虽然在新版本的数据库中被废弃了,但是低版本的数据库可能还在用户侧运行着,这些用户也应该是数据库厂商的服务对象。这些被废弃的等待事件,其知识内容也还是应该继续有人维护的。 如果大家对PG类数据库的等待事件感兴趣,可以收藏。同时本文中的一些知识梳理过程中肯定存在一些不准确甚至错误的地方。也希望有共同爱好的朋友指出其中的错误,让这个知识库更加准确。我也将定期将修订后的版本发布给大家。当前的版本,在我们公司内部的版本号是5.3。 分类 名称 描述 关联根因 Activity ArchiverMain 归档进程的主循环等待 后台进程,一般可忽略 Activity AutoVacuumMain autovacuum启动进程的主循环等待 后台进程,一般可忽略 Activity BgWriterHibernate 后台写入进程等待,正在休眠 后台进程,一般可忽略 Activity BgWriterMain bgwriter进程的主循环等待 后台进程,一般可忽略 Activity CheckpointerMain CKPT进程主循环等待 后台进程,一般可忽略 Activity LogicalApplyMain 逻辑应用进程主循环等待 后台进程,一般可忽略 Activity LogicalLauncherMain 逻辑启动进程主循环等待 后台进程,一般可忽略 Activity PgStatMain 统计信息采集进程主循环等待 后台进程,一般可忽略 Activity RecoveryWalAll 实例恢复时等待WAL数据流到达 等待新的WAL数据 Activity RecoveryWalStream 在恢复时再次尝试检索 WAL 数据之前,等待任何类型的源(本地、存档或流)中的 WAL 数据不可用时 等待新的WAL数据 Activity SysLoggerMain syslogger进程主循环等待 后台进程,一般可忽略 Activity WalReceiverMain WAL接收进程主循环等待 后台进程,一般可忽略 Activity WalSenderMain WAL发送进程主循环等待 后台进程,一般可忽略 Activity WalWriterMain WAL写进程主循环等待 后台进程,一般可忽略 BufferPin BufferPin 等待获得BUFFER的PIN锁 热块、DBCACHE Client ClientRead 等待读取客户端输入 未提交事务,空闲等待 Client ClientWrite 等待向客户端发送数据 网络、TOPSQL Client LibPQWalReceiverConnect 在 WAL 接收器中等待建立与远程服务器的连接。 网络、远程服务器性能 Client LibPQWalReceiverReceive 等待 WAL 接收器接收来自远程服务器的数据。 网络、远程服务器性能 Client SSLOpenServer 等待SSL连接 网络问题、SSL配置问题 Client WalReceiverWaitStart 等待启动进程发送初始化复制数据流 网络问题、SSL配置问题 Client WalSenderWaitForWAL 进程正等待在 WAL 发件人进程中刷新预写日志 (WAL) 主库性能问题 Client WalSenderWriteData 进程正在等待 WAL 发件人进程中处理来自预写日志 (WAL) 接收方的回复时的任何活动 网络问题、主库性能问题 Extension Extension 等待和extension交换数据或消息 和扩展插件有关 IO BaseBackupRead 等待基础备份读取文件 磁盘IO IO BaseBackupSync 等待基础备份数据写入持久化存错 磁盘IO IO BaseBackupWrite 等待基础备份数据写入文件 磁盘IO IO BufFileRead bffered文件读等待 磁盘IO,热块,DBCACHE IO BufFileWrite buffered文件写等待 DBCACHE,磁盘IO IO BufHashTableSearch 缓冲区HASH 表查询 缓冲区hash表查询 IO ControlFileRead 等待控制文件读 磁盘IO IO ControlFileSync 等待控制文件写入持久化存储 磁盘IO IO ControlFileSyncUpdate 等待控制文件修改到达持久化存储 磁盘IO IO ControlFileWrite 等待写入控制文件 磁盘IO IO ControlFileWriteUpdate 等待一个修改控制文件的写操作 磁盘IO IO CopyFileRead COPY命令中的读等待 磁盘IO IO CopyFileWrite COPY命令中的写等待 磁盘IO IO DataFileExtend 等待 relation数据文件扩展 磁盘IO,磁盘容量 IO DataFileFlush 等待 relation数据文件写入持久存储 磁盘IO IO DataFileImmediateSync 等待一个立即同步 relation 数据文件写入持久存储 磁盘IO IO DataFilePrefetch 等待从Relation数据文件异步预读数据 磁盘IO IO DataFileRead 等待从relation数据文件读数据 磁盘IO IO DataFileSync 等待 relation 数据文件的变化写入持久存储 磁盘IO IO DataFileTruncate 等待relation 数据文件截断 磁盘IO IO DataFileWrite 等待 relation数据文件写 磁盘IO IO DisableConnectFileRead HA锁分片逻辑文件读取 磁盘IO,分布式事务 IO DisableConnectFileSync HA锁分片逻辑文件强制刷盘 磁盘IO,分布式事务 IO DisableConnectFileWrite HA锁分片逻辑文件写入 磁盘IO,分布式事务 IO DoubleWriteFileRead 双写文件读,和双写区IO有关的读 磁盘IO,DML操作 IO DoubleWriteFileWrite 双写文件写,与脏快写盘有关 并发DML、DML操作 IO DSMFillZeroWrite 等待向一个动态共享内存文件写入字节0 并行查询、系统并发、后台任务 IO DWSingleFlushGetPos 单页面双写文件查找可用位置 磁盘IO,并发DML IO DWSingleFlushWrite 刷新双写数据到永久存储 磁盘IO,并发DML IO LockFileAddToDataDirRead 向数据目录中添加锁文件时的等待 磁盘IO,读写权限,数据库配置错误 IO LockFileAddToDataDirSync 向数据目录添加锁文件时刷新产生的等待 磁盘IO,读写权限,数据库配置错误 IO LockFileAddToDataDirWrite 向数据目录添加锁文件时写入产生的等待 磁盘IO,读写权限,数据库配置错误 IO LockFileCreateRead 向数据目录中添加锁文件前读取产生的等待 磁盘IO,读写权限,数据库配置错误 IO LockFileCreateSync 创建目录锁文件时同步到持久存储 磁盘IO IO LockFileCreateWRITE 创建目录锁文件时写入数据 磁盘IO IO LockFileCreateWrite 创建目录锁文件时写入数据 磁盘IO IO LockFileReCheckDataDirRead 在重新检查数据目录中的锁文件时等待读取锁文件的操作 磁盘IO,读写权限,数据库配置错误 IO LOGCTRL_SLEEP 在等待一个用于日志控制的事件类型,发生在执行需要管理日志的操作时 磁盘IO,数据库错误、并发执行 IO LogicalRewriteCheckpointSync CKPT时等待逻辑重写映射到达持久化存储 磁盘IO,检查点,逻辑复制 IO LogicalRewriteMappingSync 逻辑重写时等待映射数据达到持久化存储 磁盘IO、逻辑复制 IO LogicalRewriteMappingWrite 逻辑重写时等待写映射数据达到持久化存储 磁盘IO、逻辑复制 IO LogicalRewriteSync 等待逻辑重写映射到达持久化存储 磁盘IO、逻辑复制 IO LogicalRewriteTruncate 等待映射数据截断到达持久化存储 磁盘IO、逻辑复制 IO LogicalRewriteWrite 等待一个逻辑重写映射写操作 磁盘IO、逻辑复制 IO MPFL_INIT 初始化max_page_flush_lsn,启动数据库时,设置每个节点的最大页面刷新日志序列号(LSN)的操作 数据库启动 IO MPFL_READ 在读取多进程文件日志(MPFL)时等待文件操作的完成 磁盘IO,并发事务 IO MPFL_WRITE 在写入多进程文件日志(MPFL)时等待文件操作的完成 磁盘IO,并发事务 IO OBSList 对象存储相关,遍历OBS目录 磁盘IO IO OBSRead 对象存储相关,读取OBS对象 磁盘IO IO OBSWrite 对象存储相关,写入OBS对象 IO PredoApply 等待并行回放应用回放 并行恢复、流复制 IO PredoProcessPending 并行日志回放中当前记录回放等待其它记录回放完                   成        并行日志恢复 IO RelationMapRead 读取系统表到存储位置之间的映射文件 磁盘IO、并发DDL、并发SQL执行 IO RelationMapSync 等待Relation Map文件写入持久存储 磁盘IO IO RelationMapWrite 等待Relation Map文件写 磁盘IO、并发DML、并发DDL IO ReorderBufferRead RecorderBuffer管理中等待读操作(逻辑复制) 磁盘IO、逻辑复制 IO ReorderBufferWrite RecorderBuffer管理中等待写操作(逻辑复制) 磁盘IO、逻辑复制 IO ReorderLogicalMappingRead RecorderBuffer管理中等待逻辑映射文件读操作 磁盘IO、逻辑复制 IO ReplicationSlotRead 等待复制槽控制文件的读操作 磁盘IO、复制 IO ReplicationSlotRestoreSync 当复制槽控制文件从内存中复制时等待该文件写入持久存储 磁盘IO、复制 IO ReplicationSlotSync 等待复制槽控制文件写入持久存储 磁盘IO、复制 IO ReplicationSlotWrite 等待一个复制槽控制文件写操作 磁盘IO、复制 IO SLRUFlushSync 将pg_clog、pg_subtrans和pg_multixact文件持久化到磁盘。主要在执行checkpoint和数据库停机时发生 磁盘IO、检查点、数据库关闭、并发事务 IO SLRURead 后台进程正在等待从SLRU(Simple LRU)文件中读取数据。SLRU文件是一种用于存储固定大小的记录的简单缓冲区管理器,例如pg_clog、pg_subtrans和pg_multixact 磁盘IO、并发事务、子事务嵌套 IO SLRUSync 页写入后等待SLRU数据写入持久存储 磁盘IO、并发事务、子事务嵌套 IO SLRUWrite 等待 SLRU 页写操作 磁盘IO、并发事务、子事务嵌套 IO SnapbuildRead 后台进程正在等待从snapbuild文件中读取数据,snapbuild文件是一种用于存储逻辑复制的快照信息的文件,例如pg_logical/snapshots和pg_logical/replorigin_checkpoint 磁盘IO、并发事务、逻辑复制 IO SnapbuildSync 等待序列化的历史目录快照写入持久存储 磁盘IO、并发事务、逻辑复制 IO SnapbuildWrite 等待写入序列化的历史目录快照 磁盘IO、并发事务、逻辑复制 IO StrategyGetBuffer 表示后台进程正在等待从缓冲区管理器中获取一个可用的缓冲区页面。缓冲区管理器使用Clock Sweep算法来选择一个候选的缓冲区页面,如果该页面是干净的,或者可以被写回磁盘,那么就可以分配给后台进程。如果该页面是脏的,或者被其他进程锁定或引用,那么就需要继续扫描下一个页面。当缓冲区中的页面都很繁忙时,就会出现StrategyGetBuffer等待事件 缓冲区配置、热块冲突、并发过大、检查点不合理 IO TimelineHistoryFileSync 等待通过流式复制接收到的时间线历史文件写入持久存储 磁盘IO,流复制 IO TimelineHistoryFileWrite 流式复制时等待时间线文件上的一个写操作被收到 磁盘IO,流复制 IO TimelineHistoryRead 等待时间线历史文件上的读操作 磁盘IO,流复制 IO TimelineHistorySync 等待新创建的时间线历史文件写入持久存储 磁盘IO,流复制 IO TimelineHistoryWrite 等待新创建的时间线历史文件上的写操作 磁盘IO,流复制 IO TwophaseFileRead 等待两阶段状态文件读操作 磁盘IO、分布式事务 IO TwophaseFileSync 等待两阶段状态文件写入持久存储 磁盘IO、分布式事务 IO TwophaseFileWrite 等待两阶段状态文件写操作 磁盘IO、分布式事务 IO UndoFileExtend UNDO文件扩展 UNDO量增加 IO UndoFileFlush UNDO文件刷盘 并发事务 IO UndoFilePrefetch UNDO文件预读 一致性读 IO UndoFileRead UNDO文件读 一致性读 IO UndoFileSync UNDO文件同步 并发事务 IO UndoFileWrite UNDO文件写 并发事务 IO VersionFileWrite 创建数据库时写入VERSION文件产生的等待 磁盘IO IO WALBootstrapSync bootstrap的时候等待WAL文件写入持久存储 磁盘IO、启动 IO WALBootstrapWrite bootstrap的时候等待WAL页写操作 磁盘IO、启动 IO WALBufferAccess WAL BUFFER访问 并发事务 IO WALBufferFull WAL缓冲区满 WAL并发、并发修改、IO性能 IO WALCopyRead 当使用拷贝一个现有的WAL 段创建一个新WAL段的时候等待读操作 磁盘IO、复制 IO WALCopySync 当使用拷贝一个现有的WAL 段创建一个新WAL段的时候等待写入持久存储 磁盘IO、复制 IO WALCopyWrite 当使用拷贝一个现有的WAL 段创建一个新WAL段的时候等待写操作 磁盘IO、复制 IO WALInitSync 等待一个新初始化的WAL文件写入持久存储 磁盘IO、检查点 IO WALInitWrite 初始化新的WAL文件的时候等待写操作 磁盘IO、检查点 IO WALRead 等待WAL文件读 磁盘IO IO WALSenderTimelineHistoryRead 在 walsender 时间线命令期间等待从时间线历史文件中读取 磁盘IO、复制 IO WALSync 等待 WAL 文件到达持久的存储空间 磁盘IO、WAL量 IO WALSyncMethodAssign WAL 同步模式时等待数据写入持久存储 磁盘IO、WAL量 IO WALWrite 等待WAL文件写 磁盘IO、WAL量 IPC BgWorkerShutdown 等待后台worker关闭 关闭实例 IPC BgWorkerStartup 等待后台worker启动 启动实例 IPC BtreePage 等待继续并行 B 树扫描所需的页可用(并行索引扫描) 并行执行 IPC ExecuteGather 执行Gather时等待子进程的活动 表分析 IPC Hash/Batch/Allocating HASH JOIN 相关 HASH JOIN IPC Hash/Batch/Electing HASH JOIN 相关 HASH JOIN IPC Hash/Batch/Loading HASH JOIN 相关 HASH JOIN IPC Hash/Build/Allocating HASH JOIN 相关 HASH JOIN IPC Hash/Build/Electing HASH JOIN 相关 HASH JOIN IPC Hash/Build/HashingInner HASH JOIN 相关 HASH JOIN IPC Hash/Build/HashingOuter HASH JOIN 相关 HASH JOIN IPC Hash/GrowBatches/Allocating HASH JOIN 相关 HASH JOIN IPC Hash/GrowBatches/Deciding HASH JOIN 相关 HASH JOIN IPC Hash/GrowBatches/Electing HASH JOIN 相关 HASH JOIN IPC Hash/GrowBatches/Finishing HASH JOIN 相关 HASH JOIN IPC Hash/GrowBatches/Repartitioning HASH JOIN 相关 HASH JOIN IPC Hash/GrowBuckets/Allocating HASH JOIN 相关 HASH JOIN IPC Hash/GrowBuckets/Electing HASH JOIN 相关 HASH JOIN IPC Hash/GrowBuckets/Reinserting HASH JOIN 相关 HASH JOIN IPC LogicalSyncData 等待逻辑复制远程服务发送数据,用于初始表同步 逻辑复制 IPC LogicalSyncData 等待逻辑复制的远程服务器发送用于初始表                   同步的数据        逻辑复制 IPC LogicalSyncStateChange 等待逻辑复制远程服务改变状态 逻辑复制 IPC LogicalSyncStateChange 等待逻辑复制的远程服务器更改状态 逻辑复制 IPC MessageQueueInternal 等待其他进程连接到共享消息队列中 并行执行 IPC MessageQueueInternal 等待其他进程被挂接到共享消息队列 并行执行 IPC MessageQueuePutMessage 等待写一条协议消息到共享消息队列中 并行执行 IPC MessageQueuePutMessage 等待把一个协议消息写到一个共享消息队列 并行执行 IPC MessageQueueReceive 等待从共享消息队列中接收字节 并行执行 IPC MessageQueueReceive 等待从一个共享消息队列接收字节 并行执行 IPC MessageQueueSend 等待向共享消息队列发送字节 并行执行 IPC MessageQueueSend 等待向一个共享消息队列中发送字节 并行执行 IPC ParallelBitmapScan 等待并行位图索引扫描初始化 并行执行 IPC ParallelCreateIndexScan 等待并行 CREATE INDEX 工作者完成堆扫描 并行创建索引 IPC ParallelFinish 等待并行查询worker结束计算 并行执行 IPC ParallelFinish 等待并行工作者完成计算 并行执行 IPC ProcArrayGroupUpdate 当事务结束时等待组leader清除transaction id 长事务,并行执行 IPC Promote 等待备用节点升级 备库升级 IPC ReplicationOriginDrop 等待复制源变为非活动状态以被删除 复制槽 IPC ReplicationOriginDrop 等待一个复制源头变得不活跃以便被删除 复制槽 IPC ReplicationSlotDrop 等待复制槽变为非活动状态以被删除 复制槽 IPC ReplicationSlotDrop 等待一个复制槽变得不活跃以便被删除 复制槽 IPC SafeSnapshot 等 待 一 个 用 于 READ ONLY DEFERRABLE 事务的快照,一般在串行事务隔离级别出现 只读事务、串行隔离级别 IPC SyncRep 同步复制时等待远程服务确认 同步复制 Lock advisory 等待获取建议用户锁 并发事务 Lock cstore_freespace 对列存空闲空间加锁 列存储 Lock extend 等待扩展 relation结束 文件扩展,并发写入 Lock filenode 对文件名加锁,文件扩展、TRUNCATE等 并发执行,并发DDL Lock frozenid 等待修改 pg_database.datfrozenxid和 pg_database.datminmxid. VACUUM、磁盘IO性能、数据库配置 Lock object 除了relation外的其他数据库对象(DB,SCHEMA等) DDL操作 Lock page 等待获取relation中的一个页面的锁 热块、SHARED BUFFERS Lock partition 保护分区元数据一致性的串行化等待 DDL操作,并发执行 Lock partition_seq 对分区表的分区加锁 DDL操作,并发执行 Lock relation 等待获得一个关系上的锁 并发执行 Lock speculative token 等待获取推测插入锁 热块、事务并发、热表 Lock subtransactionid 对子事务号加锁 子事务 Lock transactionid 等待一个事务结束 事务并发 Lock tuple 等待获取元组(tuple)锁 热块、事务并发 Lock userlock 等待获取用户锁 用户锁 Lock virtualxid 等待获取虚拟XID锁 并发执行、活跃会话 LWLock AddinShmemInit 等待共享内存中的内存空间管理 共享内存初始化 LWLock AddinShmemInitLock 等待共享内存中的内存空间管理 共享内存初始化 LWLock AlterPortLock 用于保护CN更改注册端口号的操作 修改端口号 LWLock ASPMappingLock 用于管理ASP的hash表的并发访存 活跃会话历史数据 LWLock async 等待async (notify) buffer IO完成 活跃会话、磁盘IO性能 LWLock Async Ctl 用于保护Async buffer 会话交互 LWLock AsyncCtlLock 等待读取或者修改共享通知状态 会话数,并发执行,并发事务 LWLock AsyncQueueLock 等待读取或者修改通知消息 会话数,并发执行,并发事务 LWLock AutoanalyzeLock 自动分析 自动分析 LWLock AutoFile 等待修改postgresql.auto.conf 文件 参数文件修改 LWLock AutoFileLock 等待修改postgresql.auto.conf 文件 参数文件修改 LWLock Autovacuum 等待Autovacuum worker 或者launcher等待读取或者修改 autovacuum worker的当前状态 VACUUM LWLock AutovacuumLock 等待Autovacuum worker 或者launcher等待读取或者修改 autovacuum worker的当前状态 VACUUM LWLock AutovacuumSchedule 等待被选择做vacuum 的表仍然需要 vacuuming的确认信息 VACUUM LWLock AutovacuumScheduleLock 等待被选择做vacuum 的表仍然需要 vacuuming的确认信息 VACUUM LWLock BackendRandomLock 等待生成随机数 随机数生成 LWLock BackgroundWorker 等待读取后者修改后台worker进程的状态 并行执行,后台进程启动,后台进程关闭 LWLock BackgroundWorkerLock 等待读取后者修改后台worker进程的状态 并行执行,后台进程启动,后台进程关闭 LWLock BadBlockStatHashLock 访问坏块统计信息内存数据产生的等待 坏块统计信息 LWLock BarrierLock 确保主备节点达到一致性的屏障机制 集群高可用 LWLock BlockchainVersionLock 在不同节点间传递区块链同步信息 区块链 LWLock BtreeVacuum 等待读取或者修改vacuum相关的B树索引信息 VACUUM,索引 LWLock BtreeVacuumLock 等待读取或者修改vacuum相关的B树索引信息 VACUUM,索引 LWLock buffer_content 等待在DB CACHE中读写数据页 磁盘IO性能、热块、DBCACHE LWLock buffer_io 等待数据页IO完成 磁盘IO性能、检查点、热块 LWLock buffer_mapping 等待将数据块与缓冲池中的缓冲区关联 DBCACHE,热块冲突 LWLock BufferContent 等待在DB CACHE中读写数据页 磁盘IO性能、热块、DBCACHE LWLock BufferContent 等待访问内存中的PAGE DBCACHE,热块冲突 LWLock BufferContentLock 等待访问内存中的PAGE DBCACHE,热块冲突 LWLock BufferIOLock 类似于Oracle的BBW的read by other session DBCACHE,热块冲突 LWLock BufferMapping 等待将数据块与缓冲池中的缓冲区关联 DBCACHE,热块冲突 LWLock BufFreelistLock 会话试图从缓冲区中分配或者释放缓冲区产生的等待 DBCACHE,热块冲突 LWLock BufMapping 大量会话并发房屋shared buffer的HASH表产生的等待 DBCACHE,热块冲突 LWLock BufMappingLock 大量会话并发房屋shared buffer的HASH表产生的等待 DBCACHE,热块冲突 LWLock CacheSlotMappingLock 用于保护CU Cache全局信息 列存 LWLock CaptureViewFileHashLock 开启性能视图采集时,保护哈希表的并发访存 性能采集 LWLock CBMParseXlogLock 控制cbm文件(变更位图文件)的并发访存 变更位图文件访问锁,增量备份 LWLock CheckpointerComm 等待管理fsync 请求 磁盘IO性能,并发写入 LWLock CheckpointerCommLock 等待管理fsync 请求 磁盘IO性能,并发写入 LWLock CheckpointLock 等待执行CKPT 并发事务 LWLock clog 等待CLOG缓冲区的IO操作 事务并发、磁盘IO性能 LWLock CLOG Ctl 控制各个clog分区信息的并发访存 并发事务,并发DML LWLock CLogBufMappingLock 控制共享clog页面映射的并发访存 并发事务,并发DML LWLock CLogControlLock 等待读取或者修改事务状态 并发事务 LWLock CLogTruncationLock 等待执行txid_status 或者将可获得的最老的transaction id赋给它 事务并发、磁盘IO性能、检查点配置 LWLock ClusterRPLock 用于加速集群的CCN中维护的集群负载数据的并发存取控制(新版本已废弃) 集群负载控制 LWLock commit_timestamp 等待 commit timestamp buffer IO操作完成 事务并发、参数配置、磁盘IO性能 LWLock CommitTs 等待 commit timestamp buffer IO操作完成 事务并发、参数配置、磁盘IO性能 LWLock CommitTsBuffer 为一个commit timestamp SLRU BUFFER等待IO完成 事务并发、参数配置、磁盘IO性能 LWLock CommitTsControlLock 等待读取或者修改事务提交时间戳 事务提交,页控制相关,DB CACHE,并发事务, LWLock CommitTsLock 等待读取或者修改事务时间戳的最后值集合 事务提交,并发事务, LWLock CommitTsSLRU 等待访问commit timestamp SLRU CACHE 事务并发、参数配置、磁盘IO性能 LWLock ConsumerStateLock 用于时序consumer工作状态更新 时序数据压缩 LWLock ControlFile 等待读取或者修改控制文件,或者创建一个新的WAL文件 DML,并发写入,磁盘IO性能 LWLock ControlFileLock 等待读取或者修改控制文件,或者创建一个新的WAL文件 DML,并发写入,磁盘IO性能 LWLock CSNBufMappingLock 控制共享csnlog页面映射的并发访存 全局事务,并发事务 LWLock CSNLOG Ctl 控制各个csnlog分区信息的并发访存 全局事务,并发事务 LWLock CsnMinLock 控制csn min信息的并发访存 并发事务,MVCC LWLock CStoreColspaceCacheLock 用于保护列存表的CU空间分配 列存储缓冲 LWLock CStoreCUCacheSweepLock 用于列存CU Cache循环淘汰 列存储缓冲 LWLock CUSlotListLock 用于存储列存储分布表的数据分布信息,便于为优化器编译提供数据 列存储、SQL解析 LWLock DataCacheLock 列存模式下CU的并发修改锁 列存储,DML LWLock DataFileIdCacheLock 列存模式下CU的并发修改锁 列存储,DML LWLock DataSyncRepLock 用于在主备复制时保护数据页同步信息 DML,并发事务、集群同步 LWLock DelayDDLLock 串行化DDL操作的锁 并发DDL LWLock DeleteCompactionLock VACUUM FULL时需要申请的锁 VACUUM LWLock DeleteConsumerLock SQL执行过程中进行消费者端操作时需要的锁等待。分布式执行、并行执行等都会产生消费者端操作 分布式执行,并行执行 LWLock DfsConnectorCacheLock 用于保护缓存HDFS连接的句柄的全局哈希表 hdfs LWLock DfsSpaceCacheLock 用于控制HDFS表导入时文件ID单调递增 hdf、数据导入 LWLock DfsUserLoginLock 用于保护HDFS用户信息的全局链表 hdfs、用户登录 LWLock DnUsedSpaceHashLock DN节点统计使用空间的排他锁,避免相同的统计任务冲突 DN节点、空间使用统计 LWLock DoubleWriteLock 保护双写缓冲的闩锁 脏块写 LWLock dummyServerInfoCacheLock 用于保护缓存加速集群连接信息的全局哈希表 登录、查询连接信息 LWLock DWSingleFlushFirstLock Dn节点CKPT增量刷脏块 CKPT增量刷脏块 LWLock DWSingleFlushPosLock Dn节点刷新脏块 CKPT增量刷脏块 LWLock DWSingleFlushWriteLock Dn节点刷新脏块 CKPT增量刷脏块 LWLock DynamicSharedMemoryControl 等待读取或者修改动态共享内存状态 动态共享内存分配、释放 LWLock DynamicSharedMemoryControlLock 等待读取或者修改动态共享内存状态 动态共享内存分配、释放 LWLock ExtensionConnectorLibLock 连接池建立时加载动态链接库的等待事件 LOGON LWLock FdwPartitionCacheLock 多个并发会话并发访问外部表分区缓冲 外部表并发访问 LWLock FileStatLock 用于保护存储统计文件信息的数据结构 访问文件统计信息 LWLock FullBuildXlogCopyStartPtrLock 保护全量备份时的日志起始点的轻量级锁 全量备份 LWLock GeneralExtendedLock 使用扩展的并发量较大 扩展 LWLock GlobalPrevHashLock 全局前置HASH表操作并发引发,和缓冲、配置信息等全局信息的访问有关 各类缓冲访问 LWLock GlobalSeqLock 并发访问全局序列号引发的等待 序列号 LWLock GlobalWorkloadLock 全局WORKLOAD统计信息的访问 AWR LWLock GPCClearLock 并发清除全局计划缓冲 计划缓冲、SQL解析 LWLock GPCCommitLock 用于保护全局Plan Cache hash表的添加操作 SQL解析 LWLock GPCMappingLock 用于全局Plan Cache缓存管理 SQL解析、高并发执行 LWLock GPCTimelineLock 用于保护全局Plan Cache hash表检查Timeline的操作 SQL解析(已废弃) LWLock GTMHostInfoLock 已废弃 LWLock gtt_shared_ctl 已废弃 LWLock HadrSwitchoverLock 主备故障切换 主备切换 LWLock HypoIndexLock 用于保护假索引的创建和删除 虚拟索引、SQL优化 LWLock InstanceRealTLock 用于保护共享实例统计信息hash表的更新操作 指标采集 LWLock InstanceTimeLock 用于获取实例中会话的时间信息 指标采集、会话数过多 LWLock InstrUserLockId 用户登录登出数据库 用户登录登出 LWLock InstrWorkloadLock 保护负载管理统计信息的内存hash表访问 指标采集 LWLock IOStatLock 保护IO资源统计信息的锁 指标采集 LWLock JobShmemLock 用于定时任务功能中保护定时读取的全局变量 定时任务执行 LWLock LLVMDumpIRLock 用于导出动态生成函数所对应的汇编语言 SQL解析,LLVM LWLock LLVMParseIRLock 用于在查询开始处从IR文件中编译并解析已写好的IR函数 SQL解析,LLVM LWLock lock_manager 在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组 事务并发 LWLock LockFastPath 等待更新进程的FAST PATH LOCK信息 事务并发 LWLock LockManager 在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组 事务并发 LWLock LockMgrLock 在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组 事务并发 LWLock LogicalReplicationSlotPersistentDataLock 用于保护逻辑复制过程中复制槽位的数据 流复制 LWLock LogicalRepWorkerLock 等待逻辑复制的WORKER结束任务 流复制 LWLock LsnXlogChkFileLock 用于串行更新特定结构中记录的主备机的xlog flush位置点,保证主备服务器的数据一致性 流复制 LWLock LWTRANCHE_ACCOUNT_TABLE 控制账户锁定状态hash表的并发读写 安全控制、登录 LWLock MatviewSeqnoLock 物化视图序号锁等待 物化视图操作相关 LWLock MaxPageFlushLsnFileLock 用于保护最大页面刷新LSN文件的并发更新 并发DML LWLock MetaCacheLock 用于保护MetaCache 并发DML,并发解析 LWLock MetaCacheSweepLock 保护元数据循环淘汰 缓冲配置、并发解析 LWLock MPFLLOCK LWLock multixact_member 等待 multixact_member buffer IO操作完成 事务并发,磁盘IO性能 LWLock multixact_offset 等待 multixact offset buffer IO操作完成 事务并发,磁盘IO性能 LWLock MultiXactGen 等待读取或者修改共享组合事务( multixact)状态 并发事务 LWLock MultiXactGenLock 等待读取或者修改共享组合事务( multixact)状态 并发事务 LWLock MultiXactMember Ctl LWLock MultiXactMemberBuffer 为一个multixact SLRU buffer等待IO 并发事务 LWLock MultiXactMemberControlLock 等待读取或者修改组合事务(multixact) 成员映射信息 并发事务 LWLock MultiXactMemberSLRU 等待访问multixact SLRU CACHE 并发事务 LWLock MultiXactOffset Ctl LWLock MultiXactOffsetBuffer 为一个multixact offset SLRU buffer等待IO 并发事务 LWLock MultiXactOffsetControlLock 等待读取或者修改组合事务(multixact) 偏移映射信息 并发事务 LWLock MultiXactOffsetSLRU 等待访问multixact offset SLRU CACHE 并发事务 LWLock MultiXactTruncation 等待清空multixact 信息 并发事务 LWLock MultiXactTruncationLock 等待读取或者截断 multixact 信息 事务并发,大事务 LWLock NGroupMappingLock 对于保护nodegroup哈希表的单个分桶并发修改加锁,用于全局sequence SEQUENCE,分布式 LWLock NodeTableLock 用于保护存放数据库节点信息的共享结构,用于保护存放CN和DN节点信息的共享结构1 集群管理 LWLock NormalizedSqlLock 用于SQL规范化转换 并发解析 LWLock NotifyBuffer 等待Notify buffer的SLRU缓冲区上的IO IPC,IO性能 LWLock NotifyQueue 等待读取或者修改Notify消息 IPC,并发DDL LWLock NotifyQueueTail 等待修改通知消息存储限制 ipc LWLock NotifyQueueTailLock 等待修改通知消息存储限制 ipc LWLock NotifySLRU 等待访问Notify SLRU缓冲 ipc LWLock OBSGetPathLock 用于避免对obs路径的写写并发和读写并发,和对象存储有关 对象存储 LWLock OBSRuntimeLock 用于获取环境变量,如GASSHOME 环境变量 LWLock OidGen 等待分配或者赋予一个 OID 并发DDL LWLock OidGenLock 等待分配或者赋予一个 OID 并发DDL LWLock oldserxid 等待oldserxid buffer IO完成 磁盘IO性能,事务并发 LWLock OldSerXid SLRU Ctl 保护old xids的slru buffer MVCC,并发事务 LWLock OldSerXidLock 等待读取或记录冲突的可序列化事务 事务隔离级别,并发事务 LWLock OldSnapshotTimeMap 等待读取或者修改旧的snapshot控制信息 事务并发,SAVEPOINT LWLock OldSnapshotTimeMapLock 等待读取或者修改旧的snapshot控制信息 事务并发,SAVEPOINT LWLock OperatorHistLock 用于避免并发访问或者修改记录算子级历史数据的全局结构 并发解析,并发执行 LWLock OperatorRealTLock 用于避免并发访问或者修改记录算子级实时数据的全局结构 并发解析,并发执行 LWLock parallel_append 在 Parallel Append 计划执行期间等待选择下一个子计划 并发APPEND写入 LWLock parallel_hash_join 在 Parallel Hash 计划执行期间等待分配或交换一块内存或者更新计数器 并发HASH JOIN LWLock parallel_query_dsa 等待并行查询动态共享内存分配锁 LWLock ParallelAppend 在 Parallel Append 计划执行期间等待选择下一个子计划 并发APPEND写入 LWLock ParallelHashJoin 在 Parallel Hash 计划执行期间等待分配或交换一块内存或者更新计数器 并发HASH JOIN LWLock ParallelQueryDSA 等待并行查询动态共享内存分配锁 并行执行 LWLock PartIdCacheLock 分区表的数量过多或者被访问得过于频繁 分区表 LWLock PartOidCacheLock 分区表的数量过多或者被访问得过于频繁 分区表 LWLock PercentileLock 全局百分位缓冲区争用,全局PercentileBuffer是GaussDB中的一个全局变量,用于存储每个算子的执行时间的百分位数 并发执行,SQL解析 LWLock PerSessionDSA 等待并行查询动态共享内存分配锁 并行执行 LWLock PerSessionRecordType 并行查询中等待匿名记录类型的相关信息(比如CTE) 并行执行 LWLock PerXactPredicateList 并行查询中等待可序列化的对象的谓词锁定产生的等待 并行执行 LWLock PgfdwLock 外部访问引发的等待 外部表 LWLock PGPROCLock 访问进程数组产生的等待 性能监控、并发登录 LWLock PgStatsData 访问统计信息区域的等待 性能监控 LWLock PgStatsDSA 访问统计信息区域的等待 性能监控 LWLock PgStatsHash 访问统计信息区域的等待 性能监控 LWLock PLdebugger PL/PGSQL跟踪 PL/PGSQL跟踪 LWLock PldebugLock PL/PGSQL跟踪 PL/PGSQL跟踪 LWLock PoolerLock 试图从数据库连接处中获取或者释放一个连接引发的等待 并发登录,会话数 LWLock predicate_lock_manager 等待添加或检查谓词锁信息 并发执行 LWLock PredicateLockManager 等待添加或检查谓词锁信息 并发执行 LWLock PredicateLockMgrLock 当一个进程试图访问可序列化事务使用的谓词锁定信息时产生的,为了保护谓词锁定管理器的数据结构 并发执行 LWLock proc 等待读取或者修改快速路径锁的信息 并发锁 LWLock ProcArray 等待获得snapshot或者在会话结束时清理XID,或者查询XID 并发事务 LWLock ProcArrayLock 等待获得snapshot或者在会话结束时清理XID,或者查询XID 并发事务 LWLock ProcXactMappingLock 访问进程数组与事务数组之间的关系产生的等待 并发事务 LWLock PruneDirtyQueueLock 清理脏页队列产生的等待 数据库配置,脏页 LWLock RcvWriteLock 防止并发调用WalDataRcvWrite 流复制 LWLock RelationMapping 等待更新用于存储目录到文件节点映射的关系映射文件 DDL操作 LWLock RelationMappingLock 等待更新用于存储目录到文件节点映射的关系映射文件 DDL操作 LWLock RelCacheInit 等待读写 relation cache初始化文件(pg_internal.init) 磁盘IO性能,数据库中表的数量过多 LWLock RelCacheInitLock 等待读写 relation cache初始化文件(pg_internal.init) 磁盘IO性能,数据库中表的数量过多 LWLock RelfilenodeReuseLock 避免错误地取消已重用的列属性文件的链接 列存储 LWLock replication_origin 等待读取或者修改复制进度 数据库复制 LWLock replication_slot_io 等待复制槽上的IO 数据库复制、磁盘IO性能 LWLock ReplicationOrigin 等待设置、删除或使用复制源 流复制 LWLock ReplicationOriginLock 等待设置、删除或使用复制源 流复制 LWLock ReplicationSlotAllocation 等待分配或者始放一个复制槽 流复制,复制槽 LWLock ReplicationSlotAllocationLock 等待分配或者始放一个复制槽 流复制,复制槽 LWLock ReplicationSlotControl 等待读取或者修改复制槽状态 流复制,复制槽 LWLock ReplicationSlotControlLock 等待读取或者修改复制槽状态 流复制,复制槽 LWLock ReplicationSlotIO 等待复制SLOT上的IO 流复制,复制槽 LWLock ReplicationSlotLock 并发访问复制槽 流复制,复制槽 LWLock ResourcePoolHashLock 等待资源池HASH数据结构,一般是在分配池中连接 并发执行,并发登录 LWLock RestartPointQueueLock 备机恢复性能存在问题 流复制 LWLock RoleIdLock LWLock RoleIdPartLock LWLock RollbackReqHashLock 管理共享内存中存储回滚请求信息的哈希表的并发访存 回滚操作 LWLock RowPageReplicationLock 用于管理行存储的数据页复制,当数据页在复制时,防止被篡改 副本复制 LWLock RPNumberLock 用于加速openGauss的数据库节点对正在执行计划的任务线程的计数 并行执行 LWLock SearchServerLibLock 用于GPU加速场景初始化加载特定动态库时,对读文件操作进行加锁 GPU加速,加载动态链接库 LWLock SegmentHeadPartitionLock 保护段页式segment头部元信息的分区锁 DDL,分区表 LWLock SerialBuffer 等待一个用于存储可串行化事务冲突信息的SLRU缓冲区上的IO IO LWLock SerializableFinishedList 等待访问serializable 事务完成清单 事务隔离级别,并发事务 LWLock SerializableFinishedListLock 等待访问serializable 事务完成清单 事务隔离级别,并发事务 LWLock SerializablePredicateLockList 等待在一个被serializable事务锁锁定的清单上做操作 事务隔离级别,并发事务 LWLock SerializablePredicateLockListLock 等待在一个被serializable事务锁锁定的清单上做操作 事务隔离级别,并发事务 LWLock SerializableXactHashLock 等待检索或者存储serializable事务相关的信息 事务隔离级别,并发事务 LWLock SerialSLRU 等待一个用于存储可串行化事务冲突信息的SLRU缓冲区 IO LWLock SessionHistLock 用于避免并发访问或者修改记录query级历史数据的全局结构 GSP LWLock SessionRealTLock 用于避免并发访问或者修改记录query级实时数据的全局结构 GSP LWLock SharedTidBitmap 并行BITMAP INDEX SCAN时等待共享TID的访问闩锁 并行执行 LWLock SharedTupleStore 并行查询时等待访问数据块 并行执行 LWLock ShmemIndex 等待在共享内存中查找或者分配空间 共享内存操作,并发 LWLock ShmemIndexLock 等待在共享内存中查找或者分配空间 共享内存操作,并发 LWLock SInvalRead 等待从共享失效队列中检索或删除消息 并发SQL LWLock SInvalReadLock 等待从共享失效队列中检索或删除消息 并发SQL LWLock SInvalWrite 等待在共享失效队列中添加消息 并发SQL LWLock SInvalWriteLock 等待在共享失效队列中添加消息 并发SQL LWLock StartBlockMappingLock 用于globalstat从pgstat获取startblockarray等信息 PGSTATE LWLock StreamingEngineConnLock 流引擎连接锁 流引擎 LWLock StreamingEngineExecLock 流引擎执行所 流引擎 LWLock subtrans 等待 subtransaction buffer IO操作完成 事务并发,磁盘IO性能 LWLock SubtransBuffer 等待 subtransaction buffer IO操作完成 事务并发,磁盘IO性能 LWLock SubtransControlLock 等待读取或者修改子事务信息 并发事务,子事务,SAVEPOINT LWLock SubtransSLRU 等待 subtransaction buffer并发访问 事务并发,磁盘IO性能 LWLock SyncPaxosLock 保护paxos同步队列的并发访存 副本复制 LWLock SyncRep 等待读取或更新有关同步复制的信息 流复制,同步复制 LWLock SyncRepLock 等待读取或更新有关同步复制的信息 流复制,同步复制 LWLock SyncScan 等待获取表上扫描的开始位置以便于进行同步扫描 表或索引扫描操作 LWLock SyncScanLock 等待获取表上扫描的开始位置以便于进行同步扫描 表或索引扫描操作 LWLock TablespaceCreate 等待创建或者删除表空间 表空间操作,磁盘IO性能,文件系统 LWLock TablespaceCreateLock 等待创建或者删除表空间 表空间操作,磁盘IO性能,文件系统 LWLock tbm 等待 TBM 共享迭代器锁,一般发生在并行bitmap扫描中,等待TID BITMAP 并发执行、索引扫描 LWLock TDEKeyCacheLock 控制透明加密数据密钥缓存的并发读写 透明加密 LWLock TsTagsCacheLock 用于时序tag缓存管理 时序数据相关 LWLock TwoPhaseState 等待读取或者修改prepared transaction的状态 分布式事务 LWLock TwoPhaseStateLock 等待读取或者修改prepared transaction的状态 分布式事务 LWLock TwoPhaseStatePartLock 两阶段提交相关的轻量级锁等待 两阶段提交相关的轻量级锁等待 LWLock UHeapStatLock 保护ustore统计信息的并发访存 ustore统计信息 LWLock UndoPerZoneLock 保护每个undozone内信息的并发访存 UNDO,USTORE LWLock UndoSpaceLock 保护undospace的并发访存 UNDO,USTORE LWLock UndoZoneLock 保护undozone的并发访存 UNDO,USTORE LWLock UniqueSqlEvictLock 开启Unique SQL回收时,保护哈希表的并发访存 SQL统计信息 LWLock UniqueSQLMappingLock 用于保护uniquesql hash table SQL统计信息 LWLock UnlinkRelHashTblLock 保护共享内存中待删除文件哈希表的并发访存 文件删除 LWLock UspagrpMappingLock LWLock WaitCountHashLock 用于保护用户语句计数功能场景中的共享结构 PGSTAT相关信息统计 LWLock wal_insert 等待将WAL插入缓冲区 事务并发、WALBUFFER LWLock WALBufferInitWait 初始化WAL BUFFER 初始化WAL BUFFER LWLock WALBufMapping 等待替换 WAL 缓冲区中的页面 WAL BUFFER,DML,并发写入 LWLock WALBufMappingLock 等待替换 WAL 缓冲区中的页面 WAL BUFFER,DML,并发写入 LWLock WALFlushWait 等待WAL文件强制刷盘 等待WAL强制刷盘 LWLock WALInitSegment 初始化WAL文件 初始化WAL文件 LWLock WALInsert 用于避免与其它WAL插入操作并发执行 REDO并发,并发DML,并发事务 LWLock WALInsertLock 用于避免与其它WAL插入操作并发执行 REDO并发,并发DML,并发事务 LWLock WALWrite 等待从WAL缓冲区中写数据到磁盘 DML,并发写入,磁盘IO性能 LWLock WALWriteLock 等待从WAL缓冲区中写数据到磁盘 DML,并发写入,磁盘IO性能 LWLock WALWritePaxosLock 保护向paxos复制组件写wal日志的并发顺序 集群副本复制 LWLock WorkloadCGroupHashLock 用于避免并发访问或者修改Cgroup信息构成的哈希表 负载采集 LWLock WorkloadIoStatHashLock 用于避免并发访问或者修改用于统计当前数据库节点的IO信息的哈希表 负载采集 LWLock WorkloadIOUtilLock 用于保护记录iostat,CPU等负载信息的结构 负载采集 LWLock WorkloadNodeGroupLock 用于避免并发访问或者修改内存中的nodegroup信息构成的哈希表 负载采集 LWLock WorkloadRecordLock 用于避免并发访问或修改在内存自适应管理时对数据库主节点收到请求构成的哈希表 负载采集 LWLock WorkloadSessionInfoLock 保护负载管理session info内存hash表访问 负载采集 LWLock WorkloadStatHashLock 用于避免并发访问或者修改包含数据库主节点的SQL请求构成的哈希表 负载采集 LWLock WorkloadUserInfoLock 用于避免并发访问或修改负载管理的用户信息哈希表 负载采集 LWLock WrapLimitsVacuum 等待修改multixact消耗和transaction id的限制 事务并发,磁盘IO性能,VACUUM、维护WORKER配置 LWLock WrapLimitsVacuumLock 等待修改multixact消耗和transaction id的限制 事务并发,磁盘IO性能,VACUUM、维护WORKER配置 LWLock XactBuffer 等待更改事务状态数据,事务状态管理器性能有问题或者IO有问题时会出现该等待 并发事务,io性能 LWLock XactSLRU 等待更改事务状态数据,事务状态管理器性能有问题时会出现该等待 并发事务 LWLock XactTruncation 更新事务状态时的等待,出现在清理过期XID,CKPT等 并发事务,VACUUM LWLock XidGen 等待生成事务XID 并发事务 LWLock XidGenLock 等待生成事务XID 并发事务 LWLock XlogRemoveSegLock 保护Xlog段文件的回收操作 并发事务,WAL配置 STATUS acquire lock 申请锁 申请锁 STATUS acquire lwlock 申请轻量级锁 申请轻量级锁 STATUS analyze 分析操作 表分析操作 STATUS cancel query 取消某连接上正在执行的SQL语句 取消某连接上正在执行的SQL语句 STATUS create index 索引创建 索引创建 STATUS flush data 等待向网络中nodename指定节点的plevel对应线程发送数据。如果状态包含phase信息,则可能的阶段状态为wait quota,即当前通信流正在等待quota值 集群同步 STATUS get conn 获取到其他节点的连接 获取到其他节点的连接 STATUS HashAgg - build hash HASH JOIN HASH JOIN STATUS HashAgg - write file HASH JOIN HASH JOIN STATUS HashJoin - build hash HASH JOIN HASH JOIN STATUS HashJoin - write file HASH JOIN HASH JOIN STATUS HashSetop - build hash HASH JOIN HASH JOIN STATUS HashSetop - write file HASH JOIN HASH JOIN STATUS Material 物化视图操作 物化视图操作 STATUS Material - write file 物化视图操作 物化视图操作 STATUS NestLoop NESTED LOOP表连接 NESTED LOOP表连接 STATUS pooler create conn 等待pooler建立连接,当前正在与nodename                   指定节点建立连接,且仍有N个连接等待建                   立        等待pooler建立连接 STATUS reset cmd STATUS set cmd 当前节点上执行SET命令 在连接上执行SET/RESET/TRANSACTION                   BLOCK LEVEL PARA SET/SESSION LEVEL                   PARA SET,当前正在nodename指定节点上执                   行。        STATUS Sort 排序操作 排序操作 STATUS Sort - write file 物理排序操作中的文件写入 物理排序操作中的文件写入 STATUS stop query 停止某连接上正在执行的查询 停止某连接上正在执行的查询 STATUS stream get conn 初始化stream flow时,等待与nodename节点的consumer对象建立连接,且当前有N个待建连对象 流复制 STATUS synchronize quit stream plan结束时,等待stream线程组内的线程统一退出 流复制 STATUS vacuum VACUUM操作 VACUUM操作 STATUS vacuum full 全量VACUUM操作 全量VACUUM STATUS wait active statement 等待作业执行,正在资源负载管控中 资源管理 STATUS wait cmd 等待完成读取网络通信包 等待完成读取网络通信包 STATUS wait data sync 等待完成数据页到备机的同步 流复制 STATUS wait data sync queue 等待把行存的数据页或列存的CU放入同步队列 流复制 STATUS wait io 等待IO 等待IO STATUS wait memory 等待内存获取 流复制 STATUS wait node 等待接收与某节点的连接上的数据,当前正在等待nodename节点plevel线程的数据,且仍有N个连接的数据待返回 流复制 STATUS wait pooler abort conn 等待pooler完成终止连接 等待pooler完成终止连接 STATUS wait pooler clean conn 等待pooler完成清理连接 等待pooler完成清理连接 STATUS wait pooler get conn 等待pooler完成获取连接 等待pooler完成获取连接 STATUS wait producer ready 初始化stream flow时,等待每个producer都准备好,当前正在等待nodename节点plevel对应线程的producer对象准备好,且仍有N个producer对象处于等待状态 流复制 STATUS wait reserve td ustore itl等待 ustore itl等待 STATUS wait stream group destroy 流复制 流复制 STATUS wait sync consumer next step Stream算子等待消费者执行 流复制 STATUS wait sync producer next step Stream算子等待生产者执行 流复制 STATUS wait transaction sync 等待xid指定事务同步 流复制 STATUS wait wal sync 等待特定LSN的wal log完成到备机的同步 流复制 Timeout BaseBackupThrottle 在基础备份时等待限流 备份 Timeout PgSleep 进程处于 pg_sleep等待 Timeout RecoveryApplyDelay 在恢复时因为WAL延迟到达产生的等待 实例恢复  |