Intel傲腾持久内存为SAPHANA带来哪些价值
借助SAP内存数据库,企业可以充分发挥实时数据的潜力,并根据大量实时的详细信息分析业务运营状况。然而,企业数据量指数级的增长,要求SAPHANA解决方案必须轻松扩展内存,并且能够有效管理大量数据和可靠地运行。浪潮作为Intel的重要战略合作伙伴,与Intel共同开发了搭配英特尔傲腾持久内存的英特尔精选SAPHANA解决方案,满足客户业务对性能和扩展性的高要求。
SAPHANA是一个针对IntelOptane™ Persistent Memory(PMEM)进行优化的数据库平台。
SAPHANA从2.00.035版本之后开始支持Intel持久内存,它所使用的是IntelPMEM的AppDirect模式,同时它在内存架构做了优化调整,将低延迟、频繁访问或“热”的信息(行存储数据,列存储数据的增量部分以及所谓的“工作区”)保留在DRAM中,Main主存区的列存储数据则存放在持久内存上。
当可用的内存用完或达到分配限制时,数据将自动移至DRAM,并且不会发生错误。换句话说,SAPHANA会自动检测持久内存硬件,并通过自动将这些数据结构放置在持久内存上进行自我调整,而其他所有数据结构则保留在DRAM中。
此外,在系统重启时保留在持久内存上的数据库无需重新加载。在持久层方面无变化,DRAM和PMEM上的数据与之前版本一样都会通过保存点(savepoint)机制刷新写入到持久存储层中。
在大多数SAPHANA数据库中,主存(Main)通常包含90%以上的数据资源,在增量合并期间也很少重建它,仅在达到数据库表更改的特定阈值后才触发,对于大多数表,增量合并每天至多不会发生一次。delta增量写优化和Main存储读优化的分离,与DRAM和PMEM各自优势进行了匹配,这种对IntelPMEM的使用设计非常适合SAPHANA的体系结构。
英特尔傲腾持久内存至大容量达到512GB,远超DRAM内容容量,而且,傲腾内存的单位容量价格要远低于DRAM内存,这些特性也为SAPHANA带来了以下价值点:
更高容量的主存(Main)区域
在SAPHANA Scale UP架构中,单台8路服务器至大支持到12TB内存,而使用IntelPMEM之后,单台8路服务器可扩展至24TB内存,内存容量增加一倍。
更少的停机时间和更短的启动时间增强了业务的连续性
SAPHANA大部分数据存放在持久内存上,在SAPHANA启动过程中,持久内存数据无需加载进而大大的加快了数据库启动速度,也增强了业务的连续性。6TB内存大小的SAPHANA系统重启时间快了惊人的12.5倍,这意味着在实施维护或安全更新时可大大缩减停机时间。
降低总体成本
市场上128GB的IntelPMEM内存的成本远远低于128GB的DRAM内存,从硬件成本上来看,采用IntelPMEM配置可以大大降低总成本。
IntelPMEM为SAPHANA带来这么多好处,那么它的性能又如何呢?
TPC-H是事务处理性能委员会(TransactionProcessingPerformance Council)制定的基准程序之一,TPC-H主要目的是评价特定查询的决策支持能力,该基准模拟了决策支持系统中的数据库操作,测试数据库系统复杂查询的响应时间,以每小时执行的查询数(TPC-HQphH@Siz)作为度量指标。TPC-H是根据真实的生产运行环境来建模的,因此我们选用它来评估同容量下的DRAM配置与PMEM配置性能。
测试配置:
测试结果:
从上图中的DRAM配置和PMEM配置结果上看,采用PMEM配置的硬件性能可以达到DRAM配置的87.08%左右,查询延迟仅增加8.8%。
基于IntelPMEM的SAPHANA平台特点和性能,将更适合以下场景。
场景方案一:基于PMEM的SCALEUP分析节点替代横向扩展集群
充分利用IntelPMEM为SAPHANA带来的内存扩展能力,将Scaleout横向扩展集群简化为Scaleup单节点模式,这种架构的调整也带来以下优点:
节点数量的减少使整个SAP HANA系统管理起来更简单,同时降低了总成本;
多节点集群转化为单节点后,CPU资源利用率更高;
减少了scale out集群节点之间的数据传输,使整体查询性能得到提升;
场景方案二:PMEM节点作为多个SAPHANA业务系统灾备节点
通常情况下,不同的SAPHANA业务系统会使用不同的硬件设备,为数据安全考虑,会为每个业务系统部署一套灾备硬件系统,这种方式无疑增加了总成本。PMEM相比DRAM具有更高的内存容量和更低的成本,如果采用基于IntelPMEM的硬件配置有以下优点:
承载多套SAP HANA业务灾备系统;
大大减少了灾备节点数量;
更简单的管理和更低的TCO;
场景方案三:PMEM节点作为SCALEOUT集群的ExtensionNode
随着业务规模的扩大,系统中往往存在大量访问不频繁的历史数据,导致内存总容量不足。针对种情况,SAPHANA的数据分层功能提供了一个“warm”数据选项,将访问不频繁、价值低的数据存放在Extension节点上。在该场景下使用PMEM节点作为Extension节点,有以下优点:
无中断地添加一个Extension节点到现有SCALE OUT集群中;
充分利用PMEM大容量特点,可以存放更多的历史数据;
相比使用DRAM配置作为扩展节点,每TB的数据库成本更低;
总结:如果SAPHANA数据主要以行存储为主,那么PMEM配置的服务器并不能带来太多价值;如果数据主要是以列存储为主,那么可以考虑采用PMEM配置的服务器,在简化基础设施的同时将大大降低总体成本。