同盾科技是中国智能分析和决策领域领军企业,以人工智能、云计算、大数据三大核心技术体系为基础,基于对数据的探索洞察和深刻理解,将深度学习、联邦学习等领先技术与业务场景深度融合,为金融、保险、互联网、政务、零售、物流等行业提供智能分析与决策服务,赋能并激发客户,帮助客户做出更佳决策。截至目前,已有超过一万家企业客户选择了同盾的产品及服务,客户类型涵盖22大类行业、118个细分领域。

目前,同盾平均每日API调用量超过1亿,峰值超2亿,调用总量超1000亿。每日欺诈情报监测风险预警超过100万次,日均拦截IP、手机、设备等相关的欺诈行为超过150万次,每年帮助合作客户保护账户安全及交易安全超过200亿次,守护了万亿资金的安全。

同盾对OLTP数据库的高性能要求

当前的OLTP系统通常需要非常高的性能——百万级的吞吐量,单毫秒甚至是亚毫秒的延迟。比如在银行的支付和信用卡反欺诈、风控的项目中,应用端给数据库的预算有限,往往在100毫秒之内需要执行几百条规则。在广告的精准投放项目中,常常是在10毫秒之内要完成用户和广告的信息读取和匹配。有一些应用还要求在相当大的数据规模下实现如此高的性能,比如电信中的余额查询等。

传统的数据库,比如Oracle,MySQL和PostgreSQL,需要很大的硬件设备和很多优化才有可能达到这种性能。显而易见,硬件、二次开发和维护的成本都会相对比较高。

另一个比较常用的解决方案是在生产数据库上再加一层缓存层或内存数据库。这种二级构架的缺点是当有很多写或更新事务的时候,缓存层和生产数据库之间的同步就成为一个瓶颈,往往会造成很大的延迟,甚至不能做到缓存层或内存数据库之间的及时同步,以至于当系统出现故障的时候会发生数据丢失。

同盾做为国内一线的风控企业,对业务的延时和可靠性有很高的要求,同时因为业务变更频繁,需要系统运维能敏捷变更,而不造成成本的增加。同盾一直使用Aerospike社区版和ScaleFlux的CSS 1000来支持核心业务的稳健运行。

随着业务规模的迅速增加,同盾需要Aerospike系统支持更大规模的并发访问,数据量也从几十TB增加到数百TB。Aerospike企业版的全闪存解决方案可以替代内存Key Value的应用,同时延时不会增加,系统有更好的稳健性;ScaleFlux也推出了新一代产品CSD 2000,自带透明压缩功能,在数据有2:1压缩率的情况下,随机写性能甚至可以达到傲腾(Optane)的水平。配合Aerospike企业版,可以支持同盾的大规模数据库应用跑在全闪存上,替换昂贵的,不易管理的全内存解决方案。

在同盾的测试中,使用了4个服务器,每个服务器32核128GB内存,加上ScaleFlux CSD2000 6.4TB SSD。相应在Cassandra上平均10 毫秒内完成的查询,在Aerospike企业版的索引和数据全部在ScaleFlux CSD2000的配置下平均1毫秒完成。另外同样能带来巨大收益的是,性能大幅提升的同时,整个测试数据的硬件压缩比为5:1!原本需要5块SSD存下的数据,通过CSD 2000内置的硬件压缩,现在只需要1块就可以,并且对上层应用完全透明,不需要修改任何代码。

所以,Aerospike企业版数据库,加上高性能的SSD,比如ScaleFlux CSD2000,就可以达到非常高性能的要求,同时在大数据 (几百TB甚至PB级) 也能达到这种单毫秒延迟和百万甚至千万级TPS的吞吐。更重要的是,Aerospike + SSD的方案摆脱了前述缓存+生产数据库的二级构架,可以用相对小很多的集群来实现相同的性能,这样就在应用成本上有一个数量级的节省。

Aerospike的架构优势

首先,我们来了解下Aerospike一层架构的优势。在这张构架中,数据可以在内存或者闪存(SSD),只有一份数据,而不是像之前提到的二级构架那样同时在内存和闪存都有一份数据。当数据在SSD时,写入的数据在事务完成(commit)之后,立刻就是持久化的。当出现网络或服务器故障时,数据不会丢失。所以它在实现高吞吐量和低延迟性能的同时,还提供了持久性(Persistency)和强一致性(Strong Consistency)。这样就大大的简化了开发、上线和生产的维护,降低了总拥有成本(TCO)。在这个构架中也可以看出,Aerospike和传统关系型数据库像Oracle/MySQL之间是互补的关系。很多客户使用Aerospike来实现本来在Oracle/MySQL/PostgreSQL里运行的高重复性的、高性能的运算,而使用Oracle/MySQL/PostgreSQL来运行复杂的、Ad hoc的运算。

image

Aerospike的一些关于与性能有关的产品技术特性:

  • 无共享构架,没有主从节点,没有热点。
  • 多线程并发,NUMA支持,充分使用服务器的所有资源。
  • 主键一致性提供强一致性保证,线性化和会话一致性。
  • 智能客户端,一个数据跳转,无需负载均衡器。
  • 智能集群管理,零人工干预。

