GBASE南大通用数据库-GBase 8a MPP Cluster之木桶效应降低技术

news2025/1/18 8:43:06

几千年前,因为金属冶炼、塑料成型技术不成熟,盛产在水源丰富的江南一带的用来洗衣服、盛水的容器都是用那种木板与竹钉合围并在外部用绳索、皮条之类紧箍起来的木桶,名字叫箍木桶。一个木桶由于老化或者损坏,桶上的个别木板发生断裂,导致了木桶的盛水能力减少,最短的那块木板高度就成为了盛水能力的瓶颈。美国的管理学家彼得把这个现象称之为“木桶效应”或“短板效应”,借用网上一幅图来形象表达一下:

图片

再说MPP分布式数据库,MPP是Massively Parallel Processing的简称,中文翻译过来就是“大规模并行处理”。该架构的运算逻辑流程是将计算任务并行的分散到多个服务器的节点上,每个节点使用本地资源进行计算,最后各个节点将自己处理部分的结果汇总到任务发起节点,再把汇总结果返回给用户的一个过程。MPP数据库最大特点就是多节点并行处理、多节点协同计算,每个计算任务必须等待最后一个节点计算完成才能最终返回完整结果,这就产生了MPP数据库的“木桶效应”。木桶效应永远存在,只能无限度的降低其影响,而不能最终消除。计算任务的性能只能取决于最慢的那台节点的性能。虽然MPP有此缺点,但始终不会影响MPP数据库在市场上的强劲发展,归根到底就是MPP数据库厂家对此问题有积极向上的技术对策,最大化降低木桶效应所带来的负面性能效果。

GBase 8a MPP Cluster对降低MPP数据库木桶效应的处理较为极致,主要用到了它的关键技术—多分片。GBase 8a MPP产品的数据分片技术,这里的分片概念别被误导,不是MPP数据库常说的横向数据切片,而是副本数据的存放分片。可能比较难以理解,这里用四幅图做个清晰明了的对比说明。图一是大部分MPP数据库厂家常用的技术,以4个计算节点为例说明数据及副本的存放规则,一份主数据,一份副本数据:

图片

从图中可以看出,Table1的数据先以某种规则(hash、roundrobin)横向分割成4份,分别是Table1_n1_主、Table1_n2_主、Table1_n3_主、Table1_n4_主,且分别放置到每个节点。对应四份数据的副本数据分别是Table1_n1_副、Table1_n2_副、Table1_n3_副、Table1_n4_副,主副本数据完全一致。正常情况下四个节点使用主数据(红色圈圈的数据)对外提供服务。现在假设节点4故障,则对外服务时,数据使用(仍然是红圈圈)情况如下图:

图片

是不是非常明显看到原节点4上的数据Table1_n4_主用节点1的Table1_n4_副接替来对外继续服务。节点1上的数据负载增加一倍,性能会因数据增大一倍,而执行效率理论降低((2-1)/1) * 100% =100%。此时木桶效应就被放大,这也是众多用户所不能忍受,最不愿意看到的情况发生。对于这种情况,GBase 8a MPP采用数据多分片技术后,那上述的这种情况就会得到很大的改善。还是用4个节点举例,采用3分片切片副本,那么数据是如何分布的呢?

图片

从上图可以看到采用3分片后的数据,不是存放到一个节点上,而是分布到了3台节点,比如节点4的副本数据,不再在只有存在节点1上,而是同时存在于节点1、节点2、节点3,数据分别是Table1_n4_副本_分片1、Table1_n4_副本_分片2、Table1_n4_副本_分片3。

当节点4因某种原因下线后,那么节点4的主数据需要由其他节点上存放的副本数据来接替继续对外提供服务,此时对外提供服务所使用到数据如图4红圈圈中的内容,此时副本数据已经被均匀打散到节点1、2、3三台机器。对比只有节点1接替故障节点4的副本数据,其性能影响已经由下降100%优化到下降((1.33 – 1)/1) * 100% = 33%,木桶效应的负面影响降低了三分之二。

图片

MPP数据库规避木桶效应的方式很多,除了GBase 8a MPP使用技术硬性降低之外,还有其他的方式,比如选择服务器的时候,尽可能配置相同;人为用技术影响数据分布,让配置高的节点多承接数据等方式降低木桶效应,但无论如何都不如从技术上处理更专业。

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

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

相关文章

jsp+ssm+mysql实现的酒店预定管理系统项目----计算机毕业设计

项目介绍 jspssm框架(spring、springMVC、mybaits)实现的酒店预定管理系统的源码和视频开发教程。本系统分前台和后台管理两部分,前台实现了用户登录注册、查看房型信息、预定房间、提交订单、查看个人订单、修改个人资料等,后台…

RestClient操作索引库_创建索引库(二)

ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句, 通过http请求发送给ES。 官方文档地址: https://www.elastic.co/quide/en/elasticsearch/client/index.html 目录 一、初始化JavaRestClient 1.1.依赖引入 1.2.初始化…

Getway介绍和使用

Getway 入门简介 网关搭建步骤: 创建项目,引入nacos服务发现和gateway依赖 配置application.yml,包括服务基本信息、nacos地址、路由 路由配置包括: 路由id:路由的唯一标示 路由目标(uri)…

vue 导出 HTML 结构为 Word 文档(.docx)-支持表格、css样式、图片

在 Web 开发中,有时我们希望用户能够将网页上的 HTML 内容保存为 Word 文档,以便更方便地分享和打印。本文将介绍如何使用 html-docx-js 和 file-saver 这两个 JavaScript 库,实现将 HTML 结构导出为 Word 文档的功能。 工具简介 1. html-d…

QT编译并部署QtMqtt相关环境+跑测demo【超详细教程】

