暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从零开始学TiDB(8) 学习 TiFlash 架构与功能

kk的DBA随笔 2025-01-02
11

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

一. TiFlash 的主要架构

 二. TiFlash 主要功能

1. 异步复制

2. 一致性读取 

T0 时刻从客户端写入两行数据
k=1 value=100
k=999 value=7
分别写入到了两个 region,并且产生 raft log
 

此时 TiFlash 还没有 TiKV 的这两行数据

此时 TiFlash 同步了 key=1 value=100 的数据
还没有同步 key=999 value=7 的数据

读取 TiFlash 中的 key=1 和 key=999

又进行了一次写入 key=1 value=200
此时 raftlog idx=122

确认 TIKV 的 raft log idx 号
并且记录在 TiFlash

此时,idx=31 从 TIKV 记录的日志
已经达到了
再读取 key=999 value7 一定可以读到了
但 idx=125 还没有达到, key=1 value=100 还不可以读

 

 此时读 key=1 发现有两个版本
T1 时刻发出的读取,只能看到 T1 时刻之前完成的
所以只能读到 T0 时候的数据
这样 key=1 value=100 就返回给了客户端

3. 智能选择 

 之前有总结过,TiDB 会根据 sql 的情况智能的选择 读取 TIKV 还是 TiFlash

例如:下面两张表做关联查询,再 product.pid 上有索引,可能会走 TIKV,但 AVG 可能设计 OLAP 业务,如果没有索引,做全表扫描也可能走 TiFlash。


文章转载自kk的DBA随笔,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论