ScaleFlux CSD2000 带透明压功能的新一代SSD产品

ScaleFlux CSD2000系列是唯一具有数据路径压缩和解压缩功能的企业级PCIe SSD产品,为主流闪存的部署带来卓越的性能,高扩展性和成本(TCO)节约。CSD2000系列通过将高达8TB的最新3D NAND闪存技术与硬件加速的计算引擎结合在一起,实现了在线硬件压缩。不需要修改系统内核和应用代码,压缩不占用系统的CPU和内存资源,对性能无影响。实现稳定高速的数据读取/写入速度和始终如一的低延迟,在混合读写工作负载方面,比业界领先的NVMe SSD高40%-70%,提高了应用程序性能,同时节约50%以上的闪存空间。

透明压缩可以提升SSD写I/O性能,改善长尾延迟,并且可以提升SSD的写寿命。压缩是数据写入SSD的第一步,通过压缩,减少了最后写入到物理介质的数据量,不仅减少了写IO的带宽占用,同时SSD会有更多的空间用于垃圾回收等后台进程,从而有效减少IO延时,提高IO性能;通过减少写入放大,可以提高SSD的寿命。

透明压缩是CSD 2000自带的功能,不需要 CPU任何的额外操作,也不要求服务器添置额外设备。

CSD 2000的架构设计如下图所示。CSD 2000在数据IO路径上用FPGA进行无损数据压缩,对上层软件堆栈(包括操作系统和前端应用程序)完全透明。CSD 2000包括主机驱动程序和物理 SSD两部分,后者使用和压缩共用同一块FPGA进行闪存控制功能。

image

Aerospike混合存储架构与ScaleFlux高性能的完美结合

Aerospike的核心技术优势之一是它与SSD的优化,包括:

  • 数据的哈希分布在所有节点和SSD
  • 越过文件系统对原始设备直接读写
  • 大块尺寸读写
  • 读写分布优化避免SSD热点过快老化

Aerospike充分利用SSD所提供的高性能,如ScaleFlux的CSD 2000那样,它们之间的优化提供完整的解决方案。Aerospike主要可以用三种模式进行:

  • 全内存:索引和数据都在内存中
  • 混合闪存:索引内存中,数据在闪存中
  • 全闪存:索引和数据都在闪存中

下面的表格列出三种模式中的性能:

image

我们如何选择要用哪个模式呢?

从上面的图中我们可以看出全内存的模式提供最快的性能,但它的整体拥有成本也是最高的,同时它也不提供持久性。

Aerospike的每一条数据的索引占用64 bytes的内存,所以当每一条数据比较小时,比如几KB时,内存较有可能成为储存容量的瓶颈。而当每条数据比较大时,内存一般就不会成为瓶颈。这只是一个大概的描述,准确的计算需要根据你的数据和服务器配置和Aerospike的容量规划指南来计算。根据以上的分析,混合闪存模式在每条数据比较大时比较合适,它的吞吐量会大10%左右,写延迟大概在1毫秒左右,比全闪存会快3-5x。如果每条数据比较小,全闪存就可能提供更好的价格性能比。从系统重启的角度来比较,全闪存模式下服务器重启后,Aerospike可以在几秒或几十秒内快速重启,因为不需要重建索引。而混合闪存模式下,在Aerospike实例重启时,可以直接读取在共享内存中的索引,实现快速重启;但在服务器重启后就需要重建索引了。

举一个例子来说明以上的分析,某一用户需要部署一个100TB的Aerospike数据库,每一条数据是2KB大小,也就是总共500亿条数据左右,这几乎不可能全存在内存中。每一个服务器的内存是在256GB,带有一块有效使用空间为4TB的高性能SSD盘。假设数据在SSD的压缩比是3:1。在Aerospike的混合模式下,需要40个节点左右,总集群可以达到的吞吐量是2千万TPS,95%的延迟在1毫秒之内。在全闪存的模式下,需要20个节点,总集群可以达到的吞吐量是1千万TPS,95%的读延迟在1毫秒之内,95%的写延迟是在5毫米之内。上面的估计是基于单Aerospike节点运行于ACT可以达到500k TPS的高性能单SSD盘(比如ScaleFlux CSD2000)。

总结

总体来说,Aerospike提供各种你所需要的解决方案,尤其在数据量比较大的时候,很多客户会选择混合闪存或全闪存模式。目前,SSD的科技突飞猛进,ScaleFlux创新性地在存储控制器内实现透明压缩功能,让应用的随机写性能得到飞跃。Aerospike针对这些性能优异的SSD所做的基于前沿科技的优化可以提供非常高的性能——百万甚至是千万级的吞吐量和单毫秒级的超低延迟,同盾在相对较低的总拥有成本下也可以充分利用它的大数据,降低产品的开发和维护的复杂性,满足了生产系统对延时和TPS要求。

“从性能来讲,利用Aerospike企业版的全闪存部署,ScaleFlux CSD 2000可在我们的部署中实现110-224%的提升,同时提供拥有高IOPS和与内存媲美的持续低延时优质性能的存储。 ” - 同盾科技