- 博客(37)
- 资源 (2)
- 收藏
- 关注
原创 如何识别pg一个指针所属内存上下文
摘要:本文介绍了在PostgreSQL内核开发中调试内存和指针问题的方法,重点分析了palloc函数的内存分配机制。文章详细解读了AllocChunkData和AllocSetContext结构体,解释了palloc返回地址的偏移特性,并提出了通过回退指针获取内存上下文信息的调试方法。通过示例代码演示了如何在实际调试中查看内存上下文,包括创建新内存上下文并切换回原上下文进行验证。该方法为定位内存相关coredump问题提供了有效手段。
2025-07-31 10:52:24
377
原创 PostgreSQL缓冲区管理器
PostgreSQL缓冲区管理器(Buffer Manager)是数据库内存管理的核心组件,负责将磁盘数据页缓存到共享内存中。本文解析了其三层架构:1) 缓冲表层通过哈希表快速定位页面;2) 描述符层维护页面元数据状态;3) 缓冲池层存储实际数据页。重点阐述了页面访问的三种场景(命中/未命中置换/大表特殊处理)和时钟扫描置换算法,并介绍了检查点和后台写入器对脏页的不同处理策略。通过shared_buffers参数可配置缓冲区大小,文中还提供了监控缓存命中率的SQL语句。缓冲区管理有效减少了磁盘I/O,显著提
2025-07-29 15:13:52
644
原创 PostgreSQL锁机制详解:从并发控制到死锁检测
PostgreSQL锁机制详解:从并发控制到死锁检测 摘要: PostgreSQL采用两阶段锁(2PL)和MVCC两种机制实现并发控制。锁系统分为三个层次:自旋锁(SpinLock)用于短临界区,轻量锁(LWLock)保护共享内存结构,常规锁(RegularLock)管理数据库对象。常规锁细分为8个等级,涵盖从弱到强的不同锁模式,通过锁相容性矩阵控制并发访问。文章详细解析了各类锁的实现原理,包括自旋锁的原子操作、轻量锁的共享/排他模式转换,以及常规锁的快速路径优化和死锁检测机制。死锁检测采用图论方法,识别等
2025-07-29 14:56:38
1038
原创 x86_64汇编
摘要:本文详细介绍了x86_64架构的寄存器体系和汇编指令。x86_64包含16个通用寄存器(如rax、rbx),每个寄存器支持不同位宽操作;标志寄存器rflags记录运算状态;指令指针rip控制程序流程;段寄存器在64位模式下功能简化。文章分类列举了数据传输、算术逻辑、控制流等核心汇编指令(如mov、add、jmp等),并解释了Linux下gcc编译流程(预处理、编译、汇编、链接)。最后概述了ELF文件各段(.text、.data等)的功能及存储内容,为理解x86_64汇编和程序执行机制提供了系统性的参考
2025-07-29 14:37:40
532
原创 数据库内核研发学习之路(五)创建postgres系统表
本次的任务就是新增一张系统表pg_test,这张表有三个字段,oid、id、ipaddr,字段所属的类型分别为Oid、int32、text,并且初始化一些值,实现能够在psql命令中使用select 命令查询得到。
2024-07-20 17:06:28
616
1
原创 数据库内核研发学习之路(四)创建postgres拓展函数
紧接上章,熟悉postgres的都知道,它支持很多拓展,例如gist拓展、pg_top拓展之类,这些拓展是postgres拓展功能重要方法之一,下面就以例子实现拓展函数。
2024-07-20 15:24:03
823
原创 Ubuntn 22.04 网络配置、代理配置、换源全家桶
Ubuntu网络配置,虚拟机网络配置,Ubuntu netplan网络配置,Ubuntu防火墙关闭打开,Ubuntu换源、Ubuntu查看删除代理...
2024-01-13 01:55:47
10051
3
原创 C++中特殊的关键字(一)
本文总结了C/C++中常用的关键字的场景,包括const关键字,static关键字,volatile关键字,restrict关键字。
2023-12-22 17:13:38
1130
原创 c++类与对象
博客总结了关于c++类的相关知识,包括类的定义,类的三种成员修饰符的区别,类的构造函数,拷贝构造函数,析构函数,友元函数,内联函数,this指针,静态成员变量和静态成员函数。
2023-12-20 14:31:25
864
1
原创 李宏毅《机器学习》笔记打卡第二天
Regressionintput ===>function===>outputOur goal is find a best function.Example Application====>f(宝可梦)===>cp after evolution (y)A set of function :there will have many function:......Train data: input(x) output(y)...
2021-11-17 21:18:06
957
原创 李宏毅机器学习笔记打卡第一天
机器是人类设定好的天生本能,永远无法超越创造者。让机器具有学习的能力(write the program for learning)语音辨识、图像辨识、playing go......比较之后挑选出最好的function使用这个function进行图像识别...
2021-11-16 00:03:04
345
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人