从零开始学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。

相关推荐
北i10 天前
TiDB 关联子查询去关联优化实战案例与原理深度解析
java·数据库·sql·tidb
Lucifer三思而后行11 天前
使用 BR 备份 TiDB 到 AWS S3 存储
数据库·tidb·aws
Lucifer三思而后行13 天前
使用 BR 备份 TiDB 到阿里云 OSS 存储
阿里云·云计算·tidb
落叶的悲哀14 天前
mysql tidb like查询有换行符内容问题解决
数据库·mysql·tidb
得物技术15 天前
得物TiDB升级实践
数据库·性能优化·tidb
言之。16 天前
【数据库】TiDB 技术选型与架构分析报告
数据库·架构·tidb
熙客18 天前
TiDB:分布式关系型数据库
java·数据库·分布式·tidb
言之。18 天前
TiDB分布式数据库技术架构概述
数据库·分布式·tidb
weixin_ab18 天前
【TiDB 插入性能优化实战:从 5 秒到毫秒级的跨越】
tidb