GBASE 8s 共享内存缓冲池介绍

本文详细介绍了数据库管理系统中的共享内存结构,包括SharedMemHeader、LRU队列、LockTable、Buffer-header Table、逻辑日志缓冲区和物理日志缓冲区,以及Bufferpool的作用。这些组件共同确保了高效的数据访问、锁管理、日志缓存和内存优化,从而提升系统性能。

Shared Mem Header

LRU

Queues

Lock

Table

Buffer-header

Table

Logical

log

Buffer

Physical

log

Buffer

Buffer pool

共享内存常驻段包含以下几个部分:

Shared Mem Header  共享内存头

        共享内存头包含了共享内存其他部分的信息,且包括指向各部分的指针。当虚拟处理器首次连接到共享内存时,它会对共享内存头进行访问,读取个部分的位置信息以便引导到其他部分。

LRU Queues  最近最久未使用页面置换算法队列

       LRU:最近最久未使用页面置换算法。指的是当CPU想要调用某一页时,此页若不在内存中,操作系统会以一定的算法来决定将哪一页调出内存,以空出空间将需求页调入内存。页面调度算法有先进先出调度算法、随机调度算法、最近最少使用调度算法等。

Lock Table  锁表

        LOCK TABLE 语句可以用来锁定表、表分区或表子分区,以实现进程对共享内存的互斥访问。锁占用的内存区域在数据库启动时已经确定,使用常驻内存段部分的内存。当锁资源不够用时,虚拟服务器将在虚拟内存段自动扩展新的锁。

        GBASE 8s中的锁定可以分为几类:
        1、DML lock(data lock)
        2、DDL lock(dictionary lock)
        3、internal lock/latch

Buffer-header Table  缓冲池头表

        每个缓冲池也会有头指针指向其首地址,而缓冲池头表就用来存储所有缓冲池的头指针地址,其作用更像是用于缓冲池的索引表。

Logical log Buffer  逻辑日志缓冲区

        逻辑日志缓冲区用来将数据库处理过程中生成的逻辑日志缓存在内存中,在某一特定事件发生后,再一次性写入逻辑日志文件,通过逻辑日志缓存可以有效减少I/O次数,提高逻辑日志写入性能。

Physical log Buffer  物理日志缓冲区

        物理日志缓冲区用来将数据库处理过程中生成的物理日志缓存在内存中,在某一特定事件发生后,再一次性写入物理日志文件,通过物理日志缓存可以有效减少I/O次数,提高物理日志写入性能。

Buffer pool  共享内存缓冲池

        共享内存缓冲池是从磁盘读取的数据库空间页的缓冲区,用来缓存数据库表从磁盘读取的数据,数据库在内存中对数据进行访问和修改,当数据发生变化后,将写回磁盘。其中每个缓冲区就是数据库服务器页的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粗糙研测工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值