GBase 8s共享内存分为三个部分。
缓存池是共享内存的驻留部分的主要存储空间,是最大的一部分内存,缓存池存放表中的数据页,用来加快表的访问速度。当多个用户读写相同的数据时,将不在需要从磁盘中访问数据。
可以定义多个不同页面大小的缓存池,每个页面大小的缓存池只能有一个,每个缓冲池的大小可以通过配置文件中的bufferpool参数修改。
服务器会在共享内存中申请一些固定长度的内存结构,也称为内部表,这些表和数据库中的表是不同的。
这些内部表和数据库中的一些重要资源是相关联的,这些内部表的大小可以通过调整配置文件中的共享内存资源的大小来调整。
物理日志主要是为了数据库服务器的容错机制而引入的,当数据被从磁盘读到内存之后,如果被修改了,物理日志包含了第一次被修改的数据页和索引页的前映像。
为了减小物理日志磁盘IO的次数,其写日志时使用了缓存phybuff,而不是每次都写盘,先写到缓存,由数据库控制在所需要时将缓冲中的数据刷新到物理日志
当数据库记日志时,逻辑日志包括了数据操作语句(DML)的内容,也保存数据定义语句(DDL)的操作记录,一个实例中的所有数据库共享相同的逻辑日志文件,不同数据库中的事务日志在日志文件中可以交叉存放。
写到数据库日志中的数据可能很大,为了减少写盘的IO次数,数据先放在缓冲logbuff中,之后再写到磁盘中,服务器为逻辑日志申请三个缓冲。