文章目录 概要整体架构流程▷下载指定版本的QMqtt源码:▷编译后同步MQTT相关文件: 技术名词解释技术实现步骤详解一、编译源码1、编译报错2、解决思路3、编译通过 二、继续完善mqtt应用环境1、打开编译生成的shadow build文件夹2、同步lib3、同步bin4、同…

69内网安全-域横向CobaltStrikeSPNRDP

这节课主要讲spn和rdp协议, 案例一域横向移动RDP传递-Mimikatz rdp是什么,rdp是一个远程的链接协议,在linux上面就是ssh协议, 我们在前期信息收集的时候,得到一些hash值和明文密码可以进行一些相关协议的链接的&am…

用 Node.js 写一个爬虫

自己设计一个网站,然后去爬取别人家页面的数据来做一个自己的网站。哈哈哈,如果自己写着玩可能没啥事,但如果用这个网站来获利,你可能就要被寄律师函了,毕竟这有点‘刑’。这篇文章呢,就带大家爬取豆瓣TOP2…

Peter算法小课堂—浮点数危机

大家先想想下面这个代码运行结果&#xff1a; #include <bits/stdc.h> using namespace std; int main(){double x5.2;double y4.11.1;cout<<(x<y)<<endl;cout<<x-y<<endl;return 0; } 最终发现&#xff0c; &#xff1f;&#xff1f;&…

HDMI2.1输入转4Port MIPI/LVDS输出,嵌入式SPI闪存固件存储,VR和AR应用首选国产芯片方案-LT6911GXC

描述 LT6911GXC是一款高性能的HDMI2.1到MIPI或LVDS芯片&#xff0c;用于VR/显示应用。 HDCP RX作为HDCP中继器的上游&#xff0c;可配合其他芯片的HDCPTX实现中继器功能。 对于HDMI2.1输入&#xff0c;LT6911GXC可以配置为3/4通道。自适应均衡使其适合于长电缆应用&#xff0c;…

Python集成开发工具

第二章、IDE&#xff08;PyCharm&#xff09; 一、设置py文件模板 设置模版 二、格式化代码设置 三、PyCharm运行python源文件的模式 第一次按照何种模式执行测试用例&#xff0c;后续都会按照这种方式去执行 普通模式&#xff0c;unittest模式&#xff0c;pytest模式介绍 四…

C# Onnx yolov8n forklift detection

目录 效果 模型 项目 代码 下载 C# Onnx yolov8n forklift detection 效果 模型 Model Properties ------------------------- date&#xff1a;2023-12-25T16:22:05.530078 author&#xff1a;Ultralytics task&#xff1a;detect license&#xff1a;AGPL-3.0 https:/…

OCP NVME SSD规范解读-4.NVMe IO命令-1

针对NVMe-IO-1到NVMe-IO-14的解读如下&#xff1a; NVMe-IO-1&#xff1a; 设备应支持所有必需的NVMe I/O命令。这是设备能够进行基本数据读写操作的基础要求。NVMe I/O命令包括读、写、删除、擦除等操作&#xff0c;这些是存储设备的核心功能。 NVMe-IO-2&#xff1a; 设备应…

11、分布式事务高频面试题

1、什么是分布式事务 在分布式系统中&#xff0c;一个业务因为跨越不同数据库或者跨越不同微服务而包含多个子事务&#xff0c;要求所有子事务同时成功或失败&#xff0c;这就是分布式事务。 比如一个电商系统的下单操作需要请求三个服务来完成&#xff0c;这三个服务分别是&…

【前端技术】LocalForage数据存储

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…

2022年全球运维大会(GOPS深圳站)-核心PPT资料下载

一、峰会简介 GOPS 主要面向运维行业的中高端技术人员&#xff0c;包括运维、开发、测试、架构师等群体。目的在于帮助IT技术从业者系统学习了解相关知识体系&#xff0c;让创新技术推动社会进步。您将会看到国内外知名企业的相关技术案例&#xff0c;也能与国内顶尖的技术专家…

Asp .Net Core 集成 FluentValidation 强类型验证规则库

文章目录 入门程序安装案例&#xff1a;登录 验证器内置验证器自定义验证器编写自定义验证器可重复使用的属性验证器 本地化DI自动验证 官网&#xff1a;https://docs.fluentvalidation.net/en/latest/index.html 入门程序 安装 使用 Visual Studio 中的 NuGet 包管理器控制台…

maven在pdf转image上的陷阱

在pdf转image上&#xff0c;需要两个插件&#xff1a; <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.4</version></dependency><dependency><groupId>org.xht…

(2023,提示分布学习,重参数化,正交损失)DreamDistribution:文本到图像扩散模型的提示分布学习

DreamDistribution: Prompt Distribution Learning for Text-to-Image Diffusion Models 公众&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 方法 1.1 文本到图像扩散 1.2 提示…

utf8mb4_0900_ai_ci、utf8mb4_0900_as_ci、utf8mb4_0900_as_cs 这三者有什么区别

utf8mb4_0900_ai_ci, utf8mb4_0900_as_ci, 和 utf8mb4_0900_as_cs 是 MySQL 数据库中使用的字符集和校对规则。这些校对规则决定了如何比较和排序字符数据。它们属于 utf8mb4 字符集&#xff0c;这是 UTF-8 编码的超集&#xff0c;支持最多 4 个字节的字符&#xff0c;能够存储…

前端 js 基础(2)

js For In for in 循环遍历 person 对象每次迭代返回一个键 (x)键用于访问键的值键的值为 person[x] 如果索引顺序很重要&#xff0c;请不要在数组上使用 for in。 索引顺序依赖于实现&#xff0c;可能不会按照您期望的顺序访问数组值。 当顺序很重要时&#xff0c;最好使用 f…