MPP
MPP(Massively Parallel Processing),大规模并行处理系统。由许多松耦合的处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每个单元内有对应的CPU,内存,硬盘,操作系统和管理数据库的实例复本。最大的特点在于不共享任何资源。其它架构或多或少会共享某些资源(如SMP、NUMA)。
分布式数据库架构
解决数据库扩展能力的方法主要有两个:数据分片和读写分离。
1、数据分片(Sharding)的原理就是将数据做水平切分,Key-Valuestore类型的存储。
优点:
1)可用性高
2)可扩展性,线性扩展
缺点:
公共表由于在所有的分表都要使用,因此要进行复制
2、读写分离架构利用了数据库的复制技术,如cache+DB的读写分离。
优点:
性能不错。
缺点:
不管是Master还是Slave,每个节点都必须保存完整的数据,如果在数据量很大的情况下,集群的扩展能力还是受限于单个节点的存储能力。
如:分布式MySQL,把select发送给负载均衡,而更新发送给master.
Scale-up/out
Scale-up(vertically纵向扩展)typicallyinvolving the addition of CPUs or memory to a single computer.
Scale-out(horizontally横向扩展)add morenodes to a system, such as adding a new computer to a distributed softwareapplication.
Scale up--Scale out--Scale up;成本可控下硬件是首选;逐步解决拆分中成本问题。
Hadoop - Mapreduce
Hadoop是分布式系统基础框架,最核心的设计是:HDFS和MapReduce。HDFS(Hadoop Distributed File System)为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
Mapreduce:
1)Master/JobTracker <- heartbeat -> Slave/TaskTracker
2)TaskTracker又包括:Map,HDFS,Reduce
3)Map 分布式处理;Reduce再把Map的结果集中起来处理
Reference: http://blog.csdn.net/wangloveall/article/details/21407531