FastCFS binlog机制简介

2023-11-15

FastCFS binlog机制简介

本篇文章转载于 FastCFS 作者 余庆 大佬的 FastDFS分享与交流 公众号。

FastCFS 采用经典的 Master/Slave 结构及数据同步复制的做法。如果 slave 在线,master 同步调用 slave;否则 slave 将进入数据恢复阶段,追上 master 的最新进度后,slave 切换为在线状态,此后 master 将数据同步复制到 slave

FastCFS 采用 binlog 记录数据更改操作,binlog 中不会记录变更(如写入)的文件内容,binlog 相当于是数据索引,非常简洁。

FastCFSbinlog 的两大用途:

一、实现数据索引持久化存储,程序启动时通过重放 binlog 加载数据索引;
二、slave 数据恢复时从 master 拉取缺失的 binlog,然后基于该 binlog 进行数据恢复。

大家直观感受一下如下所示的 binlog 片段:
在这里插入图片描述
第一列为 更改时间unix时间戳),第二列为 数据版本号。多个数据副本的分布式系统要保证数据强一致性,就必须保证更改操作的顺序。采用单调递增的数据版本号,是严格保证更改顺序的有效方法,这正是上一篇文章最后留下的悬念解答。

FastCFS 支持 master 失效时自动切换(failover),极端情况下发生 master 切换后,可能会导致 原master新master上的 binlog 部分数据不一致,而不一致的 binlog 数据只会在 binlog 文件的尾部,我们只需对最后 N 条(如3条)binlog 进行校验即可。如果 slave 最后 Nbinlogmaster 对账失败,slave 会退出运行,需要人工修复 binlog(通常只需删除最后一条 binlog)后该 slave 方可正常启动。

FastStore 模块有 binlog:用于 slave 数据恢复的 replica binlog 和用作数据索引的 slice binlog。对于一次更新操作,先写 slice binlog,然后写 replica binlog。一次更新操作对应两次 binlog 写入,如何保证两次写入的事务性呢?FastCFS 不允许写 binlog 失败,只有程序异常终止时(比如掉电、程序挂掉),二者才有可能不一致。因此写入 binlog 时不做校验,程序启动时对两个 binlog 进行对账,去掉尾部多余的 binlog 记录即可。

FastCFSmaster 同步调用 slave 完成后才写 binlog,为什么不选择在调用 slave 前写 binlog 呢?master 写入 binlog 的时机是有讲究的,这个问题就留给大家了。

