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

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

参与19

4同行回答

沈刚沈刚  技术经理 , IBM
个人认为:单节点DB2是一种最简单的架构,既可以适应OLTP也可以应对数据量不是特别大的分析类应用;DB2 DPF则是针对分析类应用(例如:数据仓库,数据集市,ODS等)作了特别的优化,它通过数据库分区(请注意与表分区的不同)share-nothing“分而治之”的策略,近线性地提升了数据库复杂SQL和uti...显示全部

个人认为:单节点DB2是一种最简单的架构,既可以适应OLTP也可以应对数据量不是特别大的分析类应用;DB2 DPF则是针对分析类应用(例如:数据仓库,数据集市,ODS等)作了特别的优化,它通过数据库分区(请注意与表分区的不同)share-nothing“分而治之”的策略,近线性地提升了数据库复杂SQL和utilities处理的性能和数据库的容量/规模;pureScale则是针对联机应用的一种优化方案,它采用data sharing的架构,通过CF的高效设计,近线性地提升了联机交易的吞吐量和高可用性。他们三者的应用程序可以相互完全兼容,这大大简化了应用程序的开发前移,这也是IBM所提倡的common SQL engine的体现。

收起
软件开发 · 2018-08-31
浏览5905
topzgm 邀答
liveonskyliveonsky  数据库开发工程师 , sr
相同点: 在 Db2 中,所有版本共享同一代码库。版本之间的唯一技术差别在于资源局限性以及高级功能部件或工具集。DB2各版本详见:https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_11.1.0/com.ibm.db2.luw.licensing.doc/doc/c0058536.html不同点单节点DB2: 小规模量...显示全部

相同点: 在 Db2 中,所有版本共享同一代码库。版本之间的唯一技术差别在于资源局限性以及高级功能部件或工具集。DB2各版本详见:https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_11.1.0/com.ibm.db2.luw.licensing.doc/doc/c0058536.html

不同点
单节点DB2:
小规模量的数据
一台服务器或主备机或双机运行读写分离等方式;
本机CPU\内存资源,存储可添加磁盘或网络存储

DB2 DPF:
大规模量的数据,一般使用用OLAP场景
一般由多台服务器实现;一台服务服务器上,有多个分区节点;
每个分区节点有自己的存储空间,日志空间;同一台服务器上,多个分区节点共享CPU、内存?
存储一般为网络存储,需分配给每个节点
DB2 purescale :
一般使用用OLTP场景, 支持横向扩展集群,保证高可用性和可伸缩性。
可以有多个数据库服务器,添加成员,无需重新分布数据
详见: https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_11.1.0/com.ibm.db2.luw.licensing.doc/doc/c0057442.html

收起
银行 · 2018-08-31
浏览6128
libai21libai21  软件架构设计师 , 海通证券
可以这样简单的理解,单节点数据库是一个DB2实例(cpu和内存)配合一套存储工作。DPF分区数据库是多个单节点的组合,每个节点是单独的实例+单独的存储,各个节点间不共享内存,不共享cpu,但是DB2内部把这些节点组合在一起,让使用者就像使用一个数据库一样。PureScale是多个实例(每个实...显示全部

可以这样简单的理解,单节点数据库是一个DB2实例(cpu和内存)配合一套存储工作。
DPF分区数据库是多个单节点的组合,每个节点是单独的实例+单独的存储,各个节点间不共享内存,不共享cpu,但是DB2内部把这些节点组合在一起,让使用者就像使用一个数据库一样。
PureScale是多个实例(每个实例有自己的cpu和内存),共同使用一套存储来工作,对使用者而言,也是像使用一个数据库一样。

收起
证券 · 2018-08-31
浏览6125
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
浏览5987

提问者

topzgm
topzgm0112
软件架构设计师People's Bank of China
擅长领域: 数据库服务器存储

问题来自

相关问题

相关资料

问题状态

  • 发布时间:2018-08-30
  • 关注会员:6 人
  • 问题浏览:8617
  • 最近回答:2018-08-31
  • X社区推广