当前位置: 首页 > news >正文

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-19 12:00:00
🍒开奖时间:2023-09-19 14:00:00
🍀中奖通知方式:私信通知
🍉兑奖方式:截图证明

相关文章:

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

文章目录 导读01 SMP1. SMP 的典型特征2. SMP的优缺点 02 分布式MPP计算架构1. MPP 架构核心原理2. MPP 典型特征3. MPP优缺点 写作末尾 导读 当今数据计算领域主要的应用程序和模型可大致分为在线事务处理(On-line Transaction Processing ,OLTP&#…...

华为OD机试真题【寻找最大价值的矿堆】

1、题目描述 【寻找最大价值的矿堆】 给你一个由 ‘0’(空地)、’1’(银矿)、’2’(金矿)组成的的地图, 矿堆只能由上下左右相邻的金矿或银矿连接形成。超出地图范围可以认为是空地。 假设银矿…...

Java Maven 项目读取项目版本号

java读取 pom.xml 文件中设置的版本号 1. 在 src/main/resources/下新建 app.properties 文件&#xff1a; app.version${project.version} 2. 在pom.xml 中增加 <build> <resources> <resource> <directory>src/main/resources</di…...

Lesson4-1:OpenCV图像特征提取与描述---角点特征

学习目标 理解图像的特征知道图像的角点 1 图像的特征 大多数人都玩过拼图游戏。首先拿到完整图像的碎片&#xff0c;然后把这些碎片以正确的方式排列起来从而重建这幅图像。如果把拼图游戏的原理写成计算机程序&#xff0c;那计算机就也会玩拼图游戏了。 在拼图时&#xff…...

C++ 基础(一)题目练习

一、使用输出运算符输出一个长方形&#xff0c; 如下图所示&#xff1a; #include <iostream> using namespace std; int main() {cout << "*******" << endl;cout << "*******" << endl;cout << "*******"…...

Webpack5入门到原理

Webpack5学习 尚硅谷Webpack5新版视频教程 B站直达&#xff1a;https://www.bilibili.com/video/BV14T4y1z7sw 百度网盘&#xff1a;https://pan.baidu.com/s/114lJRGua2uHBdLq_iVLOOQ 提取码&#xff1a;yyds 阿里云盘&#xff1a;https://www.aliyundrive.com/s/UMkmCzdWsGh&…...

地形有通挂支隘险远六种情况

地形有通、挂、支、隘、险、远六种情况 【安志强趣讲《孙子兵法》第34讲】 第十一篇&#xff1a;地形篇 【全文大白话】 地形有各种情况&#xff0c;行军有各种情况&#xff0c;用好地形获得交战的主动权。 【原文】 孙子曰&#xff1a;地形有通者&#xff0c;有挂者&#xff0…...

C++多态案例-设计计算器类

1.前置知识点 多态是面向对象的三大特性之一 多态分为两类 静态多态&#xff1a;函数重载和运算符重载都属于静态多态&#xff0c;复用函数名动态多态&#xff1a;派生类和虚函数实现运行时多态 静态多态和动态多态的区别 静态多态的函数地址早绑定-----编译阶段确定函数地…...

复制tr的一行数据或者复制数据使用,使用jq和php

效果图&#xff1a; 2.Html <!--复制的tr数据&#xff0c;s----------------------------------------------------------------------------------------------->{foreach from$arrs keykk itemvv} <tr><td style"text-align:center;" >1</t…...

软件测试的基础(1)

程序员(开发) :编写程序代码(实现产品需求) 产品:收集并设计需求-需求文档(根据用户需求进行产品设计) UI设计师:设计界面,向外展示的形态 前端:用代码实现页面的显示 DBA:数据库设计(系统数据之间的关联) 运维:版本控制和发布、升级迭代,环境搭建和维护 客服:客户支持,…...

基于Java+SpringBoot+Vue前后端分离库存管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

Secrets in Kubernetes (K8s)

摘要 在Kubernetes&#xff08;K8s&#xff09;中&#xff0c;Secrets是一种用于存储敏感数据的资源对象。它可以用于存储密码、API密钥、数据库凭证等敏感信息&#xff0c;以便在应用程序中使用。 设计实现说明如下&#xff1a; 加密存储&#xff1a;Kubernetes使用Base64编…...

模板测试和深度测试在cocoscreator中的应用

模板测试(Stencil Test)&#xff1a; 当片段着色器处理完一个片段之后&#xff0c;模板测试(Stencil Test)会开始执行&#xff0c;和深度测试一样&#xff0c;它也可能会丢弃片段。接下来&#xff0c;被保留的片段会进入深度测试&#xff0c;它可能会丢弃更多的片段。模板测试…...

手机便签功能在哪里?如何在便签里添加文字图片视频?

手机已成为我们生活中不可或缺的工具&#xff0c;而在使用手机的过程中&#xff0c;我们经常需要随手记录一些重要的事情。那么&#xff0c;如何高效便捷地记录这些事情呢&#xff1f;答案就是使用手机便签软件。但是&#xff0c;有很多人不知道手机便签功能在哪里&#xff1f;…...

Java 中 List 的 7 种遍历方式 及 性能对比

# for i 循环 for (int i 0; i < list.size(); i) {list.get(i); }# 增强for循环 for (int item : list) { }# iterator for 循环 for (Iterator<Integer> iterator list.iterator(); iterator.hasNext(); ) {iterator.next(); }# iterator while 循环 Iterator<…...

【Github】git本地仓库建立与远程连接

文章目录 前言一、git简介二、git下载2.1下载地址 三、git安装3.1安装3.2 配置3.3 config设置&#xff08;增删改查&#xff09; 四.github与git连接——本地Git仓库4.1 建本地的版本库4.2 源代码放入本地仓库4.3提交仓库 五、github与git的连接——远程连接5.1 创建SSH Key5.2…...

【瑞萨零基础入门】瑞萨MCU零基础入门系列教程(更新连载中)

瑞萨MCU零基础入门系列教程 前言 得益于瑞萨强大的MCU、强大的软件开发工具(e studio)&#xff0c;也得益于瑞萨和RA生态工作室提供的支持&#xff0c;我们团队编写了《ARM嵌入式系统中面向对象的模块编程方法》&#xff0c;全书37章&#xff0c;将近500页: 讲解面向对象编程…...

Bean 的生命周期总结

目录 一、Bean生命周期的五个阶段 Bean的初始化 二、PostConstruct 和 PreDestroy 各自的效果 三、 实例化和初始化的区别 四、为什么要先设置属性在进⾏初始化呢&#xff1f; 一、Bean生命周期的五个阶段 Java 中的公共类称之为 Bean 或 Java Bean&#xff0c;而 Spring 中的…...

【Python】环境的搭建

前言 要想能够进行 Python 开发, 就需要搭建好 Python 的环境. 需要安装的环境主要是两个部分: 运行环境: Python开发环境: PyCharm 一、安装 Python 1.找到官方网站 官网&#xff1a;Welcome to Python.org 2.找到下载页面 点击download中的Windows 3.选择稳定版中的Win…...

2021 ICPC 昆明 I Mr Main and Windmills(直线与线段的交点)

2021 ICPC 昆明 I Mr. Main and Windmills(直线与线段的交点) I Mr. Main and Windmills 大意&#xff1a;给出一条线段 &#xff0c; 一个人从线段的起点走到线段的终点 &#xff0c; 线段的一侧有若干风车 &#xff0c; 当前的人在线段上的每一个位置观察风车都会得到一个顺…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...