MPP 与 SMP 的区别,终于有人讲明白了【文末送书】

文章目录

  • 导读
  • 01 SMP
    • 1. SMP 的典型特征
    • 2. SMP的优缺点
  • 02 分布式MPP计算架构
    • 1. MPP 架构核心原理
    • 2. MPP 典型特征
    • 3. MPP优缺点
  • 写作末尾


导读

当今数据计算领域主要的应用程序和模型可大致分为在线事务处理(On-line Transaction Processing ,OLTP)、决策支持系统(Decision-making Support System ,DSS)和企业信息通信(Business Communication)三大类。计算平台的体系结构通常有小型独立服务器、SMP (Symmetrical Multi-Processing, 对称多处理)、MPP(大规模并行处理)和 NUMA(Non Uniform Memory Access,非均匀存储器存取)结构。

这里,本篇文章重点讲一下 SMP 与 MPP。

01 SMP

SMP 是指在一个计算机上汇集了一组处理器(多核 CPU),各 CPU 之间共享内存子系统以及总线结构。代表数据库有 Oracle 、MySQL 。SMP 架构原理图如图1所示。

在这里插入图片描述

1. SMP 的典型特征

  • 每个处理器共享操作系统的一个副本 。

  • 支持共享架构。

  • 多任务并行架构,是一个紧耦合的多处理器系统。

  • 多个处理器之间共享整个工作。

  • 没有单独的缓存池或锁表,全部共享。

  • 通过购买更大的系统来实现扩展。

  • 容易出现资源争用等问题。

  • 创建分布式架构需要复杂的设计,并且只能部分实现。

  • 软件提供的内存可用量完全取决于 RAM 和负载的数量。

2. SMP的优缺点

在 SMP 中,每个 CPU 都有自己的缓存,无论双核还是四核,其余资源都是共享的。SMP 的优点如下。

  • 共享单一操作系统副本。

  • 应用程序编程模式简便。

  • 管理成本低,易于维护管理。

SMP 的缺点如下。

  • 伸缩扩展能力非常有限。对 SMP 服务器进行扩展的方式包括增加内存、使用更快 的 CPU、增加 CPU、扩充 I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存 储设备)。这样的架构模式直接导致内存上线受限制。

  • CPU 利用率低。由于每个 CPU 必须通过相同的内存总线访问相同的内存资源,因 此随着 CPU 数量的增加,内存访问冲突将迅速增加,最终造成 CPU 资源的浪费,大大降 低 CPU 性能的有效性。

  • 总线有瓶颈。当大型程序的处理要求大于共享总线时,总线就没有能力进行处理 了,这时共享的总线就成为性能瓶颈。

  • 容错性和效率较低。

SMP 的典型应用场景是托管小型网站和电子邮件服务器等。

02 分布式MPP计算架构

MPP(Massively Parallel Processing,大规模并行分析处理)架构模式,是典型的分布 式计算模式。MPP 的各节点不共享资源,每个执行节点可以独自完成数据的读取和计算。

1. MPP 架构核心原理

将数据集分布在许多机器或节点上,以处理大量数据。

  • 每个节点都有独立的磁盘存储系统和内存系统。

  • 业务数据根据数据库模型和应用特点划分到各个节点上。

  • 每个数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体 提供数据库服务。

在 MPP 架构中,各节点都包含自己的存储和计算功能,可以独立执行查询的一部分。 最后,在内存里进行数据合并,并将结果返回客户端。MPP 具有可伸缩、高可用、高性能、 资源共享等优势。

MPP 由许多松耦合的处理单元组成。注意,这里是指处理单 元而不是处理器。每个单元内的 CPU 都有自己私有的资源,如总线、内存、硬盘等。每个 单元内都有操作系统和管理数据库实例。这种结构最大的特点在于不共享资源。代表数据库 有 ClickHouse 、Snowflake 、Azure Synapse Analytics 、Impala 、Greenplum 、Elasticsearch、 Presto 。MPP 架构原理图如图2所示。

在这里插入图片描述

2. MPP 典型特征

  • 每个处理器都使用自己的操作系统和内存。

  • 支持无共享架构。

  • 多个处理器对单个任务进行协调处理。每个处理器处理任务的不同部分。

  • 每个节点只负责处理自己磁盘上的任务。

  • 每个节点维护自己的一组锁表和缓存池,增加了内存功能的可用性。

  • 只需添加机架即可轻松实现可扩展性,支持 TB 到 PB 数据量级的水平扩展。

  • 完全不共享资源,所以不存在资源争用。

  • 被设计为分布式架构。

  • 数据被水平分区,压缩率高,以最佳方式使用内存。

  • 处理器使用消息进行通信。

3. MPP优缺点