最后总结一下,FastCFSbinlog 是保证数据一致性的重要机制,binlog 自身做到一致性非常关键,FastCFS 采用的是 binlog 对账机制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FastCFS binlog机制简介 的相关文章

  • MySQL binlog设置和查看命令

    目录 开启binlog重置命令查看binlog 开启binlog span class token comment 编辑模式进入 etc my cnf span span class token function vim span etc
  • 【MySQL】MySQL进阶之路(六)MySQL三大日志(binlog、redo log和undo log)详解

    写在前面的话 脑子是个好东西 xff0c 可惜的是一直没有搞懂脑子的内存删除机制是什么 xff0c 所以啊 xff0c 入行多年 xff0c 零零散散的文章看了无数 xff0c 却总是学习了很多也忘了很多 痛定思痛的我决定从今天开始系统的梳
  • mysql查看binlog日志内容

    mysql的binlog日志位置可通过show variables like 39 datadir 39 查看 xff0c 直接打开无法查看 xff0c 要看其内容2个办法 xff1a 1 登录到mysql查看binlog 只查看第一个bi
  • 数据库binlog(二进制日志binary log)

    二进制日志中存储的内容称之为事件 xff0c 每一个数据库更新操作 Insert Update Delete xff0c 不包括Select 等都对应一个事件 mysql binlog基本原理 简书 jianshu com https ww
  • mysql开通binlog权限

    GRANT SELECT REPLICATION SLAVE REPLICATION CLIENT ON TO 39 v5 binlog 39 64 39 39 IDENTIFIED BY 39 v5 binlog 39
  • Mysql-->Binlog的查看

    一 使用Navicat查看binlog信息 1 查看binlog的信息 span class token keyword show span variables span class token operator like span spa
  • Java Canal binlog 日志监控

    参考地址 超详细的Canal入门 xff0c 看这篇就够了 xff01 java技术爱好者 R的博客 CSDN博客 canal 有需要的参考博客 xff01 xff01 xff01 xff01 xff01 xff01
  • aliyun mysql 高可用_阿里云RDS高可用版mysql5.6同步binlog错误

    连接的是常规实例 筛选出来有符合fillter的log 另外长时间运行后有 Connection reset by peer 错误 2018 12 17 10 40 04 284 New I O server worker 1 4 ERRO
  • mysql binlog format_binlog之四:mysql中binlog_format模式与配置详解,binlog的日志格式详解...

    mysql复制主要有三种方式 xff1a 基于SQL语句的复制 statement based replication SBR xff0c 基于行的复制 row based replication RBR xff0c 混合模式复制 mixe
  • MySQL Binlog(主从同步/数据恢复) 及 mysqldump:

    MySQL 的二进制日志 binlog 可以说是 MySQL 最重要的日志 它记录了所有的 DDL 和 DML 语句 除了数据查询语句select show等 以事件形式记录 还包含语句所执行消耗的时间 MySQL的二进制日志是事务安全型的
  • mysql中binlog 参数设置 启用binlog 清理binlog mysqlbinlog使用 mysqldump + mysqlbinlog用于数据备份和恢复 代码实现处理binlog

    文章目录 一 二进制日志格式 Binary Logging Formats 1 1 binlog介绍 1 2 启用binlog 1 3 binlog几十种配置说明 1 4 清理binlog日志 1 5 sql命令查看配置 二 mysqlbi
  • MySQL基础架构与日志详解

    一 MySQL基础架构 MySQL可以分为Server层和存储引擎层两部分 Server层包括连接器 查询缓存 分析器 优化器 执行器等 涵盖MySQL的大多数核心服务功能 以及所有的内置函数 如日期 时间 数学和加密函数等 所有跨存储引擎
  • MySQL binlog 日志解析

    很多时候 当我们的业务数据产生了不正常的变化 但却无法得知这类操作是在哪里进行 并且如何进行 单单从程序当面排查很费力 那么就需要通过分析数据库日志来得到历史执行 SQL 根据 SQL 执行逻辑来确认代码位置 进而确认是否是 BUG 亦或是
  • MySQL错误记录(1)--File './binlog.index' not found

    昨天感觉慢查询日志较大 然后在 var log 下面随意创建了一个mysql的slow log文件 把路径写入了my cnf文件中 结果今天启动机器发现mysql无法正常启动了 查看日志文件错误如下 一般发现 13 Permission d
  • FastCFS核心组件FastStore架构及特点

    FastCFS核心组件FastStore架构及特点 本篇文章转载于 FastCFS 作者 余庆 大佬的 FastDFS分享与交流 公众号 上一篇文章介绍了 FastCFS 服务端两大核心组件 FastDIR 和 FastStore 其中 F
  • FastCFS binlog机制简介

    FastCFS binlog机制简介 本篇文章转载于 FastCFS 作者 余庆 大佬的 FastDFS分享与交流 公众号 FastCFS 采用经典的 Master Slave 结构及数据同步复制的做法 如果 slave 在线 master
  • 数据库中的binlog、redolog、undolog的区别

    binlog二进制日志是mysql server层的 主要是做主从复制 时间点恢复使用 redo log重做日志是InnoDB存储引擎层的 用来保证事务安全 undo log回滚日志保存了事务发生之前的数据的一个版本 可以用于回滚 同时可以
  • FastDFS文件同步机制简介

    FastDFS文件同步机制简介 本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号 FastDFS 文件同步采用 binlog 异步复制方式 storage server 使用 binlog 文件记录文件上传
  • 想要对mongodb做增量备份。写日记?奥普洛格?

    我想每天备份单个 mongodb 数据库 可能使用 mongodump 为了不丢失任何数据 我希望这是增量的 因此如果在一天中间出现问题 我需要能够重播当天的更改 直到执行 mongorestore 后出现故障 我是否正确理解我需要为此使用
  • MySQL 二进制日志复制:可以设置为忽略错误吗?

    我正在运行一个主从 MySQL 二进制日志复制系统 唷 对于某些数据 该系统不同步 这意味着主服务器比从服务器保存更多的数据 但是从站经常因为最轻微的 MySQL 错误而停止 这可以禁用吗 可能是复制从站忽略复制错误或某些类似的 my cn

