当前位置:网站首页>GBase 8s存储结构简介及空间管理

GBase 8s存储结构简介及空间管理

2022-08-11 05:21:00 蜻蜓队镸

Gbase 8s实例可以创建多个dbspace,一个dbspace可以包含多个物理chunk,一个chunk分成多个连续扩展区extent,一个表或者索引占用的空间被称为一个tablespace,一个extent包含多个物理页page。[其中dbspace、tablespace和 extent属于逻辑存储单元;chunk和page属于物理存储单元]

物理存储单元:

chunk:用于存储数据的连续磁盘空间,也就是存储数据库数据的文件或者裸设备,最大可以是4TB。
page:是基本的存储单元最小和I/O单元。一个数据页分成三部分:页头、页尾和数据部分,页头总共占24byte的空间,由八个部分组成。页尾由两部分组成:时间戳和每个slots的描述信息。
逻辑存储单元:

dbspace:是一个或者多个chunk的逻辑集合存储单元,将数据库的逻辑存储单位table与物理存储单位chunk连接在一起。
tablespace:是一个逻辑概念,指一个表或者索引所占用的空间。
extent:物理上连续数据页的集合,tablespace(表和索引)的存储空间是以extent为单位来分配的。例如,在向custom表中不断insert记录时,为表customer分配的空间将被使用完,此时,数据库需要为表扩展新的空间,gbase 8t 以extent 为单位进行扩展,一个extent包含若干物理上连续的数据页。
大对象存储:

简单大对象:blobspace只能用来存储简单大对象数据。简单大对象可以存储在dbspace或者blobspace中。存在dbspace上时写入磁盘的方法和普通表数据一致,即先将数据缓存在共享内存的buffer中,然后刷新到 磁盘,同时记录逻辑、物理日志信息。若将简单大对象存储在指定的blobspace上,会通过虚拟段单独使用一个较小的缓存将数据直接快速写入磁盘,类似light-append方式,而不需要占用大量的buffer-pool内存空间,从而避免将其他表或者索引从内存中挤出,同时对checkpoint无影响,而且也不将数据的日志信息写入逻辑日志、物理日志文件。都用一个56byte的指针指向大对象的存储位置信息。

智能大对象:智能大对象必须存储在sbspaces上,智能大对象的存储结构和I/O行为由sbspace特性确定。sbspace的第一个chunk总是包含三个部分:元数据区域、用户数据区域和保留区,其他chunk可以共用第一个 chunk的元数据区域。元数据区域保存元数据,用于表示sbspace的关键信息和存储在该sbspace上的每一个智能大对象,这样数据库服务器可以对智能大对象进行操作和恢复。用户数据区域保存用户定义的智能大对象数据,一个chunk可以有1-2个保留区。当元数据区域和用户数据区域需要更多空间时,可以从保留区进行分配,一个chunk可以有1-2个保留区。数据库服务器通过共享内存buffer pool来访问智能大对象数据,和存储在dbspace上的数据一样。不过智能大对象中的用户数据部分的内存优先级较低,写入数据时,当一个buffer page 被填满时,立即写入磁盘。

Gbase 8s存储限制:

当我们向表中insert记录时,出现的问题以及解决方法:

·空间不足 ->扩大空间

·extents最大上限 ->重建表,使用较大的extend size 和 next size 或者删除表中的部分记录

·最大数据页上限 ->使用分片表或者使用更大的数据页

原网站

版权声明
本文为[蜻蜓队镸]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_37004539/article/details/126063285