莆田建站培训,小程序开发费用多少,网页设计与网站建设试题,上海新闻官网一 TiFlash架构 二 TiFlash 核心特性
TiFlash 主要有
异步复制、一致性、智能选择、计算加速
等几个核心特性。 1 异步复制
TiFlash 中的副本以特殊角色 (Raft Learner) 进行异步的数据复制#xff0c;这表示当 TiFlash 节点宕机或者网络高延迟等状况发生时#xff0c;Ti…一 TiFlash架构 二 TiFlash 核心特性
TiFlash 主要有
异步复制、一致性、智能选择、计算加速
等几个核心特性。 1 异步复制
TiFlash 中的副本以特殊角色 (Raft Learner) 进行异步的数据复制这表示当 TiFlash 节点宕机或者网络高延迟等状况发生时TiKV 的业务仍然能确保正常进行。
只从leader中接受raft log 不参与 投票 选举 等。
基于主键快速更新 和TiKV 不会有过大的延迟 。 2 一致性读取 图解 T0 时刻 客户端写入两条数据 分别为 key 1 value 100 ,key 999 value 7这两条数据分别存在两个TiKV的Region 上写入数据会有Raft log这两条数据写入日志的序列号分别为 101 和 22 。TiFlash的region通过 Raft Log 同步数据此刻 同步到TiFlash的Raft Log日志索引号分别为95 和 18的日志。即数据还没有同步到TiFlash. 在T1 时刻客户端请求TiFlash 读取数据T1时刻 TIKV的region数据已经写到日志序列号分别为 120 和 29的数据了 。TiFlash的数据刚到 106 和 20 。此刻TiFlash读取不到最新的数据 T2时刻 又有客户端向TiKV 写入数据将key1的数据 value cong 100改为了 200。写到了日志索引号分别为 122 和 30的日志了。那么问题来了 TiFlash 如何 确认我能读取到此刻TiKV 写入的最新数据同步到了TiFlash 呢 解决 会做个轻量级的确认 T3时刻 TiKV 的数据 已经写到了 125和 31 TiFlash 写到了 116 和 21 。 那么TiFlash 会等待日志序列号分别为125和 31日志复制过来。 T4时刻 日志还没完全复制过来。 T5 时刻日志已经复制过来 但是查询请求是T1时刻发出只能看到T1时刻之前的数据所以读到的key1的值为100 智能选择
TiDB 可以自动选择使用 TiFlash 列存或者 TiKV 行存甚至在同一查询内混合使用提供最佳查询速度。这个选择机制与 TiDB 选取不同索引提供查询类似根据统计信息判断读取代价并作出合理选择。 计算加速
TiFlash 对 TiDB 的计算加速分为两部分列存本身的读取效率提升以及为 TiDB 分担计算。其中分担计算的原理和 TiKV 的协处理器一致TiDB 会将可以由存储层分担的计算下推。
参考
TiFlash 简介 | PingCAP 文档中心