- 浏览: 2651956 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
原文:http://man.chinaunix.net/database/postgresql_8.0_CN/wal.html
预写式日志 (WAL ) 是一种实现事务日志的标准方法。有关它的详细描述可以在大多数(如果不是全部的话)有关事务处理的书中找到。 简而言之,WAL 的中心思想是对数据文件的修改(它们是表和索引的载体)必须是只能发生在这些修改已经记录了日志之后, 也就是说,在描述这些变化的日志记录冲刷到永久存储器之后。 如果我们遵循这个过程,那么我们就不需要在每次事务提交的时候都把数据页冲刷到磁盘,因为我们知道在出现崩溃的情况下, 我们可以用日志来恢复数据库:任何尚未附加到数据页的记录都将先从日志记录中重做(这叫向前滚动恢复,也叫做 REDO)。
25.1. WAL 的好处
使用 WAL 的第一个主要的好处就是显著地减少了磁盘写的次数。 因为在日志提交的时候只有日志文件需要冲刷到磁盘;而不是事务修改的所有数据文件。 在多用户环境里,许多事务的提交可以用日志文件的一次 fsync() 来完成。而且,日志文件是顺序写的, 因此同步日志的开销要远比同步数据页的开销要小。 这一点对于许多小事务修改数据存储的许多不同的位置更是如此。
另外一个好处就是数据页的完整性。实际情况是,在 WAL 之前,PostgreSQL 从来不能保证在崩溃的情况下数据页的完整性。 在 WAL 之前,在写的过程中的任何崩溃都可能导致:
-
索引记录指向一个不存在的表的行
-
索引记录在分裂操作中丢失
-
完全崩溃了的表和索引页的内容,因为数据页只写了一部分
索引的问题(问题 1 和 2)可能已经通过额外的 fsync 调用修补好了,但是如果没有 WAL ,那么没有很明显的处理第三种情况的方法; WAL 在日志里保存整个数据页的内容 -- 如果那些内容在崩溃后的恢复中需要确保数据页的完整性的话。
最后,WAL 还提供了数据库在线备份和恢复(backup and restore (BAR ))的可能, 就像 Section 22.3 里描述的那样。 通过归档的 WAL 文件,我们可以支持恢复到手头的 WAL 文件包含的任意时刻: 我们只需要简单地安装以前的数据库的物理备份,然后重放 WAL 到自己希望的时间。 另外,物理备份还不必是数据库状态的一个即时快照 — 如果它是花了一段时间制作的话, 因为 WAL 日志的重放将修复任何内部的不一致。
发表评论
-
MySQL 中的重做日志,回滚日志 ,以及二进制日志的简单总结
2018-06-06 17:44 1155ImportNew 5天前 (点击上方公众号,可快速关注) ... -
mysql 设置字符集 中文乱码
2016-02-04 15:45 2905一、登录MySQL查看用SHOW VARIABLES LIK ... -
mysql slow log控制
2014-08-28 10:15 5325参考官方文档:http://dev.mysql.com/do ... -
MySQL数据库InnoDB存储引擎 Buffer Pool Flush List详解
2014-08-21 10:36 1235原文:http://www.zhdba.com/mysqlo ... -
Percona-Server安装记录
2014-07-28 23:05 1410本文档记录安装Percona-Server开发环境,非生产 ... -
mysql创建用户权限
2014-07-11 17:01 766mysql 权限如下: root@localhost : ... -
mysql group测试脚本
2014-06-25 15:38 846sql数据语句: CREATE TABLE `access ... -
mysql性能优化之 show profile
2014-06-20 10:46 2431很漂亮的结果,没有creating sort index ... -
MYSQL INNODB中GAP LOCK引起死锁的问题
2014-06-06 13:08 2304先了解一下什么是GAP LOCK 在INNODB中,rec ... -
MySQL出现Waiting for table metadata lock的场景浅析
2014-04-23 14:27 695原文:http://ctripmysqldba.iteye ... -
mysql 索引原理
2014-03-27 20:02 493对于这条SQL: from message where ... -
mysql中group的实现
2014-01-24 10:31 739同学问到group by的实现 ... -
MySQL Innodb日志机制深入分析
2013-12-02 22:28 01.1. Log & Checkpoint In ... -
优化临时表使用,SQL语句性能提升100倍
2013-12-02 22:25 941【问题现象】 线上mysql数据库爆出一个慢查询,DBA观 ... -
也说快速关闭MySQL/InnoDB
2013-09-21 13:56 791原文:http://www.orczhou.com/ind ... -
关于mysql优化一些总结
2013-09-21 08:41 1067最近在做mysql数据库的 ... -
robbin谈MySQL InnoDB性能调整的一点实践
2013-09-21 08:13 753因为JavaEye网站的数据 ... -
mysql文档集合
2013-09-05 12:11 844理解MySQL——索引与优化 理解MySQL——架构与概念 ... -
mysql binlog细节
2013-09-05 12:06 1021原来mysql binlog内容是先保存在trx_cache中 ... -
MySQL如何避免使用swap
2013-09-04 09:52 1063原文: http://www.taobaodba.com/ ...
相关推荐
**写前日志**(Write-ahead Logging, WAL)是一种广泛应用于数据库系统中的技术,旨在提高系统的高可用性、数据一致性和故障恢复能力。通过在修改数据库内容之前先将相关的更改记录到日志中,WAL能够确保即使在系统...
标题《Segment-Based Recovery: Write-ahead logging revisited》表明本文是对传统写前日志(Write-Ahead Logging,WAL)技术的重新审视,尤其是针对分段恢复(Segment-Based Recovery)的应用。WAL是一种确保数据库...
Algorithm for Recouery and Isolation Exploiting Semantics), which supports partial rollbacks of transactions, finegranularity (e.g., record) locking and recovery using write-ahead logging (WAL)....
在确保数据安全性方面,PostgreSQL 引入了一项关键技术——预写式日志(Write-Ahead Logging,简称WAL),这对于实现高可靠性至关重要。WAL 是数据库系统中用于持久化和故障恢复的一个关键机制,其主要目标是在系统...
- 赖思超作为参与者之一,可能在此次会议上发表了关于PostgreSQL 10版本中Hash索引的WAL(Write-Ahead Logging)日志修改的演讲或讨论。 二、Hash索引的新特性 - PostgreSQL 10版本引入了Hash索引的WAL日志支持,...
PostgreSQL的WAL(Write-Ahead Logging)是数据库中一个关键的内部机制,用于确保事务的持久性和一致性。WAL机制是许多数据库系统中用来增强数据安全性的标准做法,与Oracle数据库中的REDO日志功能相似。在学习...
关键特性:Key 和 Value 可以是任意二进制值 应用可以定制比较函数来支持自定义的 Key 顺序可通过顺序号来获取 Value 值或者是 Key 的磁盘偏移量Write-Ahead Logging (WAL) and its in-memory index are used to ...
1. 数据库架构与基本组件 关系模型: 数据以表格(关系)的形式存储,每张表包含若干行(记录)和列(属性)。...日志与回滚:使用 Write-Ahead Logging(WAL)机制,记录数据库的所有变更,支持事务的恢复。
#### 三、预写式日志(Write-Ahead Logging, WAL) **核心思想**:WAL的核心思想是在数据修改实际写入数据库之前,先将修改的信息记录到事务日志中。这一策略确保了即使在系统故障的情况下,也能通过日志恢复数据,...
然而,从Android 9.0 (Pie)开始,Google引入了一些更改,其中包括默认启用Write-Ahead Logging(WAL)模式,这可能会导致一些开发者在尝试打开或操作数据库时遇到问题,如标题所示的“File opened that is not a ...
SQLServer还遵循预写日志(Write-Ahead Logging,简称WAL)原则,这意味着日志页会先于数据页写入磁盘,保持了事务日志与数据更新的一致性。这样一来,即使服务器在所有日志记录被刷新到磁盘之前关闭,提交的操作仍...
`cl-wal` 是一个开源的 Common Lisp 库,它实现了预写日志(Write-Ahead Logging,简称 WAL)机制。预写日志是一种数据库事务处理中的日志记录方法,它确保了数据的一致性和完整性。在 `cl-wal` 中,这种机制被设计...
2. **预写日志(Write-Ahead Logging, WAL)**:在数据库系统中,libaio常用于实现预写日志,确保数据的完整性和一致性。 3. **多线程支持**:libaio支持多个线程同时发起I/O请求,能够充分利用多核处理器的优势。 4...
- 预写式日志是一种确保事务原子性和持久性的关键技术。 - 所有数据修改在正式写入数据库之前必须先写入日志文件中。 - **Redo 日志** - 记录了事务对数据页的变更或底层物理变化。可分为逻辑 Redo 日志和物理 ...
5. 预写日志(Write-Ahead Logging, WAL):在某些数据库系统中,预写日志策略用于确保数据一致性。然而,这可能会增加SSD的写入负载。合理调整WAL策略,如适时关闭WAL或优化日志大小,可以减轻对SSD的影响。 6. ...
本项目“SQLite3的使用测试程序”是用C语言编写的,用于评估SQLite3在不同条件下的性能表现,特别是关注线程模型、Write-Ahead Logging (WAL) 机制以及事务提交策略的影响。 1. **线程模型**: SQLite3 支持多线程...
这种技术被称为预写式日志(Write-Ahead Logging, WAL)。WAL的策略允许MySQL在提交事务时不必等待数据实际写入磁盘,从而减少了I/O操作的次数和提高事务的处理速度。 redo日志的写入是顺序的,与随机I/O的磁盘写入...
在SQL Server中,事务日志采用预写式日志机制(Write-Ahead Logging,简称WAL),这意味着所有对日志的操作都会在数据实际写入磁盘之前完成。日志页(包含日志记录)首先从缓冲区写入磁盘,随后数据页(包含数据修改...
同时,为了保证数据一致性,tlogdb可能采用了WAL(Write-Ahead Logging,预写式日志)策略,先将操作记录到日志,然后才更新数据,即使在系统崩溃时,也能通过日志恢复未完成的操作。 在文件系统层面,tlogdb可能...