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

相关推荐
睡不醒男孩03082324 天前
TiDB数据库调研
数据库·tidb
解决问题no解决代码问题1 个月前
TiDB 深度对比:拆解三类传统扩容方案与 TiDB 原生分布式架构差异
tidb
解决问题no解决代码问题1 个月前
分区表清理操作全对比:DB2 / Oracle / MySQL / TiDB 流程详解
tidb
解决问题no解决代码问题1 个月前
TiDB 原理与节点宕机实战讲解
数据库·tidb
不爱编程的小陈1 个月前
事务的进化:从MySQL单机事务到TiDB分布式事务的探究
分布式·mysql·tidb
解决问题no解决代码问题1 个月前
深入解析 TiDB 分布式架构:三大核心组件与底层运行原理
tidb
身如柳絮随风扬1 个月前
TiDB 极速入门与 Spring Boot 实战:从 Docker 部署到高并发调优
spring boot·docker·tidb
秋92 个月前
TiDB 数据库全链路实战指南:从下载部署到 Java 高并发调优
java·数据库·tidb
RestCloud2 个月前
TiDB 混合负载场景下的 ETL 与 CDC 实践
数据仓库·tidb·etl·cdc·数据同步·数据库传输
迷藏4942 个月前
**TiDB 在高并发场景下的性能优化实战:从慢查询到极致吞吐的跃迁**在现代分布式系统中,数据库不仅是数据存储的
java·数据库·python·性能优化·tidb