典型分布式数据库系统架构数据库系统架构典型的架构有Shared Everything、Shared Memory、Shared Disk和Shared Nothing。这里Share的资源主要是指内存,磁盘。A DBMS’s system architecture specifies what shared resources are directly accessible to CPUs. It affects how CPUs coordinate with each other and where they retrieve and store objects in the database.单机数据库系统称为shared everything,因为是单机节点,有自己独立的内存空间和独立的磁盘。Shared Memory现实中并不常见,多个cpu通过网络来共享一个内存地址空间,并且共享同一个disk。Shared Disk多个数据库实例,每个实例有自己的内存,但是通过网络共享同一个disk。Shared Disk架构在云原生比较常见,这样的好处就是利于存算分离,计算层和存储层能够解耦,因此计算层和存储层在扩缩容的时候彼此不影响。缺点是因为共享disk,因此对于高并发的写请求势必性能会比较差,因此这种架构比较适合OLAP这种读多写少的数仓。Shared Nothing各个数据库实例,都有自己的内存和disk,这些实例之间只能通过网络通信来感知各个实例的状态变化。通常表会水平划分到各个节点,每个节点只负责其本地磁盘上的数据行。 这种设计非常适合星型模式查询,因为连接维度比较小的维度表和宽的事实表所需的带宽非常少。Share Nothing架构的优点在于性能和效率比较高,缺点在于灵活性较差,因为扩缩容的时候,需要在节点之间移动数据。而且对于事物的支持性较差,因为各个节点之间必须通过网络进行协调。