当前位置: 首页 > article >正文

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

 


http://www.kler.cn/a/468710.html

相关文章:

  • Docker图形化界面工具Portainer最佳实践
  • 现代密码学期末重点(备考ing)
  • 倍思氮化镓充电器分享:Super GaN伸缩线快充35W
  • 123.【C语言】数据结构之快速排序挖坑法和前后指针法
  • vscode如何离线安装插件
  • 以太网UDP协议栈实现(支持ARP、ICMP、UDP)--FPGA学习笔记26
  • 通过串口通信控制led灯的亮灭
  • 如何在centos中进行有效的网络管理
  • 基于ESP32的桌面小屏幕实战[5]:PCB下单
  • 深入Android架构(从线程到AIDL)_12 Android UI 单线程程序
  • AIGC生图实战技巧分享
  • iptable限制多个端口出站
  • C++直接内存管理new和delete
  • Kubernetes——part4-1 Kubernetes集群 服务暴露 Nginx Ingress Controller
  • frameworks 之 WallpaperManagerService 壁纸管理
  • spring mvc源码学习笔记之三
  • c语言的文件操作与文件缓冲区
  • 抖音生活服务2024年覆盖线下商家门店超610万,交易额同比提升81%
  • LeetCode 0732.我的日程安排表 III:线段树
  • [GCC]代码演示-Wl,-rpath-link链接时库搜索路径
  • 力扣hot100——动态规划 多维动态规划
  • 手动安装 Maven 依赖到本地仓库
  • Nginx:限流限速
  • 美食烹饪互动平台
  • 深入理解静态库与动态库
  • Go语言的 的并发编程(Concurrency)核心知识