TiDB 6.0新特性

目录

Placement Rules

热点小表缓存

悲观锁

内存悲观锁

Top SQL

TiDB Enterprise Manager

例题


Placement Rules

 如图:

有三个数据中心,分别位于Beijing,NewYork,Tokyo

跨地域部署的集群,无法本地访问

处于Beijing的用户需要到处于NewYork的数据中心访问数据T3,无法本地访问

无法根据业务隔离资源

数据T4,T5,T6的leader均分在TiKV-5,访问这些数据的用户均访问TiKV-5使其成为性能瓶颈

难以按照业务等级配置资源和副本数

无法为某张表配置特定的副本数

T7数据需被多个用户访问,而数据T8处于冷数据阶段确仍与T7数据抢占TiKV-8的资源

 跨地域部署的集群,支持本地访问

 处于Beijing的用户现可以本地访问T2和T3

根据业务隔离资源

 T4,T5,T6数据的leadder被分别放置在各自的TiKV中,隔离不同用户的业务

按照业务等级配置资源和副本数

可为某张表配置特定的副本数,如图中的数据T7被特别分配为5副本

同时冷数据T8和热数据隔离,不在与数据T7抢占资源

Placement Rules in SQL的使用

配置标签

创建PLACEMENT POLICY ,包括leader,follower角色region的位置及该region副本数

ps:FOLLOWERS参数指该region有多少个follower,总副本数等于该参数的值加1(leader)

设定应用 PLACEMENT POLICY的对象

Placement Rules in SQL的应用

热点小表缓存

表的数据量不大,导致region无法被拆分至其他TiKV,导致存放该表的TiKV因访问压力成为性能瓶颈

应用于:数据量不大(小于64MB);访问频繁;只读或修改不频繁;

热点小表缓存的原理

设置租约,处于租约期内时,用户可以从缓存中读取该表数据,但用户的写操作会被阻塞

使用参数tidb_table_cache_lease来设置租约,如图设置为5s

当表加载较慢或数据很少修改,可以适当延迟租约,保持读性能稳定

租约到期,用户的读写均在TiKV上执行,性能下降(从内存IO变为磁盘IO)

数据更新结束,租约继续开启( refresh),可以读取但阻塞写入

热点小表缓存的应用

ps:注意不支持对缓存表执行DDL操作,执行DDL操作需先关闭热点小表缓存功能

悲观锁

乐观锁:在Commit前,修改的数据和锁信息存储在TIDB Server的内存中;除了本事务其他事务无法感知,只有当prewrite后修改的数据和锁信息才存入TiKV并被其他事务感知,故乐观锁只有在Commit时才知道是否有锁冲突

悲观锁:在Commit前,修改的数据存储在TiDB Server的内存中,而锁信息存入TiKV中(Lock簇)并被事务感知,故悲观锁在Commit前就知道是否有锁冲突

内存悲观锁

统称悲观锁需要磁盘IO和网络IO,而内存悲观锁则省去了磁盘IO和网络IO转为缓存IO,即将修改的数据和锁信息存储在TiKV的缓存中供其他事务感知,提升性能

锁丢失 

当leader宕机,导致锁丢失时,不会破坏数据的一致性且TiDB数据库执行事务回滚机制将事务回滚,锁信息不会丢失,但事务会失败

故内存悲观锁不适应于如事务失败导致带来巨大问题的情况

开启内存悲观锁 

使用参数set config tikv pressimistic-txn.pipelinedset config tikv pressimistic-txn.in-memory开启内存悲观锁

内存悲观锁的应用

Top SQL

使用slow query和SQL Statements无法确认那个SQL导致CPU负载较高

Top SQL集成于TiDB dashboard

Top SQL的使用 

Top SQL的作用

TiDB Enterprise Manager

 

例题

1.对于TiDB v6.0新特性描述正确的为?(请选择3项)

A.小表缓存支持DML和DDL语句操作

B.内存悲观锁功能可以起到降低网络带宽的作用

C.当某个TiKV实例的IO过高,我们可以通过Top SQL监控到其上IO最高的5类SQL语句

D.TiDB Enterprise Manager (TiEM)可管理多套集群

E.我们可以通过Placement Rules in SQL功能增加某些重要业务表的副本数

答案:B,D,E

解析:A:缓存表不支持DDL操作,执行DDL操作前需关闭热点小表缓存功能;B:内存悲观锁将锁信息写入leader的内存中,不需要同步至follower,减少了网络IO;C:Top SQL能检测导致TiKV实例CPU负载高的5类SQL,而非IO

2.下列哪些情况不适宜开启小表缓存?(请选择2项)

A.表数据量小于128MB

B.频繁读取的热点小表

C.只读的热点小表

D.读取和修改都非常频繁的热点小表

答案:A,D

解析:A:热点小表缓存中的每张缓存表的数据量应小于64MB;D:热点小表缓存应用于只读或修改不频繁的情况,而非频繁修改

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值