|
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 共享内存缓冲池
共享内存缓冲池是从磁盘读取的数据库空间页的缓冲区,用来缓存数据库表从磁盘读取的数据,数据库在内存中对数据进行访问和修改,当数据发生变化后,将写回磁盘。其中每个缓冲区就是数据库服务器页的大小。
本文详细介绍了数据库管理系统中的共享内存结构,包括SharedMemHeader、LRU队列、LockTable、Buffer-header Table、逻辑日志缓冲区和物理日志缓冲区,以及Bufferpool的作用。这些组件共同确保了高效的数据访问、锁管理、日志缓存和内存优化,从而提升系统性能。

1471

被折叠的 条评论
为什么被折叠?



