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

【0404】Postgres内核 实现分配一个新的 Object ID (OID)

文章目录

  • 1. 分配一个新 Object ID (OID)
    • 1.1 ShmemVariableCache 中 nextOid
    • 1.2 写一个 NEXTOID log record

1. 分配一个新 Object ID (OID)

Postgres内核中分配一个新的 Oid 是由函数 GetNewObjectId() 实现。该函数声明于 transam.h,实现于 varsup.c 源文件。

对于 GetNewObjectId() 函数:

  • 函数原型
    • Oid GetNewObjectId(void)
  • 函数说明
    • 分配一个新的对象标识符(OID)
    • 对象标识符(OIDs)由整个集群范围的计数器生成。由于其宽度仅为 32 位,计数器最终会发生回绕,因此, 除非采取预防措施确保其唯一性,否则假定它们是唯一的是不明智的。因此,此例程通常不应被直接使用。 唯一应直接调用的应该是 catalog/catalog.c 中的 GetNewOidWithIndex() 和 GetNewRelFileNode() 。

函数源码实现:

Oid
GetNewObjectId(void

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

相关文章:

  • 【vscode+latex】实现overleaf本地高效编译
  • SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现
  • PlantUml常用语法
  • 重生之我要当云原生大师(十四)分析和存储日志
  • 元宇宙中的隐私与数据保护:Facebook 的挑战与机遇
  • qt部分核心机制
  • Python如何实现名称为”000-“~“999-”文件的自动生成,且后缀名可以自定义
  • 基于SeaTunnel同步数据
  • 使用Jenkins实现鸿蒙HAR应用的自动化构建打包
  • COBOL语言的云计算
  • 基于HTML、CSS 和 JavaScript 开发个人读书类网站
  • uniapp中使用uCharts折线图X轴数据间隔显示
  • 基于python多线程多进程爬虫的maa作业站技能使用分析
  • Python----Python高级(网络编程:网络基础:发展历程,IP地址,MAC地址,域名,端口,子网掩码,网关,URL,DHCP,交换机)
  • 【爬虫开发】爬虫开发从0到1全知识教程第13篇:scrapy爬虫框架,介绍【附代码文档】
  • <tauri><rust><GUI>基于rust和tauri,在已有的前端框架上手动集成tauri示例
  • RabbitMQ 消息顺序性保证
  • 多线程下jdk1.7的头插法导致的死循环问题
  • 学JDBC 第二日
  • OSwatch性能分析工具部署
  • 为什么要学习AI/机器学习
  • 2025年02月07日Github流行趋势
  • vnev/Scripts/activate : 无法加载文件
  • 深度学习之DCGAN算法深度解析
  • 微服务组件LoadBalancer负载均衡
  • GnuTLS: 在 pull 函数中出错。 无法建立 SSL 连接。