-
postgresql数据库 proclock结构体中 tag 字段 的作用推导:
一:tag 字段 的作用推导一: 在 PostgreSQL 的 C 语言源码中,PROCLOCK 结构体的第一行定义,就是一个名为 tag 的嵌套结构体(类型为 PROCLOCKTAG)。 分 4 步极其冷酷地把这个 tag 字段在底层内存寻址中的绝对统治力推导出来! 第一步绝境:茫茫内存中的“寻人启事”(哈希表的寻址危机) 【物理绝境 ...
-
逻辑推导出 holdMask 字段 的作用
全局的 LOCK 结构体里有一个 grantMask,它记录了“当前这张表被所有人加上了哪些锁”。 既然全局已经有了状态指示灯,为什么在 PROCLOCK(人与物的契约)结构体内部,还要单独设计一个 holdMask(持有掩码) 字段? 我们继续用**“假设没有它会发生什么灾难”**的底层逻辑推演法,分 4 步把它在 C 语言级别的绝对 ...
-
proclock结构体中 releaseMask 字段的作用,逻辑推演
在工业级数据库内核的真实 C 语言源码(src/backend/storage/lmgr/lock.c 与 README)中,releaseMask 的真正物理使命, 是为了在事务提交(COMMIT)的瞬间,利用“无锁化(Lock-Free)”的思想,解决 10000 把锁同时释放时引发的 LWLock(轻量级闩锁)雪崩争用灾难。 我们彻底抛弃表象,直接下潜到多核 CPU 的高速缓 ...
-
资源哈希表 和 关系哈希表 是同时生成的吗??
要回答这个问题,我们必须在物理层面上,把“哈希表本身(容器)”和“哈希表里的结构体(数据)”彻底切分开来。 直接给出精确结论: 作为“容器”的两张全局哈希表,是 100% 同时生成的;但里面用来装数据的 LOCK 和 PROCLOCK 结构体,存在着极其严格的“先后物理因果顺序”,绝对不是同时生成的! 我们按数据库的 ...