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

【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.lryc.cn/news/534166.html

相关文章:

  • [数据结构] Set的使用与注意事项
  • amis组件crud使用踩坑
  • 离线统信系统的python第三方库批量安装流程
  • 韶音科技:消费电子行业售后服务实现数字化转型,重塑客户服务体系
  • 神经网络|(九)概率论基础知识-泊松分布及python仿真
  • 114,【6】攻防世界 web wzsc_文件上传
  • 【Kubernetes的SpringCloud最佳实践】有Service是否还需要Eureka?
  • SQL最佳实践(笔记)
  • vue3学习四
  • C# LiteDB 使用教程
  • Python Pandas(3):DataFrame
  • 使用通义灵码 ai编程 来提高开发效率
  • 【OpenCV】入门教学
  • 大数据项目4:基于spark的智慧交通项目设计与实现
  • netcore openTelemetry+prometheus+grafana
  • Spring Boot接入Deep Seek的API
  • Git、Github和Gitee完整讲解:丛基础到进阶功能
  • MyBatis的工作流程是怎样的?
  • Maven 安装配置(完整教程)
  • 分享如何通过Mq、Redis、XxlJob实现算法任务的异步解耦调度
  • 发布:大彩科技DN系列2.8寸高性价比串口屏发布!
  • 集合类不安全问题
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之上传头像和新增收货地址
  • AI知识库和全文检索的区别
  • 20240817 联想 笔试
  • IntelliJ IDEA 安装与使用完全教程:从入门到精通
  • 【JVM详解一】类加载过程与内存区域划分
  • 250207-MacOS修改Ollama模型下载及运行的路径
  • Win10 部署llama Factory 推荐教程和遇到的问题
  • 如何在Android Studio中开发一个简单的Android应用?