【0258】pg内核支持的所有 inval messages 类型

2024-02-07 10:20

本文主要是介绍【0258】pg内核支持的所有 inval messages 类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. inval messages类型

pg内核中,共支持几种类型的共享无效消息:

  • (1)使特定catcache中的特定元组无效
  • (2)使给定系统目录中的所有catcache项无效
  • (3)使特定逻辑关系表的relcache条目无效
  • (4)使所有relcache项无效
  • (5)使特定物理关系表的smgr缓存项无效
  • (6)使给定数据库的映射关系表映射无效
  • (7)使可能用于扫描给定关系表的任何保存的快照失效

如果需要,可以添加更多类型。消息类型由消息结构的第一个“int8”字段标识。0或正值表示一个特定的catcache无效消息 (也用作catcache ID字段)。负值标识其他消息类型,如下面的代码所示。

Catcache inval事件最初是通过检测系统目录中的元组插入、更新和删除来驱动的(请参阅CacheInvalidateHeapTuple)。更新可以生成两个inval事件,一个用于旧元组,另一个用于新元组,但如果元组的哈希键不变,则会减少为一个事件。请注意,inval事件本身实际上并没有说明元组是被插入还是被删除。此外,由于我们只传输哈希密钥,因此由于哈希密钥的偶然匹配,存在不必要的无效风险。

请注意,有些系统目录上有多个缓存(具有不同的索引)。在这样的目录中检测到元组无效时,
必须为其每个缓存生成单独的catcache inval消息,因为哈希键通常是不同的。

Catcache、relcache和快照失效是事务性的,因此在提交时被发送到其他后端。在生成后端内部,
它们也在CommandCounterIncrement中进行处理,以便同一事务中的后续命令可以看到新状态。
生成后端还必须在中止时处理它们,以清除从不再有效的条目加载的任何缓存状态。

SMGR和关系映射表失效是非事务性的:它们在底层文件发生更改时立即发送。

这篇关于【0258】pg内核支持的所有 inval messages 类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687399

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

C#实现获得某个枚举的所有名称

《C#实现获得某个枚举的所有名称》这篇文章主要为大家详细介绍了C#如何实现获得某个枚举的所有名称,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... C#中获得某个枚举的所有名称using System;using System.Collections.Generic;usi

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT