谁能撼动Oracle DB的霸主地位?

谁能撼动OracleDB的霸主地位?

就在本月(2014610日),Oracle正式宣布推出旗下数据库12c的内存选件(In-Memory Option),这也标志着甲骨文正式进入内存数据库市场(不过oracle DB v12.1.0.1中还未引入这个IMCC特性,也许要等到12cR2版本)。内存列式数据库技术能否引发数据库应用的颠覆性变革?SAPIBMOracle都宣称自己的内存列式数据库产品性能会提升100倍到1000倍,未来数据库市场会由此重新洗牌吗?

 

早在200612月,图灵奖获得者数据库专家詹姆士・格雷 (James Gray)曾说过“Tape is Dead, Disk is Tape, Flash is Disk, RAM Locality is King.” 四年以后的2010年底,SAP在收购Sybase以后发布了全新的HANA内存数据库平台。在20136月,IBM的列式内存数据库DB2BLU作为DB2 v10.5的一部分正式发布。现在Oracle也终于按捺不住躁动的心,推出来oracle 12c上的In-Memory Option。与其说这是市场对SAP HANA技术的认可,不如说是巨头们迎合市场需求,看好内存列式数据库的未来。

 

我们知道,内存数据库技术早就有。简单地说就是所有需要访问的数据都预先加载到内存来运行的数据库。这样就去除了磁盘IO成为系统性能瓶颈的可能。但是因为原来UNIX小型机和x86服务器的内存都较小,而且价格很高,所以应用场景和需求都受限,只在数据量很小的应用上发展出一些成熟的产品。如,TimesTen2005年被Oracle收购)和SolidDB(来自于芬兰Solid Information Technology,在08年初被IBM所并购)。它们同样都具有轻巧、速度快的优点。“TimesTen”名字就是快十倍的意思,也就是说比传统的RDBMS数据库快十倍。SolidDB也有性能提升10倍这样的说法。

 

那么SAP HANADB2 BLUOracle DB IMCC与这些较早出现的TimesTenSolidDB有什么本质区别吗?重点在两个方面:一个是重量级方面,上面提到TTSolidDB的特点是轻巧,也就是轻量级的,对于大数据量的应用并不适合;另一个是列式技术,这与传统上适合OLTP应用场景的行式数据表结构完全不同,更适合于大规模的查询和分析方面的应用场景,即OLAP类型的应用。这两方面的差别使它们实际上差别巨大,所以可以说,我们现在讨论的内存列式数据库是一个全新的软件架构。

 

谈到性能的提升,快10倍,100倍,1000倍,可能吗?如果简单对比磁盘和内存的访问速度,那性能差距有多大呢?一般性能较好的企业级磁盘存储io响应在ms级,2ms上下是一般情况。如果是SSD/flash盘,可以到0.1ms级,企业级存储TB级别的容量采用SSD达到0.4ms是一般情况。当然,都用SSD也很贵的。而内存的响应速度在ns级,如果按100ns计算,2msHDD/100nsmemory=2万倍,0.4msSSD/100nsmemory=4000倍。所以,如果数据库的响应能力主要由磁盘io来决定的话,那提升这么多是完全可能的。

 

那么TimesTen当初为啥不叫“TimesThousand”呢?(Oracle很谦虚吗?当然不是,SAPIBM如果说100倍,Oracle会说99倍吗。)因为磁盘io只是系统资源的一个方面,CPU,内存,总线带宽等方面的调度机制都有影响。传统数据库的数据也会尽量优化地调入内存作为cache来被访问,cache命中率也会直接影响系统性能。应用类型的不同,数据规模的不同,性能的具体情况就会有所不同。

 

随着CPU,内存总线技术的发展,特别是多核、多线程、多级cpu cache、共享L3cacheNUMA架构、内存访问的local/near/far调度机制等技术的发展变化,数据库软件也需要不断创新出新的架构和技术来与之相适应,从而充分利用硬件的资源。针对不同业务需求(OLTPOLAP,二者混合),针对不同数据规模(GB以下,GB级,TB级,PB级),软件的架构都需要不断的创新和发展。

 

新技术影响着市场,新的应用成功的实施让市场需求持续发酵。市场需求的变化又反过来促进了技术的完善和推广。谁的技术创新被用户认可,谁就能在未来市场竞争中占得先机。现在的王者未必是将来的王者。会有谁借这场东风来撼动Oracle DB的霸主地位吗? 那么仅仅提升性能还不够,他一定需要在OLTP/OLAP融合、Scale-out、高可用、灾备等方面不断地创新和突破。

 wKiom1PMlNbSmn-8AAEQ5--XM_g907.jpg

扫一扫,关注微信公众号“荣歆IT咨询”,享免费服务。

你可能感兴趣的:(oracle,DB,HANA,HANA,SAP,12c,In-Memory,IMCC)