WAL(Write-ahead logging,预写式日志)是数据库系统提供原子性和持久化的一系列技术。

  

  在使用WAL的系统中,所有的修改都先被写入到日志中,然后再被应用到系统状态中。通常包含redo和undo两部分信息。

  redo log称为重做日志,每当有操作时,在数据变更之前将操作写入redo log,这样当发生掉电之类的情况时系统可以在重启后继续操作,继续执行未执行完的操作。

  undo log称为撤销日志,当一些变更执行到一半无法完成时,可以根据撤销日志恢复到变更之间的状态,保证事务的原子性。

  

  写入数据时,磁盘的操作是不连续的,如可能会段合并,LSM树重建,B+树重建等。将操作或者数据写入日志的操作则是连续写,消耗要低很多。磁盘的连续写比随机写要快很多。

  MySQL,Hbase,ES,Redis,PG中都用到了WAL或者类似的写日志技术。

  WAL还可以用于主从复制,记得之前其他人培训时说的是,可以有主动推,被动拉等。也可以分为严格一致,非严格一致等。

  

  

WAL基础的更多相关文章

  1. 预写式日志(Write-Ahead Logging (WAL))

    SQL Server中使用了WAL(Write-Ahead Logging)技术来保证事务日志的ACID特性.而且大大减少了IO操作. WAL的核心思想是:在数据写入到数据库之前,先写入到日志.再将日 ...

  2. Hbase WAL线程模型源码分析

    版权声明:本文由熊训德原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/257 来源:腾云阁 https://www.qclo ...

  3. 什么是WAL?

    在写完上一篇<Pull or Push>之后,原本计划这一片写<存储层设计>,但是临时改变主意了,想先写一篇介绍一下消息中间件最最基础也是最核心的部分:write-ahead ...

  4. 主库的wal日志已经被归档或异常丢失如何搭建从库

      关键字:wal日志归档  搭建从库 restore_command master 194.1 slave 194.4 wal归档目录 /backup/pgsql/pg_arch/ xlog目录 / ...

  5. HBASE 基础命令总结

    HBASE基础命令总结 一,概述 本文中介绍了hbase的基础命令,作者既有记录总结hbase基础命令的目的还有本着分享的精神,和广大读者一起进步.本文的hbase版本是:HBase 1.2.0-cd ...

  6. HBASE基础知识总结

    HBASE基础知识总结 一,概要说明 文章首先回顾HBase 的数据模型和数据层级结构,对数据的每个层级的作用和架构进行了详细阐述:随后介绍了数据写入和读取的详细流程.先把架构图和流程图来坐镇. 架构 ...

  7. HBase基础架构及原理

    1. HBase框架简单介绍 HBase是一个分布式的.面向列的开源数据库,它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式.HBas ...

  8. PostgreSQL基础知识与基本操作索引页

    磨砺技术珠矶,践行数据之道,追求卓越价值 返回顶级页:PostgreSQL索引页 luckyjackgao@gmail.com 本页记录所有本人所写的PostgreSQL的基础知识和基本操作相关文摘和 ...

  9. PostgreSQL的PITR中,对 unfilled wal log 如何处理为好

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页     回到顶级页面:PostgreSQL索引页 通过实验,可以发现,PostgreSQL中使 ...

随机推荐

  1. poj 2155 B - Matrix 二维树状数组

    #include<iostream> #include<string> #include<string.h> #include<cstdio> usin ...

  2. python3 sort

    #https://docs.python.org/3.5/howto/sorting.html?highlight=sort #In Python 3.2, the functools.cmp_to_ ...

  3. OpenGL编程-第一个程序-画出一个正方形

    账号是:qq876.......   pwd:bky.13....................... 程序如下 #include <GL/glut.h> // #pragma comm ...

  4. xencenter如何安装Centos7虚拟机系统

    xencenter的ip地址192.168.245.134(win10系统) 首先我们在win10系统安装好xencenter(这个软件可以直接在xenserver启动后,通过访问xenserver的 ...

  5. Django 之 ORM

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  6. 概率论基础教程 (Sheldon M. Ross 著)

    第1章 组合分析 1.1 引言 1.2 计数基本法则 1.3 排列 1.4 组合 1.5 多项式系数 *1.6 方程的整数解个数 第2章 概率论公里 2.1 引言 2.2 样本空间和事件 2.3 概率 ...

  7. 晒一晒Jenkins那些常用插件

      Jenkins插件大师 作为CI/CD的调度中心,Jenkins具有十八般武艺,目前已有1700多个插件,功能强大到似乎有点过分了.本文主要列出平时我们常用的插件. 以下这两个网站是Jenkins ...

  8. 23 模块 os sys pickle json

    一.   os模块 主要是针对操作系统的 用于文件操作 二.    sys 模块 模块的查找路径   sys.path 三   pickle 模块 1.  pickle.dumps(对象) 序列化  ...

  9. beautifulSoup使用

  10. apache的MultipartEntityBuilder文件上传

    本文讲解多文件上传方法,不比较上传有几种方法和效率,而是定向分析apache的httpmime包的MultipartEntityBuilder类,源码包:httpmime-4.5.2.jar 一.常用 ...