当前位置: 首页 > article >正文

【0403】Postgres内核 检查(procArray )给定 db 是否有其他 backend process 正在运行

文章目录

  • 1. 给定 db 是否有其他 backend 正在运行
    • 1.1 获取 allPgXact[] 索引
      • 1.1.1 MyProc 中 databaseId 初始化实现
    • 1.2 allProcs[] 中各 databaseId 判断

1. 给定 db 是否有其他 backend 正在运行

CREATE DATABASE 语句创建用户指定 数据库名(database-name)时候, 会通过 procArray 检查, 检查给定数据库中是否有其他后端正在运行。

该过程由函数 CountOtherDBBackends() 完成。对于该函数:

  • 函数原型
    • bool CountOtherDBBackends(Oid databaseId, int *nbackends, int *nprepared)
      • databaseId 代表CREATE DATABASE 创建时,使用的模板数据库(默认情况下,为 template1, 其 Oid = 1
  • 函数作用
    • 如果数据库中还有其他后端进程,我们将最多等待 5 秒钟让它们退出。会向Autovacuum 后端进程发送 SIGTERM 信号以促使它们尽早退出,但普通用户后端进程则只是等待其自行退出。
    • 当前的后端总是被忽略;如果有必要,调用者应自行检查当前后端是否使用了给定的数据库。
    • 如果数据库中&#

http://www.kler.cn/a/538003.html

相关文章:

  • IBM服务器刀箱Blade安装Hyper-V Server 2019 操作系统
  • Axure原型图怎么通过链接共享
  • 网络协议课程笔记上
  • 黑马React保姆级(PPT+笔记)
  • 【自开发工具】SQLSERVER的ImpDp和ExpDp工具汇总
  • 爬取豆瓣电影 Top250 数据的脚本及调整方法
  • 车机音频参数下发流程
  • H2模拟mysql的存储过程
  • 视频采集卡接口
  • python脚本实现windows电脑内存监控内存清理(类似rammap清空工作集功能)
  • “现代C++ RAII库:设计、优化及实战应用“
  • Nacos + OpenFeign +Gateway
  • NO.9十六届蓝桥杯备战|4道习题|cin和cout(C++)
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-tal.py
  • 百科词条创建审核不通过的原因有哪些?
  • RISCV基础知识
  • Matlab机械手碰撞检测应用
  • kubeadm构建k8s源码阅读环境
  • JAVA—SpringBoot—Vue篮球联赛校园管理系统
  • 激活函数篇 02 —— 双曲正切函数tanh
  • Eclipse IDE 快捷键大全
  • 镭速大文件传输软件如何邀请他人上传文件
  • 树和二叉树_6
  • Java序列化与反序列化:原理、实践与陷阱
  • Swift语言的云计算
  • 混合专家模型(MoE)概述:智能计算的新范式