日志文件系统的3种日志方法

日志的三个级别(书里写的关于回写和顺序两种模式不同的更细节的解释)

在很多日志文件系统(如:ext3ReiserFS)中,可以选择三个级别的日志:回写(writeback)、顺序(ordered)和数据(data)。

回写

在回写模式中,只有元数据被记录到日志中,数据被直接写入主文件系统。这种模式提供较好的性能,但有较大的风险。例如,在增大文件时,数据还未写入就发生崩溃,那么文件系统恢复后文件后面就可能出现垃圾数据。

顺序

在顺序模式中,只有元数据被记录到日志中,但在日志被标记为提交前,数据会被写入文件系统。在这种模式下,如果在增大文件时,数据还未写入就发生崩溃,那么在恢复时这个事务会被简单的撤销,文件保持原来的状态。

数据

在数据模式中,元数据和文件内容都先被写入日志中,然后在提交到主文件系统。这提高了安全性,但损失性能,因为所有数据要写入两次[1]。在这种模式下,如果在增大文件时,发生崩溃,那么可能有两种情况:

  • 日志完整:这时事务会被重新执行,修改会被提交到主文件系统
  • 日志不完整:这时主文件系统还未被修改,只需要简单放弃这个事务
时间: 2024-12-14 08:14:00

日志文件系统的3种日志方法的相关文章

Logstash处理json格式日志文件的三种方法

假设日志文件中的每一行记录格式为json的,如: {"Method":"JSAPI.JSTicket","Message":"JSTicket:kgt8ON7yVITDhtdwci0qeZg4L-Dj1O5WF42Nog47n_0aGF4WPJDIF2UA9MeS8GzLe6MPjyp2WlzvsL0nlvkohw","CreateTime":"2015/10/13 9:39:59",&

ext3是对ext2文件系统的一个扩展高性能日志文件系统

嵌入式开发者所做的最重要的决定之一就是部署哪种文件系统.有些文件系统性能比较高有些文件系统空间利用率比较高,还有一些文件系统设备故障或者意外断电后恢复数据比较方便. linux文件系统概念 分区 分区是对物理设备的逻辑划分,而文件系统就存在于这个设备上.一个物理设备可以只包含一个分区,占据所有可用空间,或者,它可以被分成多个分区,以适合某个特定任务的要求.一个分区可以被看成一个逻辑盘,它上面可以存储一个完整的文件系统.一个分区就是物理媒介的一个逻辑部分,这个分区中数据的组织形式遵循此分区类型的相

Ext3的三种日志记录方式

Q1:Ext3的三种日志记录方式 1 data=writeback 方式data=writeback方式下,ext3根本不执行任何形式的数据日志记录,提供给您的是和在XFS,JFS和 ReiserFS文件系统中找到的类似的日志记录(仅元数据).这会让最近修改的文件在出现意外的重新引导事件中被毁坏.如果不考虑这个缺点, data=writeback 方式在大多数情况下应该能够提供最佳的ext3性能. 2 data=ordered 方式  data=ordered方式下,ext3只是正式记录元数据,

利用开源日志收集软件fluentd收集日志到HDFS文件系统中

说明:本来研究开源日志的系统是flume,后来发现配置比较麻烦,网上搜索到fluentd也是开源的日志收集系统,配置简单多了,性能不错,所以就改研究这个东东了!官方主页,大家可以看看:fluentd.org,支持300+的plugins,应该是不错的! fluentd是通过hadoop中的webHDFS与HDFS进行通信的,所以在配置fluentd时,一定要保证webHDFS能正常通信,和通过webHDFS写数据到hdfs中! 原理图如下: webHDFS的相关配置与测试,请看这篇文章:http

Apache日志不记录图片文件设置方法和来源日志的配置

Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch>CustomLog logs/access_log combined env=!IMAG Apache日志,如果记录所有访问请求,文件会很大:如果使用日志分析软件,分析结果不一定准确.而且如果不安装cronolog工具来截断日志,会在一个整文件中,这样访问量一高,日志文件所占空间是可观的. 通过在http

浅谈MYSQL之日志文件系统

同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等 MySQL日志文件系统的组成 a.错误日志:记录启动.运行或停止mysqld时出现的问题. b.通用日志:记录建立的客户端连接和执行的语句. c.更新日志:记录更改数据的语句.该日志在MySQL 5.1中已不再使用. d.二进制日

MongoDB中4种日志的详细介绍

前言 任何一种数据库都有各种各样的日志,MongoDB也不例外.MongoDB中有4种日志,分别是系统日志.Journal日志.oplog主从日志.慢查询日志等.这些日志记录着MongoDB数据库不同方面的踪迹.下面分别介绍这几种日志. 系统日志 系统日志在MongoDB数据库中很重要,它记录着MongoDB启动和停止的操作,以及服务器在运行过程中发生的任何异常信息. 配置系统日志的方法比较简单,在启动mongod时指定logpath参数即可 ? 1 mongod -logpath=/data/

一种日志型数据库的实现

在<LSM存储组织结构介绍>一文中,我们了解了LSM存储结构,同时提到针对不同的业务场景,可能需要选择不同的数据库实现.假如需要存储语音.视频或图片,你会选择怎样的实现方式?不需要对类数据进行修改,也不需要排序与范围查找,下面我们来看一种日志型数据库实现方式,因其用于存储语音.图片,我们称其为media数据库. 存储格式 media数据库以数字命名数据文件,每个数据文件大小上限为FileSize左右,fileinfo文件存储当前正在被写入的文件的文件名,数据存储格式如下: 1. 每个数据文件,

【数据库 &#39;tempdb&#39; 的日志已满】最新解决方法

数据库 'tempdb' 的日志已满 执行sql 语句,中间没有用到临时表 提示服务器: 消息 9002,级别 17,状态 2,行 1 数据库 'tempdb' 的日志已满.请备份该数据库的事务日志以释放一些日志空间. 网上找了下解决方案,大体是扩大临时库的日志文件的大小解决的 解决过程: 查看了下数据库的属性,是自动增长,不指定文件大小上限. 在网上百度了很久,试了些方法都不行:数据库所在磁盘还有很大的可用空间,试着下重药了. 直接把tempdb的数据文件和日志文件的大小改为3000M, 问题