00:03
啊,大家好,欢迎大家来到腾讯云开发者社区,腾讯云数据库CSDN联合打造的AI驱动下的TSO-c service训练营啊,我是今天的讲师陈浩,来自腾讯云数据库啊今天给大家带来的是我们的第三章弹性伸缩过程中的稳定性保证。啊,其实之前也一直提到了啊,我们有一个恢复感知器,那恢复感知器呢,在这里主要是保证我们在实力暂停之后,我们恢复的这样一个稳定性啊,你使用呢,实例会经常会遇到这样一个啊暂停启动的这样一个情况,那如果说暂停的实例,我们当业务问的时候啊,他如果有报错或者说拉不起来,那其实对于业务来说是有损的啊,所以我们引入恢复感知器主要是要来去保证我们在整个启动过程中的一个稳定性啊,那当业务来访问我们暂停实例的时候呢,首先他会去和我们的恢复感知器去建立这样一个TCP的一个3分4握手,我们去交换这样一个健全信息啊,那恢复感知器在接收到客户端来的请求之后啊,恢复感知器去会和管控去通知我们的管控要把实力恢复起来了,那这个时候呢,实力啊,我们会去成功的去把我们的MYS扣D去拉起来,在拉起来了之后呢,我们再去把这个恢复感知器,再去把这个链接交给我们的我们的MYSQD啊完成这。
01:23
这样一个TP的这样一个握手,在整个过程中呢,我们整个连接是不会断掉的,而且在暂停我们到恢复的时只需要不超过2000ms这样的一个时长啊,那以上呢,是我们这样一个恢复感知期的一个能力,那第二部分呢,是我们整个在扩收扩缩容过程中啊,如何去保证我们业务是没有任何抖动的呢?在了解这个之前呢,我们先了解一下整个八块的一个工作原理,那八块呢,它是由一个一个的创客去组成的,我们每次在扩缩容过程中呢,其实都是在去扩缩我们的一个创客,那创客呢,就是由我们的frame,我们的液去组成的,每个frame呢,就是由block去组成的,一个block呢,它是我们整个BP的一个最小的单元啊,它是以16KB字节啊,我们举个例子,如果说我们扩容的时候呢,我们要去增加一个创,那创NK中的这个block呢,我们会去挂在我们的free上面来啊,再去把free上面的这些空块呢,我们再去。
02:23
给挪到LRU粒子上面来,就完成了一个这样一个扩容,扩容的一个动作,那其实在整个扩容过程中呢,啊,其实出现毛的概率是特别低的,那如果说我们要去做so容呢,啊,这里是其实比较容易去出现毛刺的,那在缩容过程中呢,我们也是以创的单位啊去进行一个缩容的,但是在数据库使用了一段期间之后呢,啊,这些的block它会呃分布的分散在不同的例子上面来啊,那但是我们要去做缩容呢,就必须要把l ru list上面的目标回收块要去挪到我们的free list上面来,再把free list上面的空块去跟LRU上面list的一些块去做一个数据的一个替换,这个过程呢,我们就会去持锁啊实的是mutic锁,持锁过程中呢,我们就会去有一个等待这个过程呢,其实就会容易去出出现慢查询啊,出现这样一个抖动情况,那总的来看呢,其实在扩存过程中出现毛刺的原因一共有三种瓶颈,那第一种瓶颈呢,是我们的IO瓶颈啊,因为。
03:23
在生活程中我们要需要刷脏,那持续化配置呢,他可能会去存在这样一个IO瓶颈,那第二瓶颈呢,就是刚才一直讲的我们锁的这样一个瓶颈,第三个瓶颈呢,就是我们也要去持我们的全局锁啊,回收创的时候我们要去持全局锁,针对这三个瓶颈呢,腾讯云这边也提出了我们专有的这种解决方案,第一个方案呢,我们依托于TC,因为TC的本身是采用的这样一个方式,我们是在存层异去产生配置的,所以计算节点不需要刷脏,我们是不可以直接丢弃到配置,所以在L上面我们本身是具有天然的一个优势的。第二个池锁,我们把池锁的力度啊去进行一个变更,减少我们的一个持锁的范围和时长,把经常去持,长时间去持有两次锁的过程,我们改成频繁的去持锁,这样的话我们按地址去啊,我们需要被回收的这个窗口中的block啊,整个我们加锁的由L的这个链表变成这个单个block,这样的话我们就可以。
04:24
快速的去进行一个释放的一个动作,所以我们把锁的瓶颈也解决掉了,第三个瓶颈呢,是我们采用了延迟释放和提前预分配的方式啊,同时我们采用了哈西的这样一个算法,把它改成一个异步的一个模式,那整个过程中呢,我们可以把这块的扩存过程中的毛刺彻底解决,保证我们在过程中完全没毛刺啊,领导动,那然以上呢就是第三章的全部内容。
我来说两句