当前位置: 首页 > 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; 当前的人在线段上的每一个位置观察风车都会得到一个顺…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...