SMP(对称多处理器结构,Symmetric Multi-Processor)数据库架构部署成本相对较低,可以运行从大型服务器到中型商用硬件的各种设备。它在提供合理的性能和吞吐量方面拥有良好的记录。
下图说明了此体系结构的基本特性 - 连接到本地或网络连接磁盘的单台计算机。实际上,有一份数据副本,因此数据一致性不是挑战。
MPP表示Massive Parallel Processing,海量并行处理结构。
下图提供了MPP体系结构的图示,其中协调SMP服务器接受用户SQL语句,这些语句分布在多个独立运行的数据库服务器上,这些服务器一起作为单个集群机器运行。每个节点都是一台独立的计算机,具有自己的CPU,内存和直接连接的磁盘。
使用此解决方案,在加载数据时,可以使用一致的散列算法来均匀地分布数据,这些(如果一切顺利)将导致跨集群的工作的均衡分布。MPP体系结构是数据仓库和分析平台的出色解决方案,因为查询可以分解为组件部分,并在服务器之间并行执行,从而显着提高性能。典型的产品有Teradata,在MPP平台上存储和处理的数据量可以达到TB或PB级别。
与SMP解决方案相比,MPP架构具有几个明显的优势,其中包括:
性能:这是MPP系统真正擅长的领域。提供的数据和处理可以在集群中的节点之间并行地均匀执行,即使是最大的SMP服务器,性能也会显着增加。
可伸缩性和并发性:与SMP解决方案不同,基于MPP的系统可以选择逐步添加计算和存储资源,并且吞吐量大大提高了算术速率。添加额外的相同大小的节点可以提高系统处理其他查询的能力,而不会显着降低性能。
成本和高可用性:一些基于MPP的数据仓库解决方案旨在在廉价的商用硬件上运行,而无需可能包含成本的企业级双冗余组件。这些解决方案通常使用自动数据复制来提高系统弹性并确保高可用性。这可以非常有效地利用资源,并且避免了许多基于SMP的解决方案所使用的大量未使用的热备用的成本。
读写吞吐量:当数据分布在整个系统中时,该解决方案可以实现非常高的吞吐量,因为读写操作可以在集群中的独立节点上并行执行。
与MySQL和PostgreSQL(开源数据库)不同,Hadoop不是单一产品,而是相关项目的开源生态系统。Hadoop/HDFS架构和MPP架构类似,下图说明了相似性。
Hadoop旨在处理非常大的数据集和大型集群。
Hadoop不是单一产品,而是一个庞大的软件生态系统,部署通常需要熟练掌握一系列工具,包括HDFS、Yarn、Spark、Impala、Hive、Flume、Zookeeper和Kafka。即使是大规模的MPP解决方案,部署和维护也比Hadoop简单得多。