当前位置: 首页 > news >正文

fsync与数据库日志刷新

在当将数据写到文件上时,通常该数据先由内核复制到缓存中,如果该缓存尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓存以便存放其他磁盘块数据时,再将该缓存排入输出队列,然后待其到达队首时,才进行实际的I / O操作。这种输出方式被称之为延迟写。延迟写减少了磁盘读写次数,但是却降低了文件内容的更新速度,使得欲写到文件中的数据在一段时间内并没有写到磁盘上。当系统发生故障时,这种延迟可能造成文件更新内容的丢失。为了保证磁盘上实际文件系统与缓存中内容的一致性,操作系统提供了s y n c和f s y n c两个系统调用函数。

void sync(void) ;

int fsync(int filedes) ;

返回:若成功则为0,若出错则为-1

sync只是将所有修改过的块的缓存排入写队列,然后就返回,它并不等待实际I / O操作结束。

fsync只引用单个文件(由文件描述符filedesc指定),它等待I/O结束,然后返回。fsync可用于数据库这样的应用程序,它确保修改过的块立即写到磁盘上

转载于:https://www.cnblogs.com/wangyubo/p/4445032.html

相关文章:

  • 第十六次课:Servlet实现商品用户评价
  • Canvas绘画功能(待补充)
  • RabbitMQ(六)远程连接
  • FileInputStream与FileOutputStream类
  • Octopus系列之数据上传格式要求说明
  • IIS 之 HTTP 错误 500.19(无法访问请求页面,因为该页的相关配置数据无效)
  • 依据波形的转折点文件,转换成波形文件
  • springMvc 入门学习(自动生成 springmvc 单表 两关联表 生成 及显示)
  • HealthKit开发教程之HealthKit的主要类型数据
  • java.io.FileNotFoundException: /exapp/hadoop/name/current/VERSION (Permission denied)
  • 北漂到底要不要回老家发展?
  • openwrt开源系统LUCI配置界面
  • Apache benchmark对网站进行压力测试
  • mybatis generator生成代码工具的使用
  • SharePoint 2016 的新特性概览(二)(What's New for IT Professionals in SharePoint Server 2016)...
  • 【React系列】如何构建React应用程序
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • HTTP 简介
  • java概述
  • python 装饰器(一)
  • React+TypeScript入门
  • Redash本地开发环境搭建
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 基于遗传算法的优化问题求解
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端代码风格自动化系列(二)之Commitlint
  • 巧用 TypeScript (一)
  • 我是如何设计 Upload 上传组件的
  • Hibernate主键生成策略及选择
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • $().each和$.each的区别
  • $NOIp2018$劝退记
  • (BFS)hdoj2377-Bus Pass
  • (day6) 319. 灯泡开关
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (二)windows配置JDK环境
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四) Graphivz 颜色选择
  • (转)JAVA中的堆栈
  • (转)甲方乙方——赵民谈找工作
  • (转)可以带来幸福的一本书
  • .NET Core Web APi类库如何内嵌运行?
  • .NET中使用Protobuffer 实现序列化和反序列化
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @RequestMapping 的作用是什么?