1.异步复制
参与复制,在1节点的tikv(行存)中的修改会在tiflash(列存)中复制。
行存:大量交易型的业务。
列存:分析型的业务。扫描大量的表,显示出一个报表,得出一个趋势。
2.业务隔离
tikv(行存),更多承载OLTP业务。交易型业务。(事务)
tiflash(列存),更多承载OLAP业务。分析型业务。(暴力扫描)
3.智能选择
自动判断sql适合OLTP还是OLAP,自动导向tikv和tiflash。
整体就是HTAP
既可以解决OLAP也可以解决OLTP。
TiFlash架构
tiflash的region与tiflash的region对应的,只是行存和存区别。
tiflash不擅长处理高并发,QPS不高,一般50.
1.异步复制
tiflash不参与投票,无法直接写入,只能读和接收raft log。
2.一致性读取
向tikv进行校验,保证一致性
tiflash异步复制,所以可能比tikv慢。a去读tiflash,发现读不了,数据不一致,tiflash访问tikv当前读到哪里,并做标记。然后当tiflash中读到标记时,必定包含想要的key。
如果在过程中某个region又写了,再次读取,标记被拉长。有2条记录的选择读发起时刻往前最近的记录。
3.引擎智能选择
可以自动判断去tiflash还是tikv读,甚至混合读,需要2个表的内容,一个tikv,另一个要大量扫描用tiflash。
表扫选tiflash
索引扫选tikv
4.计算加速
mpp,算子下推。