随笔分类 - postgres
摘要:【pg】 0)bgwriter进程调用waitlatch (gdb) p set->epoll_fd$1 = 3 1)backend调用setLatch 给bgwriter发sigusr1 2)bgwriter收到信号 往管道里写一个字符,退出信号处理函数 【opengauss】 bgwriter比
阅读全文
摘要:1)设计文档 2)数据结构 3)申请内存 https://www.cnblogs.com/li_shugan/archive/2012/09/12/2677661.html
阅读全文
摘要:【调用栈】 【调用sendFile接口发送文件】 pq_putmessage('d', buf, cnt) 都是直接读文件内容
阅读全文
摘要:【协议流程】 【服务端看接口】 1)SHOW wal_segment_size 2)IdentifySystem 系统标识 timeline wal location databaseName 3)BASE_BACKUP LABEL 'pg_basebackup base backup' NOWAI
阅读全文
摘要:【测试方法】 insert into t1(id) values(1); 杀进程 【dump日志】 【回放逻辑】 1)获取checkpoint点 2)从checkpoint点后循环读record 3)回放 调用栈 4)内部逻辑 【RmgrTable23种类型】
阅读全文
摘要:【测试方法】 insert into t1 select generate_series(1,227);postgres=# insert into t1 select generate_series(1,227); INSERT 0 227文件16KB postgres=# select pg_r
阅读全文
摘要:【结构】 【插入变化】
阅读全文
摘要:【测试方法】 insert into t1(id) values(2); update t1 set id=3; 执行vacuum t1; 【测试结果】 第一行 lp->lp_off :从8128变为8160 【代码入口】 compactify_tuples
阅读全文
摘要:【测试方法】 begin; select 1; 【snapshotData判断字段】 xmin, xmax 【代码】 [当前session] 开启事务后,第一个语句触发创建快照 入口函数:GetTransactionSnapshot 1)先生成快照 2)调用push,放到memoryContex里
阅读全文
摘要:【调用栈】 【业务逻辑】 【数据结构】 【参考】 https://zhuanlan.zhihu.com/p/100424042
阅读全文
摘要:https://blog.csdn.net/cuichao1900/article/details/100394801 ExecVacuum->vacuum->vacuum_rel->heap_vacuum_rel->lazy_scan_heap->lazy_vacuum_index函数的实现逻辑,
阅读全文
摘要: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
阅读全文
摘要:checkpoint主要逻辑 1)获取checkpoint数据,从ShmemVariableCache里读 2)刷12类buff数据到磁盘 3)增加一个做checkpoint的xlog 4)更新controlFile,288字节 5)计算出不需要的segNo,根据文件名删除老的文件 【其他】 1)c
阅读全文
摘要:查询系统字段 select attname, attnum, atttypid::regtype, attisdropped::text from pg_attribute where attrelid = 't1'::regclass; attname | attnum | atttypid |
阅读全文
摘要:1)调用栈 2)主要就是创建了base/db/表名物理文件 base/12057/16387 参考:https://blog.csdn.net/yanzongshuai/article/details/107679206
阅读全文
摘要:测试方法 1)插入100条数据 create table t1(id int,c1 varchar(50)); insert into t1 select generate_series(1,100),'#abcd#'; select count(*) from t1; 2)事务1 begin; s
阅读全文
摘要:wal文件结构 PG使用无符号64bit整型(uint64)作为日志文件的寻址空间,理论上来说,如果只有一个日志文件,那么这个事务日志文件的大小最大为2^64Bytes(即16M*1TB=16EB)。为了高效管理事务日志文件,PG把日志文件划分为N个大小为16M(默认值)的WAL segment f
阅读全文
摘要:1)启动主要逻辑 2)一些辅助函数逻辑
阅读全文

浙公网安备 33010602011771号