一:MPP是什么
MPP(Massively Parallel Processing,大规模并行处理技术)是一种数据库架构,它允许使用多个独立的处理节点并行处理数据,极大提高了数据处理速度。这种架构下,每个节点都自主管理自己的内存和存储,节点间通过高速网络相连,但不共享资源,提升了系统的扩展性和稳定性。
MPP数据库是一种采用“Shared Nothing”架构: 每个节点独立,不共享内存和存储资源,通过高速网络相互连接。 这种设计有利于系统水平扩展, 因为添加新节点不会影响现有节点的性能。
二:MPP发展历史
MPP(Massive Parallel Processing)数据库是一种专注于存储、管理和分析大规模数据的数据库分支。它的发展历史可以概括如下:
- 初期发展(1984年以后):行业内从1984年开始推出基于多个关系数据库(Postgres为主)组成的MPP数据库方式来提升计算能力
- 代表性产品涌现:随着MPP概念的发展,一些代表性的MPP数据库产品开始出现,如Teradata、Netezza、Vertica等。它们采用了大规模并行计算或分布式计算,以应对大数据量和复杂计算需求。
- 并行化编程模型:MPP采用了并行化编程模型,通过多个独立的处理单元协同工作,以并行处理不同部分的程序,提高了整个数据库系统的性能和数据处理能力。
- 主流数据库厂商加入:主流的关系数据库厂商开始推出自己的MPP版本,以满足不断增长的数据分析需求。
- 开源和国内发展:除了商业产品外,也出现了一些开源的MPP数据库和国内厂商推出的MPP数据库,进一步丰富了MPP数据库的生态系统。
三:优点和缺点
优点:
- .高性能:通过并行处理,MPP 架构可以显著提高数据处理速度。
- 低延迟:MPP 架构中,各个节点的运算延迟相对较低。
缺点:
- 扩展性:由于非共享架构,MPP 架构在存储位置上不透明,数据在存储时通过哈希确定物理节点。在执行任务时,无法确定数据的位置,因此查询任务需要在所有节点上执行。这使得 MPP 架构在扩展性方面较差,尤其是在大规模数据处理时,单节点瓶颈会成为整个系统的短板。
- 故障率:随着集群规模的增大,节点的故障率会逐渐升高,这将导致整个系统的性能瓶颈越发明显