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

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

物理存储单元

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

逻辑存储单元

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

大对象存储

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

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

Gbase 8t存储限制

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

·空间不足 ->扩大空间

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

八珍豆腐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值