TiDB 6.0 新特性
- Placement Rules in SQL
- 小表缓存
- 内存悲观锁
- Top SQL
- TiDB Enterprise Manager(TiEM)
Placement Rules in SQL
Placement Rules in SQL 之前:
- 跨地域部署的集群,无法本地访问
- 无法根据业务隔离资源,leader全在一个TiKV节点上
- 难以按照业务登记配置资源和副本数
无法精细摆放数据的位置。
解决办法,Placement Rules in SQL:
- 跨地域部署的集群,支持本地访问
- 根据业务隔离资源
- 按照业务登记配置资源和副本数
使用Placement Rules in SQL:
-
设计业务拓扑,为不同的TiKV实例设置标签
server.labels: { zone: “BeiJing”, rack: “Rack-1”, host: “TiKV-1” }
-
创建PLACREMENT POLICY
-
设定数据对象的PLACEMENT POLICY
CREATE TABLE T5 (id INT) PL ACEMENT POLICY=P1;
支持schema、表和分区
应用:
- 精细化数据放置,控制本地访问与跨区域访问
- 指定副本数,提高重要业务的可用性和数据可靠性
- 将业务按照等级、资源需求或者数据生命周期进行隔离
- 业务数据整合,降低运维成本与复杂度
热点小表缓存
- 表的数据不大
- 只读表或者修改不频繁的表
- 表的访问很频繁
这个表必须小于64MB以下,不太经常修改。
tidb table cache lease = 5,在租约之内只能读不能写。租约到期,可以写直接写入TiKV,也可以读,读TiKV里的。会有一定的抖动。 数据更新完毕,租约继续开启。
应用:
- TiDB对于每张缓存表的大小限制为64 MB
- 适用于查询频繁、数据量不大、极少修改的场景
- 在租约(tidb_ table_ cache_ lease) 时间内,写操作会被阻塞
- 当租约到期(tidb_ table_ cache_ lease)时,读性能会下降
- 不支持对缓存表直接做DDL操作,需要先关闭
- 对于表加载较慢或者极少修改的表,可以适当延长tidb_ table_ cache_ lease 保持读性能稳定
悲观锁
悲观锁:对数据的修改放到TiDB Server当中,对lock的修改一定存放到TiKV当中,别人才能感知到锁信息。在commit之前阻塞别人的写,读。在事务的执行的时候就能让别人感知的到。
乐观锁:在commited的时候才提交锁信息
将锁信息的写放入内存当中,取消了复制。
锁丢失:TiKV节点宕机,锁信息会造成丢失,丢失会事务回滚,事务会失败。
使用:
-
在线开启内存悲观锁
set config tikv pessimistic-txn.pipelined= =‘true’;
set config tikv pessimistic-txn.in-memory= =‘true’;
应用:
- 减少事务的延时
- 降低磁盘和网络带宽
- 降低TiKV的CPU消耗
- 锁丢失问题
需要考虑是否符合你的业务,如果业务不能锁丢失,就不能用
Top SQL
- 指定TiDB及TiKV实例
- 正在执行的SQL的语句
- CPU开销最多的TOP5类SQL
- 每秒请求数、平均延迟、执行计划等信息
使用
- 选择需要观察负载的具体TiDB Server或TiKV实例
- 观察Top5类SQL
- 查看某语句的执行情况: Call/sec (平均每秒请求数)、Scan Indexes/sec (平均每秒扫描索引数)等
作用:
- 可视化地展示CPU开销最多的Top5类SQL语句
- 支持指定TiDB Server及TiKV实例进行查询
- 支持统计所有正在执行的SQL语句
- 支持每秒请求数、平均延迟、查询计划等详细执行信息
TiDB Enterprise Manager(TiEM)
- 数量增长
-
- 集群数量
- 节点数量
- 组件数量
- 工具数量
- 复杂度增长
-
- 配置参数复杂度
- 命令行复杂度
- 管理接口复杂
解放人工运维的成本。
企业中TiDB集群管理的任务
- 部署集群
- 升级集群
- 参数管理
- 组件管理
- 备份恢复与高可用管理
- 集群监控与告警
- 集群日志收集
- 审计与安全
TiDB Enterprise Manager (TiEM)功能:
- 一键部署集群&多套集群-一站式管理
- 集群原地升级
- 参数管理
- 克隆集群&主备集群切换