云数据库 GAUSSDB-RCR UBTree空间管理
RCR UBTree空间管理
当前Astore的索引依赖AutoVacuum和Free Space Map(FSM)进行空间管理,存在回收不及时的问题。而Ustore的索引使用其特有的URQ(UBTree Recycle Queue,一种基于循环队列的数据结构,即双循环队列),对索引空闲空间进行管理。双循环队列是指有两个循环队列,一个潜在空页队列,另一个可用空页队列,在DML过程中完成索引的空间管理,能有效地缓解DML过程中造成的空间急剧膨胀问题。索引回收队列单独储存在BTree索引对应的FSM文件中。
如上图所示,索引页面在双循环队列间流动如下:
- 索引空页流动到潜在队列
索引页尾字段中记录了页面上活跃元组个数(activeTupleCount),在DML过程中,删空一个页面的所有元组,即activeTupleCount为零时会将索引页放入潜在队列中。
- 潜在队列流动到可用队列
潜在队列到可用队列的转化主要是达到一个潜在队列收支平衡以及可用队列在拿页时有页可拿的目的,即当从可用队列拿出一个索引空页用完后,建议从潜在队列转化至少一个索引页面到可用队列中,以及每当潜在队列新加入一个索引页面时,能从潜在队列中移除至少一个索引页插入可用队列中,达到潜在队列的收支平衡,以及可用队列有页可用的目的。
- 可用队列流动到索引空页
索引在分裂等获取一个索引空页面时,会先从可用队列中进行查找是否有可以复用的索引页。如果找到则直接进行复用,没有可复用页面则进行物理扩页。
- 云数据库RDS for MySQL存储空间自动扩容_存储空间_自动扩容_MySQL云盘
- 华为云空间_华为云空间怎么登录_华为云空间在线登录
- 云空间建站_云服务器ecs云空间_云空间云服务器
- GaussDB内核_GaussDB数据库内核_高斯数据库内核_华为云
- GaussDB数据库空间规格_GaussDB文档_高斯数据库空间规格
- GaussDB行列混合存储_GaussDB规划存储模型_高斯数据库行列混合存储-华为云
- 华为云空间优惠券
- GaussDB索引_华为数据库GaussDB_高斯数据库索引_华为云
- 云数据库Gaussdb数据库索引_华为gaussdb__gaussdb 数据库
- 分布式云原生命名空间_华为云分布式云原生_华为云UCS命名空间