MPP架构


随着分布式、并行化技术成熟应用,MPP引擎逐渐表现出强大的高吞吐、低时延计算能力,有很多采用MPP架构的引擎都能达到“亿级秒开

MPP是由多台SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。每个节点只访问自己的资源,所以是一种完全无共享(Share Nothing)结构。MPP结构扩展能力最强,理论可以无限扩展。由于MPP是多台SPM服务器连接的,每个节点的CPU不能访问另一个节点内存,所以也不存在异地访问的问题

每个节点内的CPU不能访问另一个节点的内存,节点之间的信息交互是通过节点互联网络实现的,这个过程称为数据重分配。

但是MPP服务器需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。目前,一些基于MPP技术的服务器往往通过系统级软件(如数据库)来屏蔽这种复杂性。举个例子,Teradata就是基于MPP技术的一个关系数据库软件(这是最早采用MPP架构的数据库),基于此数据库来开发应用时,不管后台服务器由多少节点组成,开发人员面对的都是同一个数据库系统,而无需考虑如何调度其中某几个节点的负载。


SMP


SMP即对称多处理器结构,就是指服务器的多个CPU对称工作,无主次或从属关系。SMP服务器的主要特征是共享,系统中的所有资源(如CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服务器的主要问题,即扩展能力非常有限。


NUMA


即非一致存储访问结构。这种结构就是为了解决SMP扩展能力不足的问题,利用NUMA技术,可以把几十个CPU组合在一台服务器内。NUMA的基本特征是拥有多个CPU模块,节点之间可以通过互联模块进行连接和信息交互,所以,每个CPU可以访问整个系统的内存(这是与MPP系统的重要区别)。但是访问的速度是不一样的,因为CPU访问本地内存的速度远远高于系统内其他节点的内存速度,这也是非一致存储访问NUMA的由来。

这种结构也有一定的缺陷,由于访问异地内存的时延远远超过访问本地内存,因此,当CPU数量增加时,系统性能无法线性增加。


批处理架构和MPP架构


批处理架构和MPP处理架构的相同点是他们都用的分布式处理方式,即当有任务需要执行的时候,需要并行的分配任务到多个节点,然后根据每个节点的计算结果汇总后返回给用户
不同点是对于批处理架构(Hadoop系)来说,每个子任务都是随机分配到Executor的,但是对于MPP架构来讲,每个处理数据的task被绑定到持有该数据切片的指定Executor上。

批处理的优势:
对于批处理架构来说,如果某个Executor执行过慢,那么这个Executor会慢慢分配到更少的task执行,批处理架构有个推测执行策略,推测出某个Executor执行过慢或者有故障,则在接下来分配task时就会较少的分配给它或者直接不分配,这样就不会因为某个节点出现问题而导致集群的性能受限。

批处理的缺陷:
任何事情都是有代价的,对于批处理而言,它的优势也造成了它的缺点,会将中间结果写入到磁盘中,这严重限制了处理数据的性能

MPP的优势:
MPP架构不需要将中间数据写入磁盘,因为一个单一的Executor只处理一个单一的task,因此可以简单直接将数据stream到下一个执行阶段。这个过程称为pipelining,它提供了很大的性能提升。

MPP的缺陷:
对于MPP架构来说,因为task和Executor是绑定的**,如果某个Executor执行过慢或故障,将会导致整个集群的性能就会受限于这个故障节点的执行速度(所谓木桶的短板效应)**,所以MPP架构的最大缺陷就是——短板效应。另一点,集群中的节点越多,则某个节点出现问题的概率越大,而一旦有节点出现问题,对于MPP架构来说,将导致整个集群性能受限,所以一般实际生产中MPP架构的集群节点不易过多。

MPP架构,SMP架构,NUWA架构相关推荐

  1. 架构师之路 — 部署架构 — 超大规模负载均衡架构演进

    目录 文章目录 目录 超大规模负载均衡架构演进技术路线 0.单机架构 1.HTTP 与 DB 服务器分开部署 2.引入本地缓存和分布式缓存 3.引入反向代理实现负载均衡 4.数据库读写分离 5.数据库 ...

  2. ibm服务器芯片架构,IBM服务器X架构技术综述(图)

    [IT168报道]说到服务器技术,很容易使人联想起诸如服务器的对称处理器(SMP)技术.热拔插技术.磁盘阵列和ECC内存纪错技术等,但这些都只能属于通用的服务器技术,也就是每个服务器厂商都可以用,而且 ...

  3. Android架构篇-1 项目组织架构

    Android架构篇-1 项目组织架构 模块化分层 1.结构清晰,各模块代码分离,符合高内聚低耦合,快速定位查找代码 2.团队协作开发灵活,互不影响,各模块完成后合并即可完成整体app 3.抽离公共层 ...

  4. 企业架构研究总结(39)——TOGAF架构能力框架之架构委员会和架构合规性

    3. 架构委员会 正如前面所说,一个用来对架构治理策略的实现进行监督的跨组织的架构委员会是架构治理策略成功的主要要素之一.架构委员会应该能够代表所有主要干系人的需求,并且通常还需要对整个架构的审查及维 ...

  5. Tomcat 架构原理解析到架构设计借鉴

    ‍ 点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...

  6. 谈谈架构的本质和架构分类

    一. 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解.此君说的架构和彼君理解的架构未必是一回事.因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这 ...

  7. 系统由单体架构到微服务架构到底是如何演进的?

    随着互联网的发展,互联网企业的业务也在不断的飞速发展,进而导致系统的架构也在不断的发生着变化.总体来说,系统的架构大致经历了:单体应用架构->垂直应用架构->分布式架构->SOA架构 ...

  8. 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...

  9. 一文看懂Java微服务架构,WEB2.0,垂直架构,分布式架构,微服务架构

    Java微服务架构 目录: 了解开发环境&生成环境 WEB1.0 & WEB2.0 垂直架构 分布式架构 微服务架构 1.了解开发环境&生产环境 1.1 开发环境 平时在写代码 ...

  10. DotNET企业架构应用实践-系统架构与性能-缓存技术与ORM中的缓存查询技术

    系列回顾 在前面的文章DotNET企业架构应用实践-系统架构与性能-理论依据及相关做法一文中我介绍了系统性能优化的理论做了一个概括的介绍,也简单的介绍了性能优化的过程及相关的技术关注点或者说是做法. ...

最新文章

  1. 【分布式】通过Numpy创建Dask.array
  2. PAT甲级1140 Look-and-say Sequence:[C++题解]统计连续个数
  3. # 管道已结束_CIPP内衬紫外线固化法用于污水管道非开挖修复
  4. ABAP 使用DYNP_VALUES_READ来获取屏幕字段值
  5. 荣耀X8碎屏2020-05-14
  6. OpenCV捕获格雷码模式
  7. gulp 项目构建 代码压缩与混淆
  8. jenkins定时任务
  9. c# 操作excle
  10. 3到6年的.NETer应该掌握哪些知识
  11. python的符号函数得到的数字类型_Python笔记——数字类型的几个函数
  12. Oracle建立表空间,用户等环节
  13. 列运算_MIT—线性代数笔记06 列空间和零空间
  14. java textarea append_JavaFX TextArea.append()导致java.lang.NullPointerException
  15. SAP License:SAP顾问如何写运维报告
  16. Linux命令行上传本地文件到服务器 、 下载服务器文件到本地
  17. java记事本教程_使用记事本开发java程序的步骤
  18. 微软drive服务器,OneDrive:微软云存储服务
  19. 高景一号01星遥感影像解译数据分辨率是多少
  20. python爬虫—爬取拉钩网

热门文章

  1. python pandas 分类汇总用法_python数据分析之pandas常用命令整理
  2. SpringBoot2.0+ElasticSearch网盘搜索实现
  3. Mac上面Mov转gif
  4. springmvc中的视图解析器详细配置
  5. 全网最全,项目管理工具大合集!
  6. 微信支付 商户平台 v3 API调用 发放代金卷 经验
  7. JDK:MAC系统配置多版本的JDK
  8. php用户量剧增导致cpu100%解决办法
  9. vscode篇---设置python路径,项目主目录和添加参数
  10. python录音pyaudio_『开发技巧』Python音频操作工具PyAudio上手教程