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

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...

2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案

一、延迟敏感行业面临的DDoS攻击新挑战 2025年&#xff0c;金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征&#xff1a; AI驱动的自适应攻击&#xff1a;攻击流量模拟真实用户行为&#xff0c;差异率低至0.5%&#xff0c;传统规则引…...