PostgreSQL 多路并行 xlog 设计
来源:互联网 发布:nginx只允许域名访问 编辑:程序博客网 时间:2024/05/21 07:52
数据库的redo记录了事务的重做信息,它最重要的功能之一是用来恢复数据库,例如当数据库crash后,需要从数据库的一致检查点开始,读取redo并回放。
为了保证事务回放的先后顺序,XLOG是串行的,所以写XLOG时也需要锁的。
为了提高写性能,PostgreSQL使用了xlog buffer来缓解写压力。
在使用了xlog buffer或者XLOG使用了SSD硬盘后,串行的写可能会成为瓶颈。
本文旨在研究多路并行XLOG的实现,从而减少不必要的等待,提高写的吞吐率。
当使用了多路XLOG后,不同路数的XLOG相互之间是没有锁竞争的,大大提高了XLOG的写并发。
同时,为了保证XLOG回放时的先后顺序,每一笔XLOG都需要申请一个时间戳,并写入XLOG文件中,回放时严格按照时间戳顺序来回放。
对于检查点的创建,多路XLOG都必须完成检查点的创建,才是一个有效的检查点。
从测试结果来看,使用多路XLOG的话,测试并行度越高,性能表现相比没有XLOG并行的越好。
0 0
- PostgreSQL 多路并行 xlog 设计
- postgresql 切换xlog日志
- xlog
- XLog
- postgresql 日志中报xlog目录中文件找不到
- 并行设计
- postgresql集群方案hot standby初级测试(四)——xlog详细解释header
- postgresql集群方案hot standby初级测试(五)——xlog详细解释record
- PostgreSQL xlog $PGDATA and zfs snapshot based central backup & PITR case
- xLog日志
- PostgreSQL启动过程中的那些事七:初始化共享内存和信号二:shmem中初始化xlog
- 为什么PostgreSQL查询语句也可能产生 xlog, 并且可能对buffer有write操作 ? hint bits
- 流水灯并行设计
- 日志组件XLog
- postgresSQL清理xlog
- xlog接入方案
- mars xlog源码分析
- xLog源码详解
- Intellij idea 项目目录设置 与包的显示创建
- centos6 单用户模式和救援模式
- Android的init进程
- C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- Convex hull trick算法
- PostgreSQL 多路并行 xlog 设计
- html
- MySQL数据库入门练习200句
- 欧拉计划 41
- php的register_long_arrays可以关闭以提高性能
- mybatis逆向工程
- css
- 深入理解Java的接口和抽象类
- 协方差矩阵与二维高斯分布