暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8c核心特性-原位更新

原创 kevin爸 2022-09-20
751

PostgreSQL使用多版本并发控制MVCC机制:

当执行delete时,数据库将删除元组直接标记为dead,并不会真正从物理上删除;

当执行update时,数据库将会使用unused空间写入一个新的元组,然后将旧元组标记为dead,也不进行物理删除;

当表上频繁DML时,dead tuple会逐渐将空间耗尽,同时做全表扫描时产生很多额外I/O。

GBase 8c采用原位更新技术:

将new tuple放在原位,将dead tuple集中存放在undo;

去除vacuum,保证数据回收时IO稳定;

数据空间缩减。

PG 采用追加更新方式存储数据,也就是当修改数据时,不是在原位置修改,而是写入一个新记录,这会导致空间膨胀,也就需要定期回收过期的数据空间。这一直是 PostgreSQL 的一个弱项。

而GBase 8c实现了 Undo 机制,也就可以在原位置更新数据。这带来的好处包括:

高性能:对插入、更新、删除等不同负载的业务,性能以及资源使用表现相对均衡,相比Append Update引擎性能提升10%;

运行平稳:性能运行平稳,8小时性能滚降值从13.8%降低至2.5%;

高效存储:支持最大限度的原位更新, TPCC负载下平均节约空间15%~20%,UNDO空间统一分配,集中回收,复用效率更高,存储空间使用更加高效、平稳。

最后修改时间:2022-09-20 10:15:49
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论