概念篇
大规模并行处理
大规模并行处理(Massively Parallel Processing或者"ShareNothing")节点传统上是由单一CPU、少量的内存、部分I/O、节点间的互联以及每个节点的操作系统的一个实例组成。节点间的互联(以及驻留于各节点的操作系统实例)不需要硬件一致性,因为每个节点拥有其自己的操作系统以及自己唯一的物理内存地址空间。因而,一致性是在软件中通过“消息传送”(messagepassing)实现的。
MPP的性能调整涉及数据分区,以便最大限度地减少必须在节点之间传送的数据量。拥有数据自然分区的应用程序可以正常运行于大型MPP系统,例如电视点播(videoondemand)应用。
COMA
COMA意为“高速缓存唯一的存储器体系结构”(CacheOnly Memory Architecture),它是CCNUMA体系结构的竞争者,两者具有相同的目标,但实现方式不同。COMA节点不对内存部件实行分布,也不通过尖端的互联设备使整个系统保持一致性。COMA节点没有内存,只在每个构建块中配置大容量的高速缓存。互联设备依然必须维护一致性,一个操作系统拷贝运行于整个构建块,但没有特定数据的“本地"内存单元。COMA硬件可以补偿与内存分配和进程调度相关的不合适的操作系统算法。但它需要修改操作系统的虚拟存储子系统,除高速缓存一致性互联板之外,还需要特别定制内存板。
群集
群集(或群集系统)由两个或更多的节点组成,每个节点运行各自的操作系统拷贝;每个节点运行各自的应用拷贝;节点共享其它公用资源池。与之对照,MPP系统的节点不共享存储资源。这是群集化SMP系统与传统MPP系统之间的主要差别。重要的是,要注意在群集系统中必须在试图更新共用存储库(数据库)任何部分之前执行锁定,以保持数据库内部的一致性。正是由于这一需求使群集的管理与扩充比单个SMP节点更难以执行。
从群集系统获取更多性能,比在节点内实现扩充更困难。主要障碍是单节点环境外的通讯成本问题。往节点外部传送信息必须忍受软件一致性的较长延迟。拥有大量进程间通讯的应用程序在SMP节点内工作效果更好,因为通讯非常迅速。如果减少跨节点的进程间通讯需求,应用程序就可以在群集和MPP系统实现更有效的扩展。
反射内存群集
反射内存群集(Reflective Memory Cluster,RMC)是群集化系统,在节点之间有一个内存复制或转储机制以及一个锁定信息流互联设备 。转储使用软件一致性技术来执行。反射内存群集系统为应用程序提供较迅速的消息传送,并使各个节点不必经过磁盘就能获得相同的内存页面。在RMC系统,从其它节点的内存获得数据,比返回磁盘数据要快上百倍。显然,只有节点间需要共享数据,而且应用能够利用共享的数据,才可实现性能提高。
反射内存群集比传统的基于网络的消息传送速度更快,因为一旦建立连接,消息就可以由应用节点发送,不会干扰操作系统。
NUMA
NUMA范畴包含若干种不同体系结构,从广义上来讲,以下结构均可以视为拥有非均匀存储器访问延迟:RMC、MPP、CCNUMA以及COMA,但它们之间的差异却相当大。RMC和MPP有多个节点,属于“NUMA"的部分是节点间的软件一致性。至于CNUMA和COMA,其硬件一致性是在节点内部,其“NUMA"组件是在一个节点内。