从DB2体系结构层面来看,单节点DB2、DB2 DPF、DB2 purescale有何异同?

从DB2体系结构层面来看,单节点DB2、DB2 DPF、DB2 purescale有何异同?显示全部

从DB2体系结构层面来看,单节点DB2、DB2 DPF、DB2 purescale有何异同?

收起
参与19

查看其它 3 个回答tongshuai的回答

tongshuaitongshuai数据库工程师北京新数科技有限公司

数据库是为应用提供数据的存储和处理功能的。在业务量比较小的时候一般都是采用单节点数据库,这样方便管理和维护。单节点数据库是比较简单的数据库结构。
但是随着应用规模的不断扩大,数据库的数据量也会不断增长。这时单节点数据库已经无法满足业务的需求,就需要采用数据库集群的方式来为大规模应用提供服务。
一般应用分为交易系统和分析系统两两类。对应的数据处理就是我们熟悉的:联机事务处理OLTP(on-line transaction processing)和联机分析处理OLAP(On-Line Analytical Processing)。
DB2 数据库针对这两种应用系统提供了对应的数据库集群技术,就是DB2数据库多分区(DPF)针对分析系统OLAP和DB2 purescale针对交易系统OLTP。
要了解两种结构的不同,先来了解一下两种应用的差异之处。
OLTP的特点主要是
1、并发量大,交易系统的并发数一般都超过1000,甚至上万。
2、单用户任务小,一般每个用户执行的都是小任务,一次可能只针对某些的一行或几行进行增删改查。

OLAP的特点主要是
1、并发量少,分析系统的并发数一般稳定在200左右,高峰期并发量的也只是接近1000。
2、单用户任务重,一般每个用户执行的都是大任务,一次性要处理的数据量可达上亿甚至上十亿行的数据。

从上面来看,业务系统类型的不同,所需的数据库集群也应该有所不同。
针对大规模交易系统(OLTP)来说,数据库需要能够同时为大量用户提供服务,因此就需要将多个实例组成一个大集群来对外提供服务,又由于交易系统单用户都是执行小任务,因此一个用户的处理只需在一个实例内完成即可,而无需其它实例协助。这就是DB2 purescale的集群架构,即由在多台主机上部署多个实例,然将这些实例组成一个集群,底层存储则采用单节点,多实例共享的方式。简单点说就是:多实例、单数据库的方式。

而针对大规模分析系统(OLAP)来说,优先需要考虑的是如何提高单个用户的大任务的性能。要提高一个大任务的性能,最有效的办法就是将一个大任务拆分成多个小任务,然后同时交给不同的节点进行并行处理,然后各节点将处理结果返回给用户。DB2数据库多分区(DPF)架构就可以做到这一点。DB2 DPF采用的是非共享方式,就是集群由多个数据库节点组成,每个节点都有自己的数据库进程、内存池、表空间、事务日志等等。
这样当一个应用连接到集群中的某个节点并执行相关的任务,这个节点就叫协调节点,这个协调节点则将这个任务拆分成多个小任务并发到其它节点,其它节点则同时执行这个任务,然后将执行结果返回给协调节点,协调节点将最终结果反馈给用户。
这里需要注意的是各节点拥有自己的表空间并不是说各节点间的表空间不一样,相反,要提高性能,就要将一个表空间拆分到各个节点中,然后表空间中的表才能将数据分布到各个节点中。
举个例子:
假如有个DB2 DPF集群,集群由10个节点组成。里面有一张表共有一亿行的数据,那该表在各节点的行数约为一千万行。此时有个用户需要查询这个表的所有数据,那么各节点只需查询自己的一千万行数据即可,由于各节点是可以并行执行查询,这就比在一个节点内查询一亿行数据快得多。

最后总结一下
DB2 DPF、DB2 purescale都是数据库集群架构,都是单节点数据库扩展而来的。
不同的架构技术特点不一样
DB2 purescale采用多实例节点组成集群、各实例节点共享一个数据库节点的方式,因此可以同时为大量的用户提供服务。
DB2 DPF 采用多分区组成集群,各分区间不共享资源的方式,可以将单个大任务拆分成多个小任务去并行执行,因此适用于分析系统。

互联网服务 · 2018-08-31
浏览6032

回答者

tongshuai
数据库工程师北京新数科技有限公司

tongshuai 最近回答过的问题

回答状态

  • 发布时间:2018-08-31
  • 关注会员:6 人
  • 回答浏览:6032
  • X社区推广