从零开始学TiDB(8) TiFlash 主要架构

一.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。

相关推荐
赵渝强老师1 天前
【赵渝强老师】TiDB SQL层的工作机制
数据库·sql·tidb
观测云9 天前
TiDB 可观测性最佳实践
tidb
赵渝强老师12 天前
【赵渝强老师】使用TiDB的审计日志
数据库·tidb
可观测性用观测云14 天前
TiDB 可观测性最佳实践
tidb
Sirius Wu14 天前
TiDB 深度解析与 K8S 实战指南
容器·kubernetes·tidb
PingCAP15 天前
PingCAP“一号员工”唐刘:回顾我与 TiDB 的十年成长之旅
数据库·tidb
转转技术团队16 天前
告别人工搬运!TiDB/MySQL双库同步工具如何为业务提效100%?
mysql·tidb·测试
MiniFlyZt21 天前
分布式数据库TiDB:架构、核心特性与生产实践(分库分表)
java·数据库·分布式·spring cloud·微服务·tidb
PingCAP22 天前
从单一到多活,麦当劳中国的数据库架构迁移实战
数据库·tidb
XMYX-01 个月前
TiDB 部署指南(单机模式)& CentOS 7 安装 MariaDB 教程
centos·tidb·mariadb