《power-tikv-with-in-memory-engine-zhi-tikv-chenjie-tang-pingcap-1.pdf》由会员分享,可在线阅读,更多相关《power-tikv-with-in-memory-engine-zhi-tikv-chenjie-tang-pingcap-1.pdf(25页珍藏版)》请在三个皮匠报告上搜索。
1、唐晨杰使用内存引擎强化 TiKVTiKV 简介TiKV 读场景痛点内存引擎概述内存引擎实现细节01020304目录内存引擎性能测试结果05TiKV 简介TiKV 简介 TiDB 的存储层 分布式键值数据库 提供满足 ACID 约束的分布式事务(percolator)接口 Raft 协议保证多副本一致性及高可用GitHub:https:/ TiKV 下的多版本控制(MVCC):key1key1-version4 version4-value14 value14 key1key1-version2 version2-value12 value12 key1key1-version1 version
2、1-value11 value11 key2key2-version7 version7-value27 value27 key2key2-version3 version3-value23 value23 key2key2-version2 version2-value22 value22 key2key2-version1 version1-value21 value21 keyNkeyN-version2 version2-valueN2 valueN2 keyNkeyN-version1 version1-valueN1 valueN1 TiKV 的数据使用 version 4 进行遍
3、历:key1key1-version4 version4-value14 value14 key1key1-version2 version2-value12 value12 key1key1-version1 version1-value11 value11 key2key2-version7 version7-value27 value27 key2key2-version3 version3-value23 value23 key2key2-version2 version2-value22 value22 key2key2-version1 version1-value21 value
4、21 keyNkeyN-version2 version2-valueN2 valueN2 keyNkeyN-version1 version1-valueN1 valueN1 TiKV 的数据TiKV 读场景痛点冗余 MVCC 版本影响读性能在下面数据集中读两行数据:key1key1-version100version100,key1key1-version99,version99,.,.,key1key1-version1,version1,key2key2-version100version100-delete,delete,key3key3-version100version100-d
5、elete,delete,.,.,key10000key10000-version100version100-delete,delete,key10001key10001-version100version100冗余 MVCC 版本影响读性能真实集群监控(TPCC 负载):当前的缓解办法以及缺陷垃圾回收(Garbage Collection)Compaction Filter Periodic GC问题 Safe point 阻塞 GC Compaction 需要时间内存引擎概述内存引擎是什么 内存缓存 缓存读热点 region 被缓存的 region 拥有“全量”数据 提供快照读 垃圾回收(
6、GC)内存引擎架构内存引擎在 TiKV 中的位置gRPC 接收和处理上层(如 TiDB)的请求Transaction 分布式事务的处理 下发 KV 请求给 RaftstoreRaftstore Propose,replicate,commit,apply raft commands Region 分裂和合并 Region 迁移 Raft-Engine 持久化 raft commandsHybridEngine 持久化 KV内存引擎的重要模块Skiplist 存储 KVRegi