Tim Vincent:大家好。我从1991年开始就做DB2的研究了,最初是做DB2数据库的研究,这是我今年第二次来北京,我在DB2方面有不少的经验,今天非常高兴有机会跟大家介绍一下我们这个产品的架构、种类,以及我对未来的展望。
首先介绍一下DB2的结构。
在这个里面我们要看一下这个架构里面的一些简单介绍。我们为什么开发这个产品。首先介绍一下TCO,这是很重要的问题,我们开发的一些创新技术对于DB2非常重要。第二点我要谈一下分区分区越来越重要,因为我们的数据越来越多,同时对于I/O管理也是非常重要的,我们怎么样尽量降低I/O。然后我介绍一下XML,我们为什么开发XML呢?我们当初开发的时候是希望达到什么样的好处。另外我还要介绍一下我们的客户在XML得到了什么好处。
现在开始我给大家介绍另外一个问题。现在人们在建立越来越的数据库,他们把很多数据放在同一个地方,希望能够帮助他们商务流程做出及时的决定。现在需要有更多的数据仓库的管理。他们发现工作负载发生了爆炸,所以必须要对工作负载进行管理,因为在传统的数据库本来可以支持传统的工作负载,现在发展了以后出现了很多新问题,现在系统越来越复杂、数据越来越多,工作负载爆炸性的增长,怎么样管理工作负载变得非常重要。
下面我要介绍一下我们的一些最佳实践,我们的压缩,DB2融合了很多的技术,有很多的技术当中都使用了很多不同的方式。有很多工作都是我们在最佳实践中付出的努力,最后得到了回报。这里我给大家举例一个压缩技术。还有我们产品的亮点,比如说DB2 9.5,它可以利用给Linux、Unix和window,另外还有data Studio。
首先介绍一下DB2的架构。
最初1991年开始做DB2。当时有一个发展趋势,工作系统中工作越来越多,怎么处理越来越多的工作负荷呢?我们采用了并行的机制,我们可以支持SQL和视频程序,我们有分区内与分区间的并行。利用SMP通过多核的架构。同时对于SQL有查询重写功能。在查询内的并行,是经常在数据仓库中需要使用的。这个技术可以使得你的查询可以在不同计算机上实现并行。另外一些实用程序也可以支持并行,你可以使用同样架构在不同计算机。
利用SMP,通常是指查询内的一种并行。所以Linux和Unix中我们通常通过操作系统的线程和进程利用所有的CPU,同时我们可以使得通过并行对于SMP进行最好的使用。我们发行了一个TPCC的基准,这个基准是衡量利用效果的一个标准。(图)对于内存的大量使用,这也是非常重要的技术就是缓冲池技术,我们会使用页面储存方式,它使得我们的数据和I/O能够有一个路线图。它可以把我们连接到储存的页面,在储存的页面上可以使用XML,后来我们也可以用以系统操作为基础的一个文件。现在这个文件系统是可以用PPU的文件系统,同时还有一个数据库管理工作,可以通过文件系统对于桌面进行管理,所以我们可以支持I/O、并行的I/O,还可以支持数据的分割和自动化智能分割,我们还可以做大块的I/0。如果回到文件系统话题,我们现在更多地使用直接的I/O,它可以使得我们可以分散和收集I/O的文件系统。为什么我们不是使用一个文件系统的缓冲,缓冲池已经够我们做文件的缓冲区。我们可以更快地把文件拷贝到缓冲池当中去。
(图)如果看一下我们整个的架构,我们有一个平衡的数据仓库,它们每一个分区都有自己的资源,它们有自己的分区,不同的分区是逻辑上的,同时也有物理的特性。你在一台机器上可以进行多个不同的逻辑分区,每个分区有自己的缓冲池,有自己的逻辑的管理,还有自己的磁盘。这种技术可以避免对可伸缩性常见的限制,我们不需要进行分步式的管理或者缓冲间的一致性的谐一。所以,我们这种分区是有很好的可扩展性、可伸缩性,无论是多大TB的容量,来分区都是没有问题的。
这里还有一种分区,这种分区叫做“快速通信管理器”,我们有管理,还有信息流这种方面的价值。在优化方面,我们对不同的共同操作可以进行一些优化。另外这也使得它可以在跨节点运行任何东西,非常有效、非常快。我们来看客户机这一块,有四大类:T2、T4,JAVA J2BC我们是支持,它是PCL的,现在还有Pure它可以使SQL提升,使得你在JAVA方面可以很好地开发。当我谈到data Studio我会给大家讲怎么样使用Query能够进行提升。我们在这块会有通讯的协议。它和数据库进行连接,并且它在连接性方面有很好的表现。在代理方面,我们支持整个运行的环境,可以在查询和检测内部进行一些处理。当处理这些数据的时候它们是到了缓冲池,代理从缓冲池获取数据,然后进行计算。其中一个代理可以从磁盘里读取数据,我们有一个预提取器,可以提前提取数据,这样可以得到非同步的I/O,可以得到很好的CPU性能,所以要确保I/O是不同步的。
另外我们还有一些页面的清理器,它可以对相关的页面进行清除。在日志系统里面还有相关的日志记录系统。这是80年代提出的一项技术。这是整个数据库里非常核心的一项重要技术。还有“时锁检测机”,某一个交易进行的时候,这个交易会自动锁定,在某一方面,锁定就会转入日志里面去,你在很多时候会碰到瓶颈的情况,在很多基准测试里面,比如说有400-600万的产品,你在锁和日志相关来讲,可以看到“时针检测器”可以大大提升处理速度,特别对“时锁”情况进行很好的探索。
下面我们谈一些技术亮点。
从拥有总成本来看,我们和很多CIO进行了谈判。CIO从各个方面来讲,从成本模型来看,70%的CIO的预算是投入在人的方面,并不是在硬件方面。当我们说到TCO的时候,我们主要要减少人力成本,因为在DB2的操作方面和维护方面会加大很大的成本,所以我们需要这些技术能够得到最大限度的利用。所以我们需要一种可以自我管理的数据库,它们有自动平衡的资源、自动的存储。而且我们的TCO的时间应该花在管理业务方面,而不是在管理数据方面,而且他要有更多、更高的管理技能,使它能够进行自动的优化。
自适应自调优内存管理。它有自己的缓冲区,这对CPU来讲是非常重要的,这是做优化最重要的一个方面。另外排序也是非常重要的,它可以把你目前的I/O进行排序,还有“锁列表”,它使用的MB参数,然后进行数据内存的容量。在这个方面进行一些控制的逻辑,然后使得它可以快速的适应,重新分配的工作负载和变化。缓冲区进行自动的平衡。这样使CPU整个的负荷进行重新的自动平衡,这样就可以节省很大的成本。所以你必须注意到你的工作负荷的变化,不需要人工的进行调整。
下面用一些图表给大家讲解一下,Query是一个索引系统,有时候撤销了,这个时候整个表空间就会有很大的提升,I/O就会提升,所以如果有一个自适应调优系统,系统可以自行调整,得到更高的内存性能。
我们开始引导了自调优技术的时候,开始把它用在一个比较小的系统里面。我们工程师们在一个月、两个月后加入了更多的系统,我们进行相同的配置,我们把它变成基准调优的配置,在一个小时整个STIM不仅得到了更优的性能,而且比以前数据好的成绩还会更好,而且降低了整体的成本。