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

相关推荐
代码派2 天前
业务不停机迁移 MySQL 到 TiDB,NineData 数据增量同步实操演示
数据库·mysql·tidb·ninedata·无停机迁移·增量迁移·全量迁移
PingCAP12 天前
Agent 从 Demo 到生产,到底卡在哪?
数据库·tidb·agent
TiDB 社区干货传送门12 天前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
tidb·分布式数据库·消费金融·htap·数据库选型
zhoupenghui1681 个月前
TiDB数据库详解
tidb·2pc·分布式数据库架构
隔窗听雨眠2 个月前
Dify基于TiDB的数据架构重构实践:从数十万容器到统一存储的系统性演进
重构·架构·tidb
实战派K8S&DB2 个月前
如何在内网配置 TiDB 数据库 Agent
数据库·人工智能·分布式·tidb
实战派K8S&DB2 个月前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
NineData2 个月前
NineData 与平凯数据库(TiDB 企业版)完成产品兼容性互认证
数据库·tidb·ninedata·玖章算术·平凯数据库·产品兼容性认证·tidb企业版
wzq11_6662 个月前
ansible部署项目——基于tidb数据库安装zabbix_server
ansible·zabbix·tidb