分布式数据库:原理与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 分布式技术分类

2.1.1 对称式多处理器架构

对称式多处理器(Symmetric Multi-Processor, SMP)架构指的是一台计算机汇集了多个处理器(CPU),各CPU之间共享内存、子系统以及总线结构。在这种结构中,一台服务器有多个处理器运行操作系统的单一副本,并且共享内存以及计算机的其他资源。系统将任务队列对称地分配给多个CPU,从而极大地提高了系统的数据处理能力。如图2.1所示,在对称式多处理器架构中,两个或多个对等的处理器可以直接共享内存,任何处理器都可以完全对等地处理应用程序,每个处理器可以独立进行任务调度。

图2.1 对称式多处理器架构

对称式多处理器中,每个CPU访问主存储的效率均等。与之对应的是NUMA(Non-Uniform Memory Access,非均匀存储器访问)[1],指的是CPU访问特定内存的速度远超其他区域的内存。在这种情况下,CPU和特定内存区域绑定或优先访问这部分内存,从而可以大大地提高整体性能。

对于通用的应用程序开发,SMP架构是使用最为频繁的。数据库软件厂商若采用多线程基于SMP架构写代码,需要考虑的内容远远超过单内核服务器的考量范围。现在有各种各样新兴的编程语言,比如Go语言,天生支持SMP架构,对一些特定的数据结构能够并行执行。但对于C++或者Java,使用临界区互斥量对共享变量进行保护,在SMP架构里比单核服务器复杂很多。