PostgreSQL 可靠性和一致性 代码分析

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

PostgreSQL 可靠性和一致性 代码分析

德哥 2016-05-03 18:07:55 浏览4265
展开阅读全文

PostgreSQL 的数据可靠性是依赖XLOG的实现的,所有的对数据块的变更操作在write到磁盘前,一定是确保这个变更产生的REDO会先写到XLOG,并保证XLOG已落盘。
也就是说流程是这样的:
.1. 首先将需要变更的块从文件读入shared buffer
1
.2. 变更shared buffer中block的内容
2
.3. 将shared buffer中block变更的内容写入XLOG,如果是checkpoint后第一次变更该块,则写full page。(通过参数控制是否要写full page)。
3
.4. 在bgwriter将shared buffer中的脏块write到os dirty page前,会确保它对应的XLOG已经落盘,通过脏块的LSN来确保。
4
所以问题来了,如果用户使用了异步提交,即synchr

网友评论

登录后评论
0/500
评论
德哥
+ 关注
所属团队号: 阿里云数据库ApsaraDB