Greenplum ao表和heap表垃圾回收的细微差别

简介:

标签

PostgreSQL , Greenplum , 垃圾回收 , vacuum


背景

在Greenplum中删除、更新数据记录时,会产生新的tuple版本,老的版本通过行头部标记:为已删除以及被哪个事务删除的。

因此频繁的更新后,或者批量的删除数据后,需要回收那些旧的版本。

通过vacuum、vacuum full、alter table redistribute命令,可以回收垃圾。

《如何检测、清理Greenplum垃圾 - 阿里云HybridDB for PG最佳实践》

但是回收AO表与回收HEAP表有些许不一样的地方,因为它们的存储方式有差异。

vacuum ao表

ao表为追加存储,当删除、更新记录时,有一个BITMAP对象来存储对应的记录是否被删除。

每个AO表的每个数据文件对应一条BITMAP信息,每个BIT位对应这个数据文件的一行。

使用vacuum回收AO表的垃圾时,实际上是这样操作的:

1、扫描bitmap,如果发现这个数据文件中被标记为删除的BIT总数大于某个阈值,则收缩这个文件。(每个数据文件默认1GB)

2、收缩这个文件时,因为会导致记录的物理位置编号,所以需要变更对应的索引(可能导致索引膨胀)。

vacuum ao表时,允许INSERT,COPY写入数据,但是不允许UPDATE和INSERT操作。(GPDB中UPDATE和DELETE是锁全表的,另一方面引入了update和delete后AO表收缩会变得更加复杂。)

3、VACUUM对应的索引,索引VACUUM时,只有仅仅包含左右链接的页(即没有实际引用的页)可以拆除复用。并且索引文件大小不会变化。

索引结构可以参考

《深入浅出PostgreSQL B-Tree索引结构》

只有重建索引才能收缩索引大小。

使用alter table redistribute命令,本质上也是需要重建索引的。

vacuum heap表

vacuum heap表,扫描所有数据文件,同时抹除BLOCK内dead tuple的item和tuple占用的空间,同时抹除对应索引ITEM。物理文件大小不会变化,(除了最后一个文件的末尾的没有任何有效记录的块。)

其他因素

vacuum 能回收的垃圾,不能被其他事务依赖。目前PG是这样来判断的,垃圾版本大于当前集群中最老事务的快照号的,都不能被回收。

《PostgreSQL垃圾回收代码分析 - why postgresql cann't reclaim tuple is HEAPTUPLE_RECENTLY_DEAD》

小结

1、Greenplum ao表使用vacuum可以回收部分垃圾(并收缩文件大小)(当某些数据文件垃圾记录超过一定设定比例时),VACUUM时堵塞UPDATE和DELETE,但是不堵塞INSERT。收缩文件大小,可能导致索引膨胀。

2、HEAP表vacuum可以回收垃圾,但是不收缩文件。

如果有维护窗口,还是建议使用这种方法来回收空间。

《如何检测、清理Greenplum垃圾 - 阿里云HybridDB for PG最佳实践》

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
机器学习/深度学习 数据采集 数据挖掘
Python | 机器学习之数据清洗
Python | 机器学习之数据清洗
810 0
|
存储 Kubernetes 持续交付
k8s学习
【10月更文挑战第1天】
844 4
|
11月前
|
机器学习/深度学习 运维 监控
别让运维只会“救火”——用数据点燃业务增长的引擎
别让运维只会“救火”——用数据点燃业务增长的引擎
369 12
|
11月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
908 10
|
8月前
|
存储 弹性计算 安全
阿里云服务器、轻量应用服务器、gpu云服务器包年包月最新收费标准与活动价格参考
阿里云提供云服务器ECS、轻量应用服务器及GPU云服务器三类产品,涵盖经济型e、通用算力型u2a、计算型c9i等多种实例规格。收费标准因实例配置、带宽及云盘类型而异,如ECS实例按年付费价格从1561.65元(2核2G)至12472.06元(12核24G)不等。活动期间,轻量应用服务器2核2G峰值200M带宽低至38元/年,GPU云服务器如gn6i系列月付1694元起。用户可通过领取优惠券(如7.5折券)进一步降低成本,实现成本优化与业务需求匹配。
775 3
阿里云服务器、轻量应用服务器、gpu云服务器包年包月最新收费标准与活动价格参考
|
人工智能 算法 定位技术
AR 导航导览技术如何实现的?提供全场景解决方案深度解析
传统导航在复杂场景中存在定位断层、空间认知成本高及实景导航实施难等问题。AR导航导览通过“实景+虚拟融合”,结合高精度定位引擎、实时三维渲染引擎和智能路径规划引擎,实现室内外无缝衔接的沉浸式体验。如需AR导航导览解决方案欢迎私信获取,如有项目合作及技术交流欢迎私信作者哦~
1390 1
|
人工智能 自然语言处理 数据处理
还在手动验证文献引用?ScholarCopilot:开源AI学术写作工具,生成时实时插入文献引用
基于 Qwen-2.5-7B 模型的 ScholarCopilot 通过动态检索标记和联合优化技术,实现学术文本生成与文献引用的精准匹配,在 50 万篇论文库中实现 40.1% 的检索准确率,生成文本的学术严谨性评分达 16.2/25。
2233 5
还在手动验证文献引用?ScholarCopilot:开源AI学术写作工具,生成时实时插入文献引用
|
JavaScript 前端开发 API
|
运维 监控 数据可视化
WGCLOUD主机管理系统 v3.5.7 更新功能说明
WGCLOUD 是一款开源免费的分布式运维监控平台,具备集群监控、易部署、轻量高效等特性。核心功能涵盖主机系统、CPU、内存、网络、磁盘、Docker、日志等全方位监控,并提供数据可视化、拓扑图、告警推送(邮件、钉钉、微信)等功能。最新版 v3.5.7 增强了 Docker 容器监控、自定义告警、背景主题设置及多项优化和修复。 下载链接:[WGCLOUD](http://www.wgstart.com) GitHub 仓库:[https://github.com/tianshiyeben/wgcloud](https://github.com/tianshiyeben/wgcloud)
|
存储 安全 网络安全
勒索病毒最新变种.wxr勒索病毒来袭,如何恢复受感染的数据?
在数字化时代,网络安全特别是勒索病毒的威胁日益严峻。.wxr勒索病毒以其快速传播、广泛感染和多途径扩散的特点,对全球用户构成严重威胁。本简介深入解析.wxr勒索病毒的特性与影响,涵盖其传染机制、防范措施及应对策略,并强调了数据备份与安全意识的重要性。针对被加密的数据文件,提供技术服务支持(sjhf91),帮助用户恢复数据,抵御网络威胁。同时提醒用户关注“91数据恢复”以获取更多最新信息和支持。 由于字符限制,以上内容已被精简以适应要求。
1047 23