摘要:
1)执行过程 2)整个书结构 3)smallPython 源码复制于https://blog.csdn.net/wangyuquanliuli/article/details/8654478 350行 阅读全文
摘要:
1)8种级别锁 2)互斥关系 转自熊灿灿的资料 3)使用示例 参考https://shiroyasha.io/understanding-postgresql-locks.html session1: BEGIN;ALTER TABLE users ADD age int; session2: SE 阅读全文
摘要:
【参考】 https://zhuanlan.zhihu.com/p/72543802 【调用点】 参数: slock_t mutex; typedef unsigned int slock_t; 【逻辑】 1)加锁逻辑 1.1)当次数大于100,随机睡1ms-1s逻辑 2)放锁逻辑 阅读全文
摘要:
【测试】 1)第一个session执行insert语句 2)第二个session执行select 停在这里 睡在这个对象上 【如何唤醒】 参考https://zhuanlan.zhihu.com/p/73517810 阅读全文
摘要:
参考https://www.modb.pro/db/11330 【测试sql】 1)创建表 create table account ( id int, first_name varchar(100), last_name varchar(100), address varchar(100), mo 阅读全文
摘要:
【环境】 recovery_parse_workers=2recovery_redo_workers=2hot_standby=off 特性理解: 1)让多线程并行回放 2)事务和heap分别并行 3)需要等待的(如checkpoint),做同步逻辑 【调试】 1)启动13个线程,根据rmid分发到 阅读全文
摘要:
【参考】 https://www.cnblogs.com/flying-tiger/p/8414374.html 先写最简单的读写基本流程 【流程】 session1:drop table t1; session2:select * from t1; 1)session2进程读消息 单独的drop大 阅读全文
摘要:
1)整体内容 2)实际调试示例 插入一行数据 select * from t1; 2.1)调用栈 2.2)函数内逻辑 csn = TransactionIdGetCommitSeqNo(xid, false, true, false, snapshot); #=2 if (csn < snapsho 阅读全文
摘要:
【参考】 https://www.interdb.jp/pg/pgsql06.html#_6.1. 【背景】 1)pg8.4引入,为了降低vacuum的代价 page的vm可见性决定了vacuum是否跳过这个page 2)pg9.6加强了vm的功能,包含了tuples是否被frozen的信息 【fr 阅读全文