PostgreSQL 源码解读(258)- PG 14(Improving connection scalability)#10
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“snapshot scalability: Move PGXACT->xmin back to PGPROC.”中的修改以及涉及的相关数据结构。
PostgreSQL 源码解读(257)- PG 14(Improving connection scalability)#9
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中snapmgr.c中的修改以及涉及的相关数据结构。
PostgreSQL 源码解读(256)- PG 14(Improving connection scalability)#8
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中procarray.c中的修改以及涉及的相关数据结构。
PostgreSQL 源码解读(255)- PG 14(Improving connection scalability)#7
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中procarray.c中的修改以及涉及的相关数据结构。
PostgreSQL DBA(179)-invalid memory alloc request size XXX
问题描述客户反馈在查询bytea字段时,报错: atlasdb=# select * from t_bytea; 2020-12-25 15:28:18.804 CST [1884] ERROR: invalid memory alloc request size XXX 2020-12-25 15:28:18.804 CST [1884] STATEMENT: select * fro
PostgreSQL 源码解读(254)- PG 14(Improving connection scalability)#6
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中walreceiver.c、vacuum.c、analyze.c、xlog.c、nbtxlog.c的修改以及涉及的相关数据结构。
PostgreSQL 源码解读(253)- PG 14(Improving connection scalability)#5
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中vacuumlazy.c、indexam.c、nbtpage.c、nbtree.c、nbtxlog.c和spgvacuum.c中的修改以及涉及的相关数据结构。
PostgreSQL 源码解读(252)- PG 14(Improving connection scalability)#4
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中pruneheap.c中的修改以及涉及的相关数据结构。
PostgreSQL 源码解读(251)- PG 14(Improving connection scalability)#3
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中heapam_visibility.c中的修改以及涉及的相关数据结构。
PostgreSQL 源码解读(250)- PG 14(Improving connection scalability)#2
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中heapam_handler.c中的修改以及涉及的相关数据结构。
PostgreSQL 源码解读(249)- PG 14(Improving connection scalability)#1
PostgreSQL 14在MVCC上面有所增强,以保证在大批量客户端连接场景下性能不会出现显著下降(详细可参见参考资料中的链接)。本节介绍了提交记录“Don't compute global horizons while building snapshots.”中heapam.c中的修改以及涉及的相关数据结构。
中国文化厉害在哪?
中国文化厉害在哪?
前沿科技:量子计算
量子计算的理论基础是量子力学,因此理解量子计算之前有必要了解量子力学。什么是量子?物理学家费曼曾经说过:“万物是原子组成的,原子都具有波粒二象性” ,量子从这句话引申出来,那就是:量子就是波粒二象性。二象性说的是一个东西同时拥有两种性质,所有的粒子,除了具有点粒子的性质之外,还同时具有波的性质,这就叫做波粒二象性。有一个方程同时具有这两个视角,它就是薛定谔方程。 什么是量子叠加态?从波的角度来看
PostgreSQL 并发控制机制(4):RR隔离级别,MySQL vs PostgreSQL
并发控制是多个事务在并发运行时,数据库保证事务一致性(Consistency)和隔离性(Isolation)的一种机制。主流商用关系数据库使用的并发控制技术主要有三种:严格两阶段封锁(S2PL)、多版本并发控制(MVCC)和乐观并发控制(OCC)。 本文是PostgreSQL并发控制的第4篇,介绍了在RR(Repeatable Read,可重复读)隔离级别下MySQL和PostgreSQL的异同。
PostgreSQL 并发控制机制(3):基于时间戳的并发控制
本文介绍了基于时间戳的并发控制,包括常规基于时间戳的并发控制、多版本基于时间戳锁的并发控制、与时间戳相关的Google Percolator工程实践和openGauss对PostgreSQL SI的优化改进等。
PostgreSQL 并发控制机制(2):表级锁和行级锁
在工程实践上,PostgreSQL使用了MVCC的一种变体快照隔离SI结合封锁技术进行并发控制,本文介绍了锁相关的部分理论以及PostgreSQL的工程实践,最后结合案例对PostgreSQL的表级锁和行级锁进行了相关介绍。
PostgreSQL 并发控制机制(1):隔离级别
并发控制是多个事务在并发运行时,数据库保证事务一致性(Consistency)和隔离性(Isolation)的一种机制。主流商用关系数据库使用的并发控制技术主要有两种:严格两阶段封锁(S2PL)和多版本并发控制(MVCC)。 PostgreSQL使用了多版本并发控制技术的一种变体:快照隔离Sanpshot Isolation(简称SI)。通过SI,PostgreSQL提供了与ANSI SQL标准相应的四个隔离级别,但实现与标准定义有一些差异。
快照隔离的理论学习
本节简单介绍了快照隔离的理论框架。
并发相关的现象和异常(Phenomena AND Anomalies)
本节简单介绍了与并发相关的现象(Phenomenon)和异常(Anomalies)。
数据库隔离级别
本节主要介绍了ANSI SQL隔离级别的定义、不足以及其他隔离级别如Cursor Stability、SI等。