pdf文档 Greenplum 6新特性: 在线扩容工具GPexpand剖析

1.12 MB 37 页 0 评论
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档详细介绍了Greenplum 6版本中GPExpand工具的新特性及改进。GPExpand支持在线不停机扩容,通过优化数据重分布和并行操作提升效率。其实现包括增加新节点只需修改gp_segment_configuration、引入跳表哈希算法、优化表更新的并行处理等。扩容过程中,新节点初始无数据,查询计划会受到影响,部分操作可能被阻塞。GPExpand还提供了清理功能,并支持通过GUC参数控制算法选择。这些改进提高了Greenplum集群的扩展性和性能。
AI总结
《Greenplum 6新特性:在线扩容工具GPexpand剖析》 一、GPExpand改进与实现 1. 在线不停机 - 增加新节点时,只需在gp_segment_configuration中添加新节点信息 - 新节点以主节点为模板生成,仅包含catalog,无实际数据 2. 数据重分布优化 - Greenplum 6引入numsegments参数,描述表连续分布的segment数量,随集群大小调整 - 扩容后,表按numsegments值分配Gang,避免了旧版本的随机分布问题 - 扩容完成后,更新gpexpand.status_detail表状态,旧版本为串行,新版本支持并行更新 3. 并行优化 - 支持并行初始化新节点和并行执行expand操作 - Greenplum 6支持heap表并行更新,解决旧版本在更新状态表时的瓶颈问题 4. 扩容期间对查询的影响 - 扩容阶段无法修改catalog - 正在重分布的表读写会被阻塞 - 哈希分布表若分布状态不一致,Join无法优化 二、GPExpand简介与用法 1. 工具概述 - 安装路径:$GPHOME/bin - 作为命令行脚本工具,功能类似gpstart、gpstop等 - 主要用于集群扩容,支持更大容量的存储和计算能力 2. 工作流程 - 建立并添加新节点 - 数据重分布 - 清理扩容相关数据 3. 功能细节 - 执行gpexpand后,会遍历postgres数据库中的gpexpand.status_detail表 - 对所有表执行ALTER TABLE {schema.table} EXPAND TABLE操作 - 扩容过程中,gpexpand schema下创建以下表格: * status:扩容状态 * status_detail:记录待扩容表 * expansion_progress:扩容时的状态记录 三、具体改进 1. 时间复杂度 - 扩容时间复杂度为Log(N),更多算法细节可参考链接:https://arxiv.org/pdf/1406.2294.pdf - Jump Consistent Hash算法默认启用,可通过GUC gp_use_legacy_hashops控制 2. 并行度控制 - 支持通过-gpexpand –B实现并行节点初始化 -Greenplum 5及之前版本状态表更新串行,存在瓶颈 - Greenplum 6支持全局死锁检测,可并行更新heap表
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 30 页请下载阅读 -
文档评分
请文明评论,理性发言.