英特尔® 傲腾™ 持久内存是Intel在2019年发布的一款革命性的产品,英特尔® 傲腾™ 持久内存是一种全新的内存类型,其架构设计旨在从数据中心中汲取更多价值,重构数据中心内存/存储层次结构。不同于传统的DRAM,英特尔® 傲腾™ 持久内存集大容量、经济性和持久性于一身,能够支持数据中心多个应用场景。浪潮基于英特尔® 傲腾™ 持久内存做了大量的应用场景解决方案,覆盖大数据分析、数据库、云与虚拟化、分布式存储等应用场景。为了帮助用户通过更加灵活的架构来实现创新型的应用,助力企业实现性能突破,浪潮发布了基于英特尔® 傲腾™ 持久内存技术的Oracle数据分析方案。
Oracle数据库系统是美国Oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前世界上使用较为广泛的数据库管理系统。Oracle数据库支持OLTP(On-Line Transaction Processing)和OLAP(On-Line Analytical Processing)两大数据处理。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。Oracle自Oracle12C版本开始支持云计算技术,提供In-Memory,多租户等功能特性。
Oracle在Oracle12C版本开始引入In-Memory功能特性,该特性开启后,会在Oracle数据库SGA(System Global Area)中分配一块静态的内存池In-Memory Area,在该内存池中,数据库用户表以列存模式存储。列式存储查询时只有涉及到的列会被读取,任何列都能作为索引,所以列存更适用于OLAP应用。在Oracle开启使用In-Memory功能特性时,内存的大小能否涵盖所有OLAP数据成为关键。
挑战:内存容量限制了Oracle实时分析的性能
Oracle的In-Memory功能特性本质上是一种内存计算技术,它在内存中开辟了一份空间,按照列的方式存储一份数据副本,用户可以从内存中快速的访问并对这些列式缓存数据进行计算,从而提升数据库查询和分析的性能。传统的数据库采用的是行式存储,当一个事务发生时,oracle会对一行(或多行)数据进行操作,也就是说数据的操作单位是一行数据,即使可能需要被访问的数据只是其中的几个列,这种数据保存方式对以DML为主的OLTP应用是非常适合,也是非常高效的。但是在OLAP系统当中,针对大量数据的查询操作是主要的查询模型,而这些查询往往只针对表中一些特定的列,所以以列的模式从内存中获取表的数据列无疑是高效的。Oralce的In-Memory功能特性需要将表中的数据加载到内存中,以列的方式进行存储,虽然Oracle也提供了压缩算法进行压缩存放,但是在一些大数据集的分析场景中,传统DRAM的容量和价格都极大的限制了Oracle的内存扩展性。
利用英特尔® 傲腾™ 持久内存技术扩展Oracle内存,释放内存计算潜能
英特尔® 傲腾™ 持久内存是一种全新的内存类型,其架构设计旨在从数据中心中汲取更多价值,重构数据中心内存/存储层次结构。不同于传统的DRAM,英特尔傲腾持久内存集大容量、经济性和持久性于一身,能够支持数据中心多个应用场景,包括数据分析、数据库和内存数据库、人工智能、高容量虚拟机、容器,以及内容分发网络等,使之在性能、可用性上有大幅度提升。英特尔® 傲腾™ 持久内存技术从根本上改变了数据中心的弹性,将内存数据库重启时间从以前的几天、几小时缩短到现在的几分钟甚至几秒钟,并提供经济实惠的内存空间,将系统内存容量扩展到前所未有的水平。
图1
在现有存储架构中,内存和存储介质之间存在容量、性能和时延的差距,英特尔® 傲腾™ 持久内存位于内存和存储介质之间,能填补两者间的性能和时延差距,对存储层次模型进行重新划分和定义。英特尔® 傲腾™ 持久内存读写带宽比NVME设备高数倍,并大幅降低延时问题。另外,由于写入方式不同,英特尔® 傲腾™ 持久内存也比Flash NAND更耐用,并能支持比传统DRAM更大容量的系统内存配置。与传统DRAM不同,英特尔® 傲腾™ 持久内存将提供前所未有的高容量,经济性和持久性组合。通过扩展经济实惠的系统内存容量(每个CPU Socket大于3 TB),最终客户可以使用支持这种新型内存的系统,通过在处理器附近移动和维护更大量的数据来更好地优化其工作负载,并很大限度地降低延迟从系统存储中获取数据。英特尔® 傲腾™ 持久内存将以每个模块高达512GB的容量提供。同时,英特尔® 傲腾™ 持久内存具有的非易失性这一大优势能够保证数据在掉电后或系统维护中不会丢失。
图2
英特尔® 傲腾™ 持久内存通过两种特殊的运行模式——App Direct模式和内存模式,展现其独特的能力。具体来看,采用App Direct模式,经过专门调试的应用程序可以从产品固有的持久性中充分获取价值,同时获得更大的容量;在内存模式下,在受支持的操作系统或虚拟环境中运行的应用程序可将该产品用于易失性存储,在无需重写软件的情况下,有效利用高达512GB的内存模块带来的附加系统容量,在大型内存池中获得新的洞察。
在数据时代,新一代数据中心对于加快数据的流动,提高数据的存储和处理能力提出了更高的要求。在这种情况下,英特尔下一代至强可扩展CascadeLake处理器与英特尔® 傲腾™ 持久内存成了新的强强组合。这一组合将改变云、数据库、高性能计算、内存分析和内容分发网络等关键数据工作负载,成为新的动力之源。
Oracle在OLAP场景下,使用In-Memory功能特性,能够有效的提升OLAP性能。一般OLAP场景下,数据仓库数据量都相对较大,使用英特尔® 傲腾™ 持久内存能够使单颗CPU支持的内存容量大于3TB,在OLAP场景下,数据仓库数据量较大时,使用英特尔® 傲腾™ 持久内存(Memory Mode)能够为Oracle数据库服务器提供更大的内存容量来使用In-Memory功能特性。
方案验证:英特尔® 傲腾™ 内存性能优势显著
Oracle在OLAP场景下,使用In-Memory功能特性,能够有效的提升OLAP性能。一般OLAP场景下,数据仓库数据量都相对较大,使用Intel® Optane DC Persistent Memory 能够使单颗CPU支持的内存容量大于3TB,使用Intel® Optane DC Persistent Memory (Memory Mode)能够为Oracle数据库服务器提供更大的内存容量,以便启有足够的内存容量来启用In-Memory功能特性。
硬件配置
8* 960GB Intel® SSD DC S4610 (RAID5)作为oracle数据存放介质,SAS SSD作为 Redo Log存放介质。
TPC-H测试结果
DRAM 192G +DCPMM 1TB相比DRAM 192GB TPC-H测试模型22条sql语句查询性能提升约3.8倍。
效果:大幅改善 Oracle数据分析性能与成本表现
在Oracle 18c OLAP场景下,,通过英特尔® 傲腾™持久内存增加服务器内存容量,使Oracle有足够内存开启In-Memory功能特性,能够极大的提升Oracle OLAP场景下性能。
从测试结果可以看出,通过将 Oracle的缓存由传统的 DRAM 内存替换为英特尔® 傲腾™ 持久内存,可以获得更大的内存容量,存储更多的数据,成倍提升OLAP场景下的性能。之所以会有如此显著的提升效果,很大程度上是因为英特尔® 傲腾™ 持久内存支持的总容量远高于 DRAM 内存,能够充分利用Oracle In-Memory特性,存储更多的工作集,充分释放内存计算的潜能。而且使用英特尔® 傲腾™ 持久内存将带来极大的成本节约,这在当前企业数据爆发式增长、在大数据方面的投入逐渐增大的背景下,显然具有重要意义。