摘要: 【测试方法】 插入一行数据 session1:开启事务,更新这一行,不提交 session2:select * from t1; 【代码过程】 HeapTupleSatisfiesMVCC函数 1)session1能看到第二行 1.1) 1015行,TransactionIdIsCurrentTra 阅读全文
posted @ 2021-09-20 01:25 stupidstan2019 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 【调用入口】 【整体流程】 1)生成tuple对象 一共28字节 2)找到page和指定行 3)拷贝数据到page里 4)插入wal日志 【数据内容】 图示 【参考】 https://blog.csdn.net/postgres20/article/details/63290072 阅读全文
posted @ 2021-09-19 22:15 stupidstan2019 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 【tuple结构代码】 计算t_bits offset看上去应该是32,结果是23 【相关逻辑】 1) (type*)0 一个 type 类型的NULL指针用这个指针访问结构体内的成员是非法的 2)&(((type*)0)->field)计算 field 的地址 ,编译器不会产生访问 field 的 阅读全文
posted @ 2021-09-19 16:46 stupidstan2019 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 【调用栈】 【业务逻辑】 【数据结构】 【参考】 https://zhuanlan.zhihu.com/p/100424042 阅读全文
posted @ 2021-09-19 10:59 stupidstan2019 阅读(28) 评论(0) 推荐(0) 编辑
摘要: yum install -y cloc cloc oceanbase 1)mysql 273w行头文件 154w行c++文件 其中boost目录 181w行头文件 2)pg11 92w行代码 头文件13w行 polardb,94w行代码,只多2万行 2.1)polardb 3)oceanbase 阅读全文
posted @ 2021-09-12 20:20 stupidstan2019 阅读(496) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/cuichao1900/article/details/100394801 ExecVacuum->vacuum->vacuum_rel->heap_vacuum_rel->lazy_scan_heap->lazy_vacuum_index函数的实现逻辑, 阅读全文
posted @ 2021-09-03 00:17 stupidstan2019 阅读(108) 评论(0) 推荐(0) 编辑
摘要: pg_dump -h 127.0.0.1 -U jiang postgres > databasename.bak psql -h localhost -U jiang -d postgres < databasename.bak databasename.bak底部内容COPY public.t1 阅读全文
posted @ 2021-09-03 00:15 stupidstan2019 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 【整体流程】 预处理(preprocessing) cpp/ gcc -E 编译(compilation) cc1 / gcc -S 汇编(assembly) as 连接(linking) ld 参考 https://zhuanlan.zhihu.com/p/39219541 阅读全文
posted @ 2021-08-29 10:04 stupidstan2019 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 【代码demo】 打印0,3 gcc -S 文件.c的汇编码 【规则】 static局部变量的初始化语句只会执行一次,下次再运行该初始化语句就不会被初始化,但是它可以被多次赋值。 【静态局部变量的特性】 存储位置:处于静态存储区,当用 static 修饰局部变量的时候,它就改变了局部变量的存储位置, 阅读全文
posted @ 2021-08-29 09:58 stupidstan2019 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 1)调用栈及参数 2)整体结构 阅读全文
posted @ 2021-08-27 00:19 stupidstan2019 阅读(36) 评论(0) 推荐(0) 编辑