2021年11月,百易传媒(DOIT)推出“傲腾观察室-请回答2021”线上直播活动,旨在通过两位数据存储产业的长期观察者——DOIT总编宋家雨与DOIT主编朱朋博从第三方视角梳理分析傲腾技术如何助力不同行业的应用创新,洞察未来存储发展轨迹,期间现场连线云计算、金融等不同行业傲腾用户进行细致解读。
第一期观察室从突破冯诺依曼架构的局限性入手,以DRAM+傲腾持久内存构建大内存的方式弥补冯诺依曼架构当前亟待解决的问题,第二期着重了解傲腾在云环境中的价值点。
1月12日下午,“傲腾观察室”观察者们聚焦金融行业用户针对外部环境需求变化作出的技术应对,连线了建设银行“龙趺MPP DB”产品负责人陈晓新和建设银行建信金科基础技术中心首席存储专家徐宁,进一步了解傲腾技术对银行应用创新过程起到的推进作用。
2021年,行业数字化转型进入快车道,对金融行业而言,数字化,分布式、智能化成为自身发展的着力点,金融机构需要依托创新技术不断完善系统架构,优化业务流程,丰富场景应用为客户提供优质金融产品和服务。其中,不能不提承载行业关键业务应用的数据库技术趋势变化。
数据库技术演进与变化
数据库从应用角度可分为OLTP(联机事务处理)和OLAP(联机分析处理)。OLTP是关系型数据库的主要应用,用于如银行交易等日常交易处理。OLAP是数据仓库系统的主要应用,用于数据分析和辅助决策。
从前,数据分析以结构化数据为主,通过各种BI工具、报表来呈现,相对而言,我们并未将OLAP视为金融行业的关键业务应用。近年随着数据量爆发式增长,互联网行业积极推动应用技术创新,从非结构化数据分析中获取价值。而面对互联网应用的冲击,金融机构也在作出反应与调整,OLAP也升级为金融行业的一大关键应用,整体走向是单一架构结合OLTP和OLAP两种能力应对海量数据存取访问和分析处理,取得简化应用开发、加快即时查询、降低成本等效益。
那么具体金融行业用户如何积极应对互联网应用?以中国建设银行为例,2020年3月,中国建设银行就上线了龙趺MPP DB的数据库服务。
建行新一代MPP数据库的构建与技术探索
传统MPP数据库要在不同计算集群之间复制规模化数据来保持数据的一致性,对系统的效率和性能产生极大影响,同时数据复制也会造成数据冗余,拉高存储成本。
龙趺MPP DB产品负责人陈晓新介绍称,龙趺MPP DB是建行金科联合HashData和金山云开发的新一代云原生数据仓库产品,采用元数据,计算,存储三层分离架构,确保高性能计算能力的同时还具备高并发性,高扩展性,资源动态调度以及故障自愈能力。
截止到2021年5月,龙趺MPP DB规模已达到12000台服务器,结构化数据压缩后数据量达到9PB,表数量达到百万级,并且每天运行的作业数也达到百万级,SQL数据库约有千万级别数据量。
其中,元数据层主要负责元数据的存取访问服务以及事务控制。共享存储(对象存储)层负责用户数据持久存储,中间计算层为无状态的计算服务。
当然,龙趺集群规模不断增大,其在数据存储和使用中也会面临一些挑战。大量应用接入数据库,龙趺共享存储中的文件数超过20亿,而读取访问小文件对缓存影响极大,因此在高并发需求下规模化应用如何提升本地缓存系统使用效率是一个挑战。
服务器数量不断增加,故障也随之增多,资源动态调配和故障自愈能力这些操作也会带来缓存部分失效,如何实现节点间缓存的共享,以此最大限度减少缓存加载对应用的影响也是挑战。
以傲腾为代表的SCM助力分布式数据库应对存储挑战
建设银行建信金科基础技术中心首席存储专家徐宁表示这两个问题可以从三个方向进行优化——数据分布,单机性能以及格式性能。其中,存储介质、缓存分层、文件系统和缓存粒度和缓存格式是基于SCM的进一步优化。
以傲腾为代表的SCM出现带来了高级数据服务能力,且具备实际价值。混合按需使用DRAM和SCM,将存储层的高级数据服务移植到内存层,如高性能备份和恢复等。SCM应用可以简化系统设计,SCM的内存特性简化软件栈,更易于定制化实现需求。
比如,在做MPP计算时不需要一个文件中所有数据,而是把文件里部分数据按照范围加载到当时的计算集群缓存部分,比如上图里的Block 1和Block 2,然后加载到具体计算机群节点上,变成两个小文件,这是对象局部缓存的设计。
在这个前提下进行单机优化首要考虑的是应用的SCM介质。龙趺MPP DB采用英特尔® 傲腾™持久内存作为SCM介质替代了一部分DRAM带来性能提高和长寿命的优势。
DOIT总编宋家雨指出,内存储器如DRAM一旦出现故障,系统需要跨内存储器直接访问外存储器,消耗大量的网络和存储资源的同时导致性能大幅降低,而通过以傲腾为主的SCM+存储分层是将热数据缓存到新介质上,冷数据则自动存储到经济型介质上,以此找到性能,容量和成本结合点,最大限度减少缓存加载对应用的影响。
另一方面,针对海量小文件带来的访问性能下降,建行采用了很多办法,比如用RocksDB取代本地文件系统,优化后对16KB以下的小文件取得了较大的性能提高。但是RocksDB也会带来新问题——LSM Tree带来的写放大,LSM Tree分层级,每次先写journal(日志),再写memory table(内存表),然后并到leve1,leve2……重复写入和数据逐级下沉造成了严重的写放大问题。
因此,建设银行在软件方面采用了英特尔持久内存开发工具包PMDK(Persistent Memory Development Kit),用pmemobj库存放较大的值,然后用户oid直接做索引,很好地解决写放大的问题。
以libpmem库为例,作为PMDK中的底层库支持用内存映射方式访问持久内存,一方面可将持久内存上的文件映射到应用的虚拟内存空间进行操作。通过规避内核参与和上下文切换带来的开销,直接为上层应用提供助力。
DOIT主编朱朋博表示,中国有句古话:勿以善小而不为。用傲腾部分替代DRAM,鉴于傲腾在容量密度和价格方面的优势,聚沙成塔,当服务器用量动辄上万时,其所带来的容量优势不能低估。
傲腾持久内存的技术展望
从建设银行的数据库案例来看,傲腾技术的引入帮助其完善了MPP数据库的功能,为海量数据访问和处理提供了强有力的支撑。未来,SCM解决方案除了作为缓存层,随着傲腾技术不断发展,容量与性能的扩展,以及我们对内存规模需求的不断增加,是否会成为数据存储的核心呢,毕竟技术新旧更迭是市场的运行规则,接下来,傲腾观察室将投入更多的时间和精力来观察傲腾技术的新用例和新变化,敬请期待!