Oracle Database In-Memory:重新定义内存计算?

提到内存计算,就不能不提最近几年大红大紫的SAP公司,其HANA内存计算解决方案赚足了市场的眼球,在短短几年时间拥有超过几百家的用户,并获得了包括IBM、HP、Dell、华为等服务器厂商的大力追捧。与此同时,不能否认的是类似SAP HANA这样动辄上百万美金的内存计算解决方案依然只是少数经济实力雄厚的用户的选择。对于全球拥有广泛数据库用户基础的Oracle而言,显然希望改变当前内存计算的市场格局,为内存计算市场注入更多竞争活力。近日,Oralce公司正式推出了其Oracle Database In-Memory Option,Oracle表示其Database In-Memory能够让实时分析获得一百倍性能提升,能够更快的处理OLTP混合工作负载,并且易于部署而无需改变应用。

突破行、列数据库的局限

众所周知,内存计算将数据库的数据操作直接放在内存之中。相对于磁盘,内存的读写速度往往高处好几个数量级,能够大幅提升应用性能。近年来,随着内存容量不断提升,内存成本逐渐下降,内存计算已经成为当前市场一大热点。在当前内存计算领域中,数据库格式一直是个讨论的热点,行业数据库更加适合交易型应用,而列式数据库则在分析领域具有优势,像SAP HANA就是典型的列式数据库,在BI查询与OLAP上拥有较快速度。现在,Oracle提出了突破行式与列式数据库局限,在OLTP数据库中直接实现实时分析,从而实现混合工作负载下的实时分析。

图一:Oracle Database In-Memory同一张表在内存中同时支持行式和列式两个格式,并同时激活并保持保持事务的一致性,分析和报表使用新的内存列格式。

甲骨文公司数据库技术产品执行副总裁Andrew Mendelsohn表示:“以前大家都是在独立环境中使用列式或者行式数据库,对于应用开发者首先就要做出为交易型应用优化还是分析型应用优化的决定。现在Oracle Database In-Memory则无需用户做出牺牲,让列式和行式数据库共存。”

图二:Oracle内存列式存储技术,无需持久化、无需记录日志。

“Oracle内存列式存储技术能够快速响应数据变化,实现2到20倍的数据压缩比,粒度支持表级和分区级,重要的是支持所有主流硬件平台。” Andrew Mendelsohn表示道,“每个CPU扫描本地内存中的列数据,使用了超快的SIMD向量指令,每CPU扫描速度可达10亿条/秒,行格式达到上百万条/秒,这让数据分析速度有了数据量级的提升。另外,将多表的连接操作转为高效的列扫描,让表连接速度提升10倍,让整合数据速度大幅提升。”

在过去,传统的OLTP系统中为了提升查询速度往往建立大量索引,比如大规模的ERP系统,这种模式下向表中插入一条记录往往需要更新10-20个分析索引,带来的直接结果就是让查询变慢。Oracle Database In-Memory则用列存储技术取代了分析型索引,不仅能提升定制查询速度还能提升随机查询速度。

图三:Oracle用列存储取代分析型索引。

Andrew Mendelsohn表示:“列索引可以基于任意一列实现快速分析,这意味着更少的调优与管理维护,列存储无需持久化,所以更新等操作的成本更低,让OLTP和批处理速度更快。”

改变内存计算玩法

Oracle Database In-Memory除了技术层面的创新之外,最大的特点就是它作为Oracle数据库的一个选件,可以为用户提供更多的选择灵活性。Andrew Mendelsohn也多次强调Oracle Database In-Memory并不需要用户使用SAP HANA那重新购买一套平台,只要是Oracle数据库用户即可采用Oracle Database In-Memory,从而获得内存计算的能力。

 

图四:甲骨文公司数据库技术产品执行副总裁Andrew Mendelsohn。

“内存计算不应该成为企业硬件的负担,不应该为了内存计算解决方案而去购买专门认证的硬件设备。”Andrew Mendelsohn表示。显然,Andrew Mendelsohn认为SAP HANA这类昂贵的内存计算平台解决方案不可取,而是应该能够基于现有的IT基础硬件平台上适用。Oracle Database In-Memory Option即可运行在满足内存计算能力的所有标准硬件平台上,此外,它还能运行在诸如Exadata这样的数据库一体机以及专门为大型SMP系统设计的M6-32大内存机。“Oracle Database In-Memory Option支持所有主流硬件平台,无需花费额外的费用购买硬件。” Andrew Mendelsohn补充道。

图五:Oracle Exadata数据库一体机,Oracle Database In-Memory作为Oracle数据库一个选件,用户可以直接采用即可。

显然,Oracle并不希望内存计算需要专属的硬件平台,而是希望能够为Oracle数据库用户提供更多选择的灵活性,无论是第三方的标准化硬件平台、集成系统还是大内存机,让用户在内存计算选择方面更加灵活。此外,Oracle还表示Oracle Database In-Memory能够在任何与Oracle数据库兼容的现有应用环境中都可以快速、简单进行部署。Oracle给出的测试数据表明,像Oracle电子商务套件、Oracle JD Edwards、Oracle PeopleSoft、Oracle Siebel和Oracle融合应用等应用的速度得意大幅提升。

除了Oracle Database In-Memory Option之外,其实Oracle还有像TimesTen这样的内存数据库技术,在被问到TimesTen的未来的发展情况时,Andrew Mendelsohn表示:“TimesTen是行式数据库,能够提升交易速度,比如像电信计费应用、证券交易应用等而言,TimesTen是个非常不错的选择。”Oracle针对TimesTen还有Exalytics一体化的集成系统,Oracle TimesTen for Exalytics、Oracle Essbase、OBIEE的仪表盘和分析功能等。

作为全球数据库领域的巨头,兼有各种硬件平台,Oracle显然不希望看到SAP在内存计算领域独领风骚,随着Oracle Database In-Memory Option的推出,Oracle必定会大力推广该选件产品,在市场中与SAP全力竞争,未来胜负如何,让我们拭目以待!