针对上面提到的I/O瓶颈问题,Oracle Exadata将应用进行分隔运行,让计算和内存密集型的数据处理类应用在数据库服务器上执行,而让I/O密集型的搜索类应用直接在存储服务器上执行。在这一理念指导下,Oracle在存储服务器上,通过智能扫描SmartScan、混合型列压缩技术、自动透明的存储索引、数据挖掘模型评价等技术,在存储端就实现数据密集型的处理,从而可以将发送到数据库服务器的数据量减少10倍。而传统的做法是,全部的数据库只能存在于数据库主机,来源于存储端的数据大部分会被数据库主机所丢弃,而这些大量的废弃数据会占用宝贵的数据库主机资源,如I/O、CPU、内存等,进而严重影响其它任务的执行,处理变得缓慢。
▲Smart Scan技术让搜索在存储端进行
另外,Oracle Exadata通过模块化设计,在通过增加存储单元时,提高整机的数据吞吐量;并采用每秒40Gb的InfiniBand做系统内部互连,其带宽比传统的光纤通道要快10倍。正是通过一系列技术创新,Exadata系统化地解决了数据库应用中让人头疼的存储I/O瓶颈问题。
PK传统SMP小型机
以往,针对大规模的数据库类应用需求,一些用户通过基于SMP架构的小型机来满足。这些小型机可以支持多颗CPU,实现从2路到4路、8路、16路,直至256路的纵向扩展(Scale-up),即在一个机箱里增加更多的CPU、内存和I/O等资源。
从SMP的系统架构来看,其最大的优势在于共享内存,对内存统一编址。但也正是这一点为SMP的发展带来很大障碍,因为共享内存资源必然引起资源冲突。换言之,要保持SMP系统从2路到256路的线性或接近于线性增长,其SMP架构下的系统总线、高速总线等同样需要线性增长,但技术实现难度很大,也会导致设计和制造成本不断攀升。
总的来看,目前大型SMP系统主要存在四个瓶颈:首先是价格昂贵,单一系统动辄数万美元乃至数十万美元,如果用双机方案,成本就得翻倍;其二是系统扩展性较差,单一系统最多256颗CPU,而模向扩展又受制于高昂的投资成本;其三是存在技术瓶颈,单独依靠SMP难以提高计算机整体性能,尤其是越来越重的I/O需求;其四是系统兼容性差,每种系统自成体系,与其他厂家的产品难以兼容。
因此,对于要求更加苛刻的环境,比如大企业不间断运行、负载很重的大型数据库,相对于传统SMP小型机,许多厂商和用户都开始青睐更加灵活高效的x86服务器集群系统(Scale-out,横向扩展),如Oracle Exadata数据库机,因为集群技术允许使用低成本的服务器来构造具有高可伸缩性和高可用性的高性能系统。
下面我们就来比较一下Oracle Exadata与传统SMP小型机的具体差异: