
TiDB
文章平均质量分 92
来自PingCAP的国产化开源分布式关系型数据库TiDB
GottdesKrieges
Oracle、OceanBase、TiDB、达梦数据库认证专家。 GBase数据库认证工程师。K8S云原生认证工程师。ITIL服务管理和PMP项目管理认证。
展开
-
TiDB Server关键性能参数与优化
Dynamic Frequency ScalingCPU动态节能技术用于降低服务器功耗,通过选择系统空闲状态不同的电源管理策略,可以实现不同程度的降低服务器功耗。更低的功耗策略意味着CPU唤醒更慢、对性能影响更大。DFS有以下五种模式:。配置命令为:数据库服务器一定要设置为performance模式。NUMA Binding内存直接绑定在CPU上,CPU只有访问自身管理的内存物理地址时,才会有较短的响应时间。NUMA架构的服务器,通过绑定NUMA节点,尽可能地避免跨NUMA访问内存,提升tidb se原创 2022-06-14 21:03:40 · 853 阅读 · 0 评论 -
Percolator事务模型
Percolator是Google发表在OSDI 2010上的论文Large-scale Incremental Processing Using Distributed Transactions and Notifications中介绍的分布式事务模型。Percolator本身是一个依赖BigTable作为数据存储引擎的分布式Key-Value数据库,是一个典型的通过2PC进行分布式事务协调的实现,简单来说是依靠Timestamp-Order实现了快照级别的事务。创新点在于,依靠对时间戳的使用和BigTa原创 2022-06-12 12:19:43 · 756 阅读 · 0 评论 -
TiDB数据库常用高可用架构
TiDB数据库常用高可用架构高可用架构设计中考虑的问题同城三中心架构简易架构架构优化同城两中心架构部署架构复制模式两地三中心架构部署架构TiDB集群升级异步复制集群升级方案高可用架构设计中考虑的问题网络延迟Raft协议要求写入复制到最少两个节点(三副本);Leader有可能与发起读写的TiDB Server不在一个区域;读取要访问PD一次获取TSO,事务要获取两次;Raft协议本身Raft协议要求写入复制到最少两个节点(三副本);副本数最好为奇数(考虑Leader选举投票);副本转载 2022-05-29 23:36:14 · 1666 阅读 · 0 评论 -
TiDB集群的高可用概述
TiDB集群的高可用概述系统不可用计划外系统不可用原因计划内系统不可用原因TiDB系统不可用解决方案高可用评判指标用可提供服务的时间来评判RTO & RPORaft与multi Raft组件高可用TiDB Server的高可用特性TiKV的高可用特性PD的高可用特性CAP理论与TiDBTiDB数据库的高可用特性系统不可用计划外系统不可用原因#mermaid-svg-xq1q7oPvuQZIfHCB {font-family:"trebuchet ms",verdana,arial,sans-s原创 2022-05-28 11:34:29 · 732 阅读 · 0 评论 -
TiDB数据库读取慢排查分析
TiDB数据库读取慢排查分析TiDB读流程简述TiDB Server部分的读流程如下图所示:#mermaid-svg-4bKhPmhxdHiwxhMZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4bKhPmhxdHiwxhMZ .error-icon{fill:#552222;}#mermaid-svg-4bKhPmhxdHiwxhMZ .error-text{原创 2022-05-27 17:45:42 · 2108 阅读 · 0 评论 -
TiDB数据库写入慢排查分析
TiDB数据库写入慢排查分析TiDB写入流程简述写入慢排查思路典型问题排查复杂问题排查Grafana监控写延时分析延迟定位TiKV写请求处理耗时分析Async Write耗时分析Raftstore pool vs Apply PoolTiDB写入流程简述TiDB写请求通过gRPC模块发送给TiKV实例。TiKV上的Scheduler模块负责写请求的流量控制、Latch冲突检测、Snapshot对比。流量控制:Scheduler模块会对写请求进行流量判断,如果接收的写请求太多,会返回Scheduler原创 2022-05-23 14:25:39 · 2259 阅读 · 1 评论 -
PD调度常见问题诊断与处理
PD调度常见问题诊断与处理PD调度常见问题集群TiKV节点数目没有变化,但逐渐出现若干个TiKV占用空间或者Leader数量高于其他节点的情况;上线了一个TiKV节点,但是Leader Transfer和Region Balance的速度非常慢;通过什么方式能够加速TiKV节点的缩容过程;大表truncate后,产生的大量empty region需要人工干预处理吗。Leader/Region分布不均衡监控Grafana PD/Statistics - Balance页面展示了负载均衡的相转载 2022-05-21 14:18:20 · 868 阅读 · 0 评论 -
TiDB数据库中的PD调度原理
TiDB数据库中的PD调度原理调度的产生与执行信息收集生成调度执行调度常见的调度类型负载均衡热点调度集群拓扑感知缩容及故障恢复Region merge查询调度状态Operator状态Balance状态热点调度状态Region 健康度调度策略控制启停调度器手动添加Operator调度参数调整产生速度控制消费速度控制调度的产生与执行宏观上来看,调度流程大体可划分为三个部分:信息收集TiKV节点周期性地向PD上报StoreHeartbeat和RegionHeartbeat两种心跳消息:StoreHea转载 2022-05-20 22:54:31 · 1694 阅读 · 0 评论 -
TiDB数据库热点问题诊断与处理
TiDB数据库热点问题诊断与处理为什么要解决热点问题热点问题产生的原因写热点产生的原因读热点产生的原因定位热点问题TiDB Dashboard流量可视化TiDB Dashboard SQL语句执行情况热点问题处理写热点打散的几种方法#1: SHARD_ROW_ID_BITS和PRE_SPLIT_REGIONS#2: 关键字AUTO_RANDOM#3: 索引打散#4: 系统变量tidb_scatter_region业务运行过程中写热点排查处理读热点问题的排查处理场景一:小表频繁访问引起热点场景二:SQL执行计原创 2022-05-19 18:50:50 · 2104 阅读 · 1 评论 -
TiKV OOM问题诊断与处理
TiKV OOM问题诊断与处理TiKV OOM对业务的影响TiKV OOM的诊断方法造成TiKV OOM的原因Block cache参数配置不当gRPC发送速度跟不上Coprocessor处理速度其他原因TiKV OOM对业务的影响TiKV上的请求失败造成异常退出region leader重新选举raft group开始选举新的region leader新的region leader上报信息给PD Serverregion cache频繁更新在访问TiDB Server的region原创 2022-05-17 18:01:12 · 511 阅读 · 0 评论 -
TiDB Server OOM问题诊断与处理
TiDB数据库OOM问题诊断与处理TiDB Server OOM对业务的影响TiDB Server OOM的诊断方法造成TiDB Server OOM的原因诊断TiDB Server OOM的原因定位占用内存大的SQL缓解TiDB Server OOM的措施SQL优化拆分大事务调整TiDB Server参数其他减少内存占用的方法TiDB Server OOM对业务的影响TiDB Server出现OOM问题会对业务造成如下影响:TiDB Server上的业务SQL会失败业务响应时间升高前端体验变差原创 2022-05-17 15:33:16 · 859 阅读 · 0 评论 -
TiDB数据库监控常用指标
TiDB数据库监控常用指标TiDB Server相关监控响应延迟 Duration每秒查询次数 QPS事务 Transaction资源相关监控与PD/TiKV相关TiKV相关监控资源相关监控PD相关监控TiDB Server相关监控响应延迟 DurationGrafana监控TiDB →\rightarrow→ Query Summary →\rightarrow→ Duration可以查看整个TiDB集群的所有SQL的平均响应时间。默认可以看到四条曲线,分别代表99.9%、99%、95%、80原创 2022-05-14 20:59:08 · 2364 阅读 · 0 评论 -
TiDB数据库运维之系统表的使用
TiDB数据库运维之系统表的使用系统表的存放位置TiDB常用集群信息系统表mysql数据库information_schema数据库information_schema.cluster_infoinformation_schema.cluster_configinformation_schema.ddl_jobs运维常用系统表查询系统慢日志查询系统读写热点查询SQL阻塞查询DATA_LOCK_WAITSDEADLOCKSTIDB_TRX系统表的存放位置mysql存储TiDB系统表,如mysql.use原创 2022-05-09 18:20:00 · 1508 阅读 · 0 评论 -
TiDB数据库schema设计之索引设计
TiDB数据库schema设计之索引设计索引的KV映射原理索引的设计索引的创建联合索引索引覆盖表达式索引不可见索引索引使用的注意事项运维技巧索引的KV映射原理首先回顾一下表的行数据的KV映射原理:对于聚簇表,TiDB会将表的编号加上主键作为Key,其余列作为Value。# 假设Col1是主键列(聚簇索引)Key: tablePrefix{tableID}_recordPrefixSep{Col1}Value:{Col2,Col3,Col4}对于非聚簇表,TiDB会自动为每行数据隐式生成一个R原创 2022-05-04 12:54:43 · 1584 阅读 · 0 评论 -
TiDB数据库schema设计之表结构设计
TiDB数据库schema设计之表结构设计Schema的KV映射原理聚簇表和非聚簇表非聚簇表的写热点问题分区表TiDB的数据类型TIDB的自增ID聚簇表自增ID的写热点问题Schema设计建议高兼容性Schema高性能SchemaMySQL、Oracle、TiDB中支持的数据对象对比如下:TablePartitionViewIndexSequenceUser FunctionProcedureTriggerMySQL支持支持支持支持不支持支持支持支持原创 2022-05-03 20:34:02 · 2119 阅读 · 0 评论 -
TiDB体系结构之TiDB Server
TiDB体系结构之TiDB ServerTiDB ServerTiDB Server主要组成模块SQL语句的解析和编译行数据与KV的转化SQL读写相关模块在线DDL相关模块TiDB的垃圾回收TiDB Server的缓存TiDB ServerTiDB Server的主要作用如下:处理客户端连接SQL语句的解析和编译关系型数据与KV的转化SQL语句的执行在线DDL的执行垃圾回收(Garbage Collection)TiDB Server主要组成模块TiDB Server由多个不同的功能原创 2022-05-02 23:07:21 · 1657 阅读 · 1 评论 -
TiDB中的RocksDB读写和Raft日志同步
TiDB中的RocksDB读写和Raft日志同步RocksDB存储引擎RocksDB写RocksDB读Raft日志同步RocksDB存储引擎TiDB所使用的RocksDB是LSM类储存引擎之一。日志结构合并树(Log Structured Merge Tree, LSM Tree)类存储引擎的特点是写入的时候是追加写入(append only)。无论是INSERT、UPDATE、DELETE操作,都会被转化为追加写入操作。基于这种特性,LSM Tree类存储引擎的写入速度很快,但是读取速度慢,且写放大原创 2022-05-02 15:13:29 · 1603 阅读 · 0 评论 -
如何使用TiUP部署一个TiDB v5.0集群
如何使用TiUP部署一个TiDB集群安装环境下载TiUP集群拓扑文件部署前环境检查集群部署检查集群状态启动集群查看各节点进程和资源消耗连接到TiDB Server关闭集群安装环境部署架构为:3台PD节点 + 1台Server节点 + 3台TiKV节点。tidb-pd1tidb-pd2tidb-pd3tidb-servertidb-kv1tidb-kv2tidb-kv3操作系统为CentOS 7.9, 采用最低资源配置:1C1G Memory + 20G Disk。选择tidb-pd原创 2022-04-10 14:09:21 · 2930 阅读 · 0 评论