Greenplum-segment镜像分布策略

Greenplum作为一款基于PostgreSQL的OLAP分布式MPP架构,其内部的角色可以通过配置冗余来保证高可用性,无论是管理节点还是计算节点。管理节点可以为Master配置一个Standby来保证高可用,而计算节点则可以为每个Primary segment配置一个对应的Mirror segment来保证其高可用性。本文主要说明对于Segment的镜像分布,提供的几种分布策略。

一般情况下,对于每个计算节点,尤其是使用物理机的情况下,为了能够充分利用机器的资源,会在节点上部署多个segment,每个segment是一个单独的PostgreSQL实例,存储一部分用户数据。多个segment同时工作,从而提供高并发的OLAP分析能力。

对外提供服务的segment称为Primary segment,即主实例。为了保证高可用性,为每个主实例配置一个对应的Mirror,即镜像实例,主实例和镜像实例之间基于PostgreSQL本身的WAL流复制能力,保证数据的一致性。

集群的高可用能力,一般是在某一台物理节点出现故障时,数据仍然不丢失,且通过故障检测与故障切换机制可以保证业务在短时间内可以恢复。因此,我们需要将每个Primary segment与对应的Mirror segment分开部署在不同的物理节点上。在一个由多个节点组成的集群中,Mirror segment怎么分配,其实有多种形式,这也就是我们后面要介绍的镜像分布策略。

Greenplum官方提供的镜像分布策略有几种:

组镜像分布(group mirror)

组镜像分布是默认的镜像分布策略。这种分布策略是把每台主机上的Primary segment对应的Mirror segment都整体放在另外一台主机上。如果有一台主机发生故障,那么这台主机上所有的Primary segment都会切换到另外一台主机,导致另外一台主机上的segment数量翻倍。
在这里插入图片描述
优点: 除非同一个Segment的主实例和镜像实例都失效,最多可以有一半的主机失效并且集群可以继续运行。
缺点: 任何主机失效会导致一个主机负载翻倍,木桶效应明显。因此必须要尽快恢复故障节点并将主实例切换回来。

散列镜像分布(spread mirror)

散列镜像分布是将每个主机上的Primary segment分散到多台主机上。如果有一台主机发生故障,每个机器上至多只有一个镜像提升为Primary segment,因此这种方式可以防止单台主机故障后另外的主机压力骤增。
这种镜像分布方式要求集群主机数量多于每台主机上的Primary Segment的数量。
在这里插入图片描述
优点: 对于单主机失效的情况,对性能影响最小,因为每台主机的镜像都散布在最大数量的主机上。负载的增加是1/N,N代表每台主机上主实例的数量。
缺点: 如果两台以上主机同时失效,最有可能导致整个集群不可用。

自定义镜像分布

除了组镜像分布策略和散列镜像分布策略之外,用户还可以自定义镜像分布策略。
有些基于Greenplum的数据库自己定义了额外的镜像分布策略,比如 YMatrix默认的镜像分布策略叫 环状镜像分布策略(Ring Mirroring):即在至少有两台主机的情况下,将一个主机中的 Primary 序号序列看作一个一维纸带,从中间对折,然后在另外的主机上从对折的中间序号为起点,顺时针均匀排列 Mirror 到其他主机。 扩容增加新的 Primary 不会影响之前已分布完成的镜像闭环,而是开启一个新的镜像环。
还有一种叫块镜像分布策略,就是把数据库集群中的节点划分成块,每台主机上Segment的镜像被放在块中的其他主机上。使用块镜像的集群比较容易扩展,因为每一个块都是一个自包含的主镜像组。集群可以通过增加一个或多个块来扩展。只有故障的主机处于不同的块中,这种配置就能够容忍多主机失效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux常用命令(不定期更新)

记录一下自己工作中常用的linux命令 查询类 top 实时查看进程 free -h 查看内存 df -h 查看已挂在的存储 fdisk -l 查看所有存储,包含未挂载 编辑类 passwd 修改密码,要进入到系统

list(介绍与实现)

目录 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modififiers 1.2.6 list的迭代器失效 2. list的模拟实现 2.1 模拟实现list 2.2 list的反向迭代器 1.…

浅析Linux虚拟网络技术

文章目录 概述Tap/tun设备tun/tap的工作机制 Bridge网桥Bridge的工作机制Bridge IP 相关参考 概述 在传统的网络环境中,一台物理主机包含一张或多张网卡,要实现与其它物理主机之间的通信,需要将自身的网卡通过路由器或者交换机连接到外部的物…

vue3 页面显示中文,分页显示中文

vue3 分页默认为英文 ,但想要中文显示 那么在App.vue中的代码为三步即可,引入中文,声明中文 ,绑定中文; 1. import zhCn from element-plus/es/locale/lang/zh-cn; 2. let locale zhCn; 3. :locale&q…

【内网穿透】搭建我的世界Java版服务器,公网远程联机

目录 前言 1. 搭建我的世界服务器 1.1 服务器安装java环境 1.2 配置服务端 2. 测试局域网联机 3. 公网远程联机 3.1 安装cpolar内网穿透 3.1.1 windows系统 3.1.2 linux系统(支持一键自动安装脚本) 3.2 创建隧道映射内网端口 3.3 测试公网远程…

智通三千亮相2023中国软博会