MPP 的优点如下。

  • 每个处理器都使用自己的操作系统和内存。

  • 性能好。大规模数据并行处理能力优秀,适合于复杂的大型数据分析与处理场景。

  • 可伸缩。在 MPP 增加节点时,MPP 的性能可以线性扩展。MPP 在数据仓库决策支持和数据挖掘方面占据优势。

  • 低成本。基于 MPP 的数据仓库解决方案旨在廉价的商用硬件上运行,不需要可能 包含成本的企业级双冗余组件。

  • 高可用。使用自动数据复制来提高系统弹性并确保高可用性。

  • 高吞吐量。MPP 可以实现非常高的吞吐量,因为读写操作可以在集群中的独立节点 上并行执行。

MPP 的缺点如下。

  • 管理成本高。MPP 需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过 程,通信复杂。当通信时间长时, MPP 性能会变差。目前一些基于 MPP 技术的服务器一般 通过系统级软件(如数据库)来屏蔽这种复杂性。

  • 短板效应:如果遇到“短板”节点,整个引擎的性能将下降到该短板节点的能力(木桶的短板)。MPP 架构不适合异构的机器,它要求各节点配置相同。

MPP 的典型应用场景是数据仓库、大规模数据处理和数据挖掘等。

关于作者:陈光剑,资深大数据专家、后端技术专家和架构师,拥有超过10年的技术研发和管理经验,一线实战经验丰富。现就职于字节跳动,曾就职于阿里巴巴,主要从事企业智能数字化经营管理、电商智能数字化运营等系统架构设计和研发工作。
图片

在这里插入图片描述

本文摘编于《ClickHouse入门、实战与进阶》(书号:9787111727170),经出版方授权发布,转载请标明文章出处。

推荐理由:字节跳动大数据专家撰写,集大成之作,4个维度全面展开,上百个案例,入门标准参考书,日常工作案头必备。

写作末尾

🌻《ClickHouse入门、实战与进阶》免费包邮送出
🌴根据博客阅读量本次活动一共赠书若干本,评论区抽取若干位小伙伴免费送出
500-1000 赠书2本
1000-1500 赠书3本
1500-2000 赠书4本
2000+ 赠书5本
🌵参与方式:关注博主、点赞、收藏、评论区任意评论(不低于10个字,被折叠了无法参与抽奖)”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次)
🌼活动截止时间:2023-09-14 12:00:00
🍒开奖时间:2023-09-14 14:00:00
🍀中奖通知方式:私信通知
🍉兑奖方式:截图证明

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

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

相关文章

如何为虚拟机添加磁盘,扩充原有分区的磁盘空间

如何为虚拟机添加磁盘,扩充原有分区的磁盘空间 关机新增磁盘 虚拟机关机的状态下,在 VMware 当中新增一块磁盘,选中左边要添加磁盘的虚拟机镜像,然后鼠标右键点击设置。 选中磁盘点击添加 点击下一步,悬着SCSI这个…

vue3 封装千分位分隔符自定义指令

toLocaleString作用:在没有指定区域的基本使用时,返回使用默认的语言环境和默认选项格式化的字符串。可点击进入MDN查看 // 千分位分隔符指令 import { Directive, DirectiveBinding } from vueconst thousandSeparator: Directive {mounted(el: any, …

好玩的js特效

记录一些好玩的js特效 1、鱼跳跃特效 引入jquery:https://code.jquery.com/jquery-3.7.1.min.js 源码如下&#xff1a; <!--引入jquery--> <script src"https://code.jquery.com/jquery-3.7.1.min.js"></script> <!--引入跳跃源码--> <s…

深入理解 JVM 之——字节码指令与执行引擎

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 类文件结构 Write Once&#xff0c;Run Anywhere 对于 C 语言从程序到运行需要经过编译的过程&#xff0c;只有经历了编译后&#xff0c;我们所编写的代码才能够翻译为机器可以直接运行的二进制代码&#x…

230. 二叉搜索树中第K小的元素

230. 二叉搜索树中第K小的元素 C代码&#xff1a;二叉树 int kthSmallest(struct TreeNode* root, int k){// struct TreeNode** stack malloc(sizeof(struct TreeNode*) * 10000); // root 是结构体的地址struct TreeNode* stack[10000];int stkTop 0;while (root ! NULL …

mysql 查询优化 、索引失效

查询优化 物理查询优化 通过索引和表连接方式等技术来进行优化&#xff0c;这里重点需要掌握索引的使用 逻辑查询优化 通过SQL 等价变换 提升查询效率&#xff0c;直白一点就是说&#xff0c;换一种查询写法执行效率可能更高 索引失效 计算、函数、类型转换&#xff08;自动或…

FasterNet(PConv)paper笔记(CVPR2023)

论文&#xff1a;Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks 先熟悉两个概念&#xff1a;FLOPS和FLOPs&#xff08;s一个大写一个小写&#xff09; FLOPS: FLoating point Operations Per Second的缩写&#xff0c;即每秒浮点运算次数&#xff0c;或…

【计算机网络】 确认应答机制与超时重传

