分布式关系型数据库典型的架构
Share-Nothing
MPPDB一般都是此架构,主要是将数据拆分存储到不同的节点上,在各自节点上独立读写数据,正因为如此,此架构只适合OLAP业务,如果进行表关联操作时仍会进行网络节点之间的数据迁移与交换工作,同样的网络会成为MPPDB
水平扩展的瓶颈。TeraData目前最大商用规模大约600节点。
Share-Disk
典型的应用是Oracle
RAC,不同于传统的HA架构,ShareDisk架构中的每个节点都是工作节点,独立处理业务。由于是ShareDisk架构,读写磁盘就会出现冲突,会产生大量的存储网络流量,通常存储网络的流量会因为数据库节点规模增加变成瓶颈
OLTP和OLAP
通常部署在两套系统中主要原因是数据库系统追求的高TPS,OLTP追求的是高并发、随机读写,要保持交易十五的ACID
特性,维护强大的数据库日志,目前实现OLTP单点能力(主机平台+高端IO存储)。OLAP追求的是批量操作、高并发读操作,技术上主要解决很好的分配与管理各种资源(即资源的精细化管理)。
关于Join操作,跨表聚合操作,对于OLTP数据库需要大量的IO操作将表数据读取到内存进行操作;而MPP数据库本身就是根据某个键值对数据进行分布式存储,相当于提前为多表Join操作做了很多工作。OLTP通常是通过hash
join进行优化,OLAP是通过分布式join。