随机推荐

  • 托管和非托管的区别

    NET Framework 是一种新的计算平台 它简化了在高度分布式 Internet 环境中的应用程序开发 NET Framework 旨在实现下列目标 提供一个一致的面向对象的编程环境 而无论对象代码是在本地存储和执行 还是在本地执行但
  • AIX系统修改系统时间

    linux下用date s 20131215 09 02 25 把时间设为2013年12月15日9点2分25秒 而aix呢 它不认 s这个参数 date n mmddHHMMYY mm表示月分 dd表示日期 HH表示小时 MM表示分钟 YY
  • 关于最近面试的通过2个offer然后被刷

    一个是面试通关了 薪资也谈好了 然后发offer 时候跟我说跟别人名字搞错了 浪费我我的时间 还有一个人面试通过 也给我发了面试通过的 也给我发了offer工资也谈拢了 说需要一周的审批 然后后面问我工作年限 说我不够工作年限 要求之前多少
  • qq讨论组显示连接服务器异常,QQ讨论组出现大面积故障 腾讯回应:因服务器异常 已紧急修复...

    原标题 QQ讨论组出现大面积故障 腾讯回应 因服务器异常 已紧急修复 TechWeb报道 8月25日消息 今天上午 大量网友反映称QQ讨论组功能出现Bug 具体症状为 在讨论组内发送一条信息就会被自动创建一个新的讨论组 而且历史消息记录全部
  • 【满分】【华为OD机试真题2023B卷 JAVA&JS】最长公共后缀

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 最长公共后缀 知识点排序 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 编写一个函数来查找字符串数组中的最长公共后缀 如果不存在公共后缀 返回固定字符串 Zero 补
  • matplot 画条形图

    import matplotlib pyplot as plt import numpy as np import pandas as pd plt show America New York 1251 Unknown 521 Americ
  • 18724 二叉树的遍历运算

    先序遍历的顺序是 根左右 中序遍历的顺序是 左根右 l1表示先序遍历的左边界 r1表示先序遍历的右边界 l2表示中序遍历的左边界 r1表示中序遍历的右边界 下面以题目的输入样例为例做分析 输入样例 abcde bcade 当i到达最后落点时
  • 毕设—基于树莓派的家居环境智能监测系统设计与实践

    一 资料查找工具 英文文献 Sci Hub Academic Navigation Site To remove all barriers in the way of science 中文文献 VPN书童图书馆 知网免费下载知网免费入口论文
  • Dropdown 下拉框(el-dropdown-menu)内容过长显示‘...’ 鼠标悬浮显示全部

    问题描述 使用element的Dropdown 下拉框 el dropdown menu 内容过长显示 鼠标悬浮显示全部 有时候内容太长导致文字换行与其它文字折叠展示 如下图所示 解决方案 直接上代码
  • PVE虚拟化平台之安装iStoreOS软路由系统

    PVE虚拟化平台之安装iStoreOS软路由系统 一 iStoreOS介绍 二 登录PVE平台检查系统状态 三 创建虚拟机 1 虚拟机常规设置 2 操作系统配置 3 系统配置 4 磁盘配置 5 CPU配置 6 内存设置 7 网络设置 8 确
  • plt.subplots()

    首先一幅Matplotlib的图像组成部分介绍 在matplotlib中 整个图像为一个Figure对象 在Figure对象中可以包含一个或者多个Axes对象 每个Axes ax 对象都是一个拥有自己坐标系统的绘图区域 所属关系如下 sub
  • Python操作ElasticSearch条件查询

    一 基本操作 1 列表元素之一查询 如 terminalType pc mobile 正确用法 GET http 0 0 0 0 8200 amis action data data search size 10000 查询条件 Ps 数组
  • 【转】内存数据库、关系型数据库和非关系型数据库

    内存数据库 关系型数据库和非关系型数据库 一 内存数据库 关系型数据库和非关系型数据库 1 个人观点 二 内存数据库 Redis MongoDb SQLite Oracle等 三 Raft分布式协议 四 Redis出现宕机 如何保证数据不丢
  • python极限学习机ELM做一个简单的分类

    最近事太多 只能下班后挤时间学习 缓慢更新 华丽的分割线 极限学习机是我们实验室的元老了 是一种单隐层前馈神经网络 SLFN 学习算法 这种算法只需要设置网络的隐层节点个数 执行过程中不需要调整网络的输入权值以及隐元的偏置 并且产生唯一的最
  • 哈希表查找——成功和不成功时的平均查找长度

    哈希表查找 成功和不成功时的平均查找长度 以下求解过程是按照 计算机统考的计算方法 不同的老师 教材在 处理冲突 上可能会有不同的方法 所以最主要的是掌握原理即可 对于考研的朋友最好掌握统考真题的解题方法 题目 例子 2010年全国硕士研究
  • 13.Python列索引值

    1 基础Python vi 6csv reader column by index py encoding utf 8 usr bin env python3 import csv import sys input file sys arg
  • mmsegmentation V0.27.0环境搭建(一)

    1 官网 2 兼容的MMSegmentation和MMCV版本如下 请安装正确版本的MMCV 以避免安装问题 3 Installation Linux系统环境安装 1 创建虚拟环境并安装pytorch Step 1 Create a con
  • ProtoBuf-反射原理与使用

    文章目录 前言 相关应用场景 一 ProtoBuf 反射原理概述 1 获取message和service的属性和方法 1 1 使用protoc将proto文件生成 h和 cc文件 1 2 只使用proto文件 不使用protoc进行编译 1
  • Gvim高级操作006--verilog例化代码对齐

    Gvim高级操作006 verilog例化代码对齐 Gvim如果没有安装对齐插件的情况下 无法通过快捷操作实现verilog例化代码对齐 但是可以通过正则表达式匹配插入空格实现代码对齐 基本原理是 删除空格 点号 和信号之间不能有空格 左括
  • FastCFS binlog机制简介

    FastCFS binlog机制简介 本篇文章转载于 FastCFS 作者 余庆 大佬的 FastDFS分享与交流 公众号 FastCFS 采用经典的 Master Slave 结构及数据同步复制的做法 如果 slave 在线 master