TiFlash 数据校验

本文档介绍 TiFlash 的数据校验机制以及相关的工具。

使用场景

数据损坏通常意味着严重的硬件故障。在这种情形下,即使尝试自主修复,也会使得数据的可靠性下降。TiFlash 默认对数据文件进行基础的校验,使用固定的 City128 算法。一旦发现数据校验不符的情况,TiFlash 将立刻报错退出,避免因错误数据造成次生灾害。此时,您需要手动检查干预并重新同步数据,才可以恢复节点的使用。

自 v5.4.0 起,TiFlash 完善了数据校验功能,默认使用 XXH3 算法,并允许用户调整校验帧大小和校验算法。

校验机制简介

TiFlash 的数据校验功能基于 DTFile(即 DeltaTree File)提供。DTFile 是 TiFlash 落盘数据的存储文件,共有三版格式:

版本状态校验机制备注
V1已废弃在数据文件中内嵌哈希值
V2v6.0.0 之前的默认格式在数据文件中内嵌哈希值在 V1 的基础上增加了列数据的统计信息
V3v6.0.0 及之后的默认格式包含元数据,标记数据校验,支持多种哈希算法于 v5.4 版本引入

DTFile 存储在数据文件夹目录下的 stable 文件夹内。目前启用的格式均为文件夹形式,即具体数据均储存在名字类似 dmf_<file id> 的文件夹下的多个子文件中。

使用数据校验

TiFlash 支持自动和手动进行数据校验:

  • 自动数据校验 (storage.format_version 配置项):
    • v6.0.0 之后默认使用 DTFile V3 版本校验机制。
    • v6.0.0 之前默认使用 DTFile V2 版本校验机制。
    • 如需切换版本校验机制,参见 TiFlash 配置文件。默认配置经过大量测试,不推荐修改。
  • 手动数据校验,参见 DTTool 使用文档

警告

设置使用 V3 版本后,新生成的 DTFile 将无法被 v5.4.0 以前 TiFlash 直接正常读取。v5.4.0 后 TiFlash 同时支持 V2,V3 版本,不会主动进行版本的升降级。如果需要迁移到新的版本,或者需要回退到旧的版本,需要手动使用 DTTool 进行版本切换

校验工具

除了 TiFlash 在读取所需数据时进行的自动校验,在 v5.4.0 版本时还引入了手动检查文件完整性的工具,详情请见 DTTool 的使用文档

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天读点书学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值