“软件赋智,数实融合。”8月20日—23日,2023中国国际软件产品和信息服务交易博览会在南京举办。软博会连续举办19届。期间,《2023年我国工业软件产业发展研究报告》《中国软件产业高质量发展紫金指数(2023)》等发布。 …

【OpenCV实战】3.OpenCV颜色空间实战

OpenCV颜色空间实战 〇、Coding实战内容一、imread1.1 函数介绍1.2 Flags1.3 Code 二. 色彩空间2.1 获取单色空间2.2. HSV、YUV、RGB2.3. 不同颜色空间应用场景 〇、Coding实战内容 OpenCV imread()方法不同的flags差异性获取单色通道【R通道、G通道、B通道】HSV、YUV、RGB 一…

CTFhub-文件上传-MIME绕过

用哥斯拉生成 php 木马文件 1.php 抓包---> 修改 conten-type 类型 为 imge/jpeg 用蚁剑连接 ctfhub{8e6af8109ca15932bad4747a}

Hive原理剖析

一、简介 Hive是建立在Hadoop上的数据仓库框架,提供大数据平台批处理计算能力,能够对结构化/半结构化数据进行批量分析汇总完成数据计算。提供类似SQL的Hive Query Language语言操作结构化数据,其基本原理是将HQL语言自动转换成MapReduce任务…

电脑前置耳机没声音怎么办

有很多小伙伴反映在将自己的耳机连接到主机前面时没有声音,这是怎么回事呢,遇到这种情况应该怎么解决呢,下面小编就给大家详细介绍一下电脑前置耳机没声音的解决方法,有需要的小伙伴可以来看一看电脑前面耳机没声音。 解决方法&a…

AMD 锐龙 8000系 APU 将补完其产品线,推出 12C24T16CU 和 16C32T40CU

我们大家都知道一直以来,AMD 的 APU 只到 R7,也就是 R7-x700G 和 r7-x800H。虽然也有 R9-x900HX,但它毕竟是 x800H 硬超上去的,核心数完全一样,并不能叫做真正的 R9。 究其原因,AMD 的 APU 是移动端优先的…

谷歌Pixel Watch 2谣言——迄今为止我们所知道的一切

我们有理由相信,谷歌Pixel Watch 2是在工作。继Pixel Watch首次亮相后,下一代机型可能会推出升级,巩固谷歌在可穿戴市场的努力。 谷歌Pixel Watch作为第一代设备有很多功能。它利用Fitbit健身跟踪功能,同时支持所有主要的谷歌应用…

【CSS】解决对齐的小问题

问题: 表单或者页面上可能遇到文字无法对平均分,带有冒号的文本无法左右对齐的情况 常见的解决方式: 解决如下图 仍无法解决对齐的问题,还需要考虑字数 解决 这里用css的方式解决 增加 i 标签 固定宽度,设置 i …

动力节点Spring (18-19)

⼗⼋、Spring6集成MyBatis3.5 18.1 实现步骤 ● 第⼀步:准备数据库表 ○ 使⽤t_act表(账户表) ● 第⼆步:IDEA中创建⼀个模块,并引⼊依赖 ○ spring-context ○ spring-jdbc ○ mysql驱动 ○ mybatis ○ myb…

大数据学习:haproxy实现impala的负载均衡

HAProxy实现Impala的负载均衡 1.HAProxy安装及启停 1.1 在集群中选择一个节点,使用yum方式安装HAProxy服务 [rootdata01-dev ~]# yum -y install haproxy1.2 启动与停止HAProxy服务,并将服务添加到自启动列表 [rootdata01-dev ~]# service haproxy s…

Python实现自动关键词提取

随着互联网的发展,越来越多的人喜欢在网络上阅读小说。本文将通过详细示例,向您介绍如何使用Python编写爬虫程序来获取网络小说,并利用自然语言处理技术实现自动文摘和关键词提取功能。 1. 网络小说数据抓取 首先,请确保已安装必…

聚观早报|OpenAI宣布推出企业版ChatGPT;苹果公司开设8家新店

【聚观365】8月30日消息 OpenAI宣布推出企业版ChatGPT 比亚迪上半年净利润109.5亿元 歌尔股份上半年净利润4.22亿元 一起教育科技Q2营收6925万元 苹果公司今年开设8家新店 OpenAI宣布推出企业版ChatGPT 据外媒报道,当地时间周一,美国人工智能研究…

景联文科技数据标注:人体关键点标注用途及各点的位置定义

人体关键点标注是一种计算机视觉任务,指通过人工的方式,在指定位置标注上关键点,例如人脸特征点、人体骨骼连接点等,常用来训练面部识别模型以及统计模型。这些关键点可以表示图像的各个方面,例如角、边或特定特征。在…

Kotlin数据结构

数据结构基础 什么是数据结构 在计算机科学中,数据结构(Data Structure)是计算机中存储、组织数据的方式。数据结构是各种编程语言的基础。 一些使用场景 不同的数据结构适用于不同的应用场景。比如HashMap与ConcurrentHashMap&#xff0…

FFT代码上的实现细节

ω \omega ω 的计算 ω n 1 \omega_n^1 ωn1​ 的计算 考虑单位圆, ω n 1 \omega_n^1 ωn1​ 为: 也就是: 注:op为判断当前为dft还是idft ω n i \omega_n^i ωni​ 的计算 当要计算 ω n i \omega_n^i ωni​ 时&#xf…