zoukankan      html  css  js  c++  java
  • PG undo redo

    除了理所当前的各路文本记录(比方数据库的运行报错日志之类),PG的二进制类日志文件主要有两个,一个就是对应传统数据库理论的redo日志,理论上,所有数据的修改操作都会被记录到这个日志,在事务提交的时候确保操作都记录到磁盘中,这样讲即便发生宕机,数据库也能以不丢数据的形态重新复活。

    但是,各个数据库在这个点上都有不同的实现,比方MySQL会有一个binlog用于跨存储引擎的主从同步,而在PG中,主从同步已经通过redo日志(PG术语为XLOG)同步的情况下,为了处理没有undo带来的一系列问题,其中可见性判断这个功能,就是交给clog日志文件解决的。

    Clog中记录了每一个事务相关的xid(记得之前曾吐槽过这个玩意的大小问题带来的freeze问题)以及xid对应的事务的提交状态。提交状态包括以下一些:执行中,已提交,已中断,已提交的子事务。看到这里,就可以明白,只要事务提交的时候,设置状态为已提交,而事务回滚的时候,设置状态为已中断,就可以达到目的,的确避免了操作数百万行的事务突然要回滚时候的巨大代价。

  • 相关阅读:
    Spring Boot入门篇(基于Spring Boot 2.0系列)
    webpack性能优化配置
    Vuex的通俗详解
    Vuefilter() 过滤器
    transition页面加载触发问题解决方案
    VUE render VS template
    provide & inject 跨组件传值
    Vue 组件通讯(组件传值)
    js封装 DOM获取
    GIT SVN 版本管理 git + gitHub
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/11248719.html
Copyright © 2011-2022 走看看