PostgreSQL 源码解读(116)- MVCC#1(获取快照#1)
本节介绍了PostgreSQL获取事务快照的主实现逻辑,相应的实现函数是GetTransactionSnapshot。 一、数据结构全局/静态变量 /* * Currently registered Snapshots. Ordered in a heap by xmin, so that we can * quickly find the one with lowest xmin,
PostgreSQL DBA(24) - MVCC#4(快照中的xmax)
本节通过源码解释了snapshot中的xmax的具体含义. 一、xmax上一节提到PostgreSQL通过txid_current_snapshot()函数获取快照,格式为xmin : xmax : xip_list,其中xmax应理解为最后已完结事务(COMMITTED/ABORTED)的txid + 1。详见以下PG源码: Snapshot GetSnapshotData(Snapsho
PostgreSQL DBA(23) - MVCC#3(事务快照和隔离级别)
如前所述,PostgreSQL使用一种称为快照隔离Snapshot Isolation (SI)实现并发控制,下面简单介绍PostgreSQL中与之相关的快照和隔离级别等基本概念。注意:1.简单起见,本节暂不讨论事务回滚的情况.2.如无说明,默认的事务隔离级别为READ COMMITTED 一、事务快照事务快照(简称Snapshot)存储所有事务在某个时间点是否处于活动状态(正在进行或尚未启动)
PostgreSQL 定制psql提示符
通过配置.psqlrc文件(linux平台)可定制psql提示符. .psqlrc文件cdvim .psqlrc \set PROMPT1 '%`date +%H:%M:%S` (%n@%M:%>)%/%R%#%x ' \set PROMPT2 '%M %n@%/%R%# ' 样例 [xdb@localhost ~]$ psql -d testdb psql (11.1) Ty
PostgreSQL DBA(22) - MVCC#2(commit log)
Concurrency Control并发控制是一种机制,在并发进行多个事务时维护一致性(Consistency)和隔离性(Isolation),一致性和隔离性是数据库事务ACID(Atomicity, Consistency, Isolation, Durability) 属性中的C和I。多版本并发控制(MVCC)是广泛使用的并发控制技术,其主要优势是读不会阻塞写,而写也不会阻塞读。MVCC有很
PostgreSQL 源码解读(115)- 后台进程#3(checkpointer进程#2)
本节简单介绍了PostgreSQL的后台进程:checkpointer,主要分析CreateCheckPoint函数的实现逻辑。 一、数据结构CheckPointCheckPoint XLOG record结构体. /* * Body of CheckPoint XLOG records. This is declared here because we keep * a copy
PostgreSQL DBA(21) - MVCC#1(Multi Version Heap Tuple)
Concurrency Control并发控制是一种机制,在并发进行多个事务时维护一致性(Consistency)和隔离性(Isolation),一致性和隔离性是数据库事务ACID(Atomicity, Consistency, Isolation, Durability) 属性中的C和I。多版本并发控制(MVCC)是广泛使用的并发控制技术,其主要优势是读不会阻塞写,而写也不会阻塞读。MVCC有很
PostgreSQL 源码解读(114)- 后台进程#2(checkpointer进程#1)
本节简单介绍了PostgreSQL的后台进程:checkpointer,包括相关的数据结构和CheckpointerMain函数。一、数据结构CheckPoint CheckPoint XLOG record结构体./* * Body of CheckPoint XLOG records. This&nb
PostgreSQL 跟踪checkpointer出现死锁