文章目录 ACK机制——确认应答机制超时重传 ACK机制——确认应答机制 当我们客户端发送了一个数据&#xff0c;seq是1100&#xff0c;那么服务端在收到时就会回一个ack101的ACK包&#xff0c;代表101之前的包我都收到了&#xff0c;下面请你从101继续发送。然后客户端就会发送1…

Alins - 化繁为简、极致优雅的WebUI框架

最近造了个js框架 Alins&#xff0c;分享一下&#xff1a; &#x1f680; Alins: 最纯粹优雅的WebUI框架 English | 文档 | 演练场 | 更新日志 | 反馈错误/缺漏 | Gitee | 留言板 0 简介 0.1 前言 Alins是一款极致纯粹、简洁、优雅的Web UI框架。秉持0-API、Less is More 的…

慕尼黑主题活动!亚马逊云科技生成式AI全新解决方案,引领未来移动出行领域

IAA作为世界五大车展之一&#xff0c;一直对全球汽车产业的发展起着关键作用&#xff01;2023年9月5日在慕尼黑开幕的IAA MOBILITY 2023以“体验联动智慧出行”为主题&#xff0c;紧跟移动出行领域的前沿变化&#xff0c;将汇集整车企业、开发者、供应商、科技公司、服务提供商…

【小沐学Unity3d】3ds Max 多维子材质编辑(Multi/Sub-object)

文章目录 1、简介2、精简材质编辑器2.1 先创建多维子材质&#xff0c;后指定它2.2 先指定标准材质&#xff0c;后自动创建多维子材质 3、Slate材质编辑器3.1 编辑器简介3.2 编辑器使用 结语 1、简介 多维子材质&#xff08;Multi/Sub-object&#xff09;是为一个模形&#xff0…

tab切换,左右加箭头,点击箭头实现tab切换

和正常tab切换一样原理&#xff0c;点击箭头多了步计算 <template><div><div class"tab-container"><p>{{projectName}}</p><div class"banner"><div v-for"(tab, index) in tabs" :key"index&quo…

物联网世界的无线电报之MQTT详解

文章目录 1. 前言1.1. 物联网与MQTT的关系1.2. MQTT的重要性及应用场景 2. MQTT基础2.1. MQTT的定义与起源2.2. MQTT的工作原理2.3. MQTT的协议格式2.4. 用java造个轮子 3. 深入理解MQTT3.1. MQTT的主要组件3.1.1. Publisher&#xff08;发布者&#xff09;3.1.2. Subscriber&a…

群晖NAS:通过Docker 部署宝塔面板【注册表:cyberbolt/baota】

群晖NAS&#xff1a;通过 Docker 部署宝塔面板【注册表&#xff1a;pch18/baota】 由于 docker 源地址被墙&#xff0c;在面板里面查询不到注册表&#xff0c;使用 ssh 命令行拉取 1、打开 SSH&#xff0c;链接后打开命令行 这里不赘述&#xff0c;具体自行百度 2、下载 镜像…

笔试记录-扔鸡蛋问题

写目录 一个鸡蛋两个鸡蛋K个鸡蛋 今天面试官问了我这个扔鸡蛋问题&#xff0c;以前学过&#xff0c;但是面试的时候想不起来了&#xff0c;应该是直接寄了&#xff0c;接下来总结一下这个问题的动态规划做法. 问题&#xff1a;有一个N层高的楼&#xff0c;现在给你若干个鸡蛋&a…

华为云云耀云服务器L实例评测|使用宝塔面板管理服务器,并搭建个人博客网站

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号&#xff1a;网络豆 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a; 网络豆的主页​​​​​ 目录 前言 介绍&#xff1a; 一.购买使用华为云云耀服务器 …

【postgresql 基础入门】数据库服务的管理,启动、停止、状态查看、配置加载、重启都在这里

数据库服务管理 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 ​开源贡献&#xff1a; toadb开源库 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff…

解决css设置图片大小不生效的问题

今天在做css布局时发现一个问题&#xff1a;设置图片大小不生效&#xff1a; 如上图所示&#xff1a;左上角两个图标的大小不一致&#xff0c;第一个是56x56,第二个是49x49,所以要把第二个的高度设置成56px&#xff1a; .mi-home img {height: 56px; }但是如上代码&#xff0c;…

R语言STAN贝叶斯线性回归模型分析气候变化影响北半球海冰范围和可视化检查模型收敛性...

原文链接&#xff1a;http://tecdat.cn/?p24334 像任何统计建模一样&#xff0c;贝叶斯建模可能需要为你的研究问题设计合适的模型&#xff0c;然后开发该模型&#xff0c;使其符合你的数据假设并运行&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频…

Python 03(循环语句)

Python03&#xff08;循环语句&#xff09; 文章目录 Python03&#xff08;循环语句&#xff09;一、while语句二、while实现猜数字三、while循环的嵌套while循环嵌套实例需求&#xff1a; 四、for循环1、什么 是for循环2、语法3、执行流程4、for循环的基本使用5、range()函数6…