写在前面
2020以出人意料的节奏拉开序幕之后,Tair团队的同学迎来史上最忙碌的年后复工:钉钉依赖的Tair集群进行了数量级的扩容为腾飞的钉三多插上了翅膀;Tair团队云Redis服务为公共云上迅猛增长的在线教育等业务提供了持续的动力。Tair团队也在更多新的领域展示卓越的身影,在存储顶会FAST20上发表了HotRing内存引擎论文;Tair的图模型,TairGDB图数据库也在阿里云商业化上线。
以上这些都是Tair团队日常工作的缩影:迎接挑战、创造价值,开发维护在经济体内外长期服役并与时俱进的产品,让业务价值和技术价值在这里交融、发出节奏清快的响亮声音。脚踏实地、心中有客户、仰望天空,今天这篇文章和大家分享下最近一年对Tair产品的思考和未来的发展方向。
Tair——云时代的内存数据库
内存数据库Tair在阿里集团诞生以来,已经十年有余。在大部分的印象里,Tair被当作缓存使用,用在各个在线链路的加速,双11承接了超大的流量;实际上,如同云上客户选择Redis并不仅仅只是Cache一样,Tair也有众多丰富的业务场景,如各类session信息,各类的通用KV存储(推荐数据,IM消息投递,设备账号信息),排行榜数据,分布式锁等等。但无论是哪类场景,都是承担着在线访问,承担着超大流量,Tair做为流量的承接地,对于流量的穿透,击穿和防止本身系统雪崩上做了非常深入的工作。
同时,今天面对云原生的技术趋势,面对Translytical,多样化数据模型,大型的持久存储业务需求,Tair的全新目标为云原生内存数据库,云时代的内存数据库。全新的Tair,在集团多年的技术沉淀基础上,从on-premise云化的数据库演进成为百分百cloud-native的数据库,并结合新型软硬件技术(AEP,RDMA等等),打造具备多种数据模型的,存储计算一体化的,面向各类实时场景的内存数据库,为客户提供一体化的实时数据处理的内存数据库。
本文将聚焦在解决大型持久存储需求、多样化数据模型和企业级能力上进行分享交流。
数据也是有温度的
当下的客户场景变得越来越丰富和复杂,业务的增长带来了数据量的飞速增长,客户期望更大容量更低成本的存储系统;而时间的不断推移,更久时间的数据访问量越来越低;应对这些场景,纯内存存储系统已经有些捉襟见肘。
机遇的一面是,在云的环境下,我们能较以往更容易获取应用到各种类型的存储介质,全新的技术,并在此基础上构建系统。为此,Tair从访问延时、持久化需求、整体成本这三个核心维度考量,基于DRAM,NVM,ESSD三种存储介质,推出了三种不同形态,来满足不同场景下客户的需求。
性能增强型
全量数据存在于内存中,同时数据会在持久存储上做快照,并备份到OSS。相当于开源社区的Redis,Tair在延时不变的情况下,吞吐达到了Redis的2倍以上。同时热点访问能力数十万每秒,同时能支撑30~50k并发连接。
内存引擎是Tair产品的基础和核心,现在和未来也一直会致力于存储引擎能力提升的研究和落地上,2019年Tair实现并发表了《HotRing: A Hotspot-Aware In-Memory Key-Value Store》,被FAST会议接收(USENIX Conference on File and Storage Techniques (FAST),CCF A类会议,存储领域顶会)。HotRing一方面提升了存储引擎的吞吐,另一方面也提升单个节点的热点承载力。
持久内存型
内存的价格依然是相对昂贵的,且容量有较大局限性,限制了在很多场景上的扩大使用,规模化使用。从2016年开始,Tair团队就开始持续关注业内相关的进展,于2018年正式开始投入Intel AEP的研究和使用落地,并成功应用于当年双11的电商商品核心集群中,大幅降低了成本,是中国首个在生产环境正式部署应用Intel AEP的产品。
2018年的版本,Tair软件层并没有在AEP上做相关数据持久化和恢复的特性,仅做为缓存使用。今年,随着云上环境的成熟,Tair基于AEP,全新研发了数据持久落地的自研引擎,并结合神龙裸金属服务器和云原生数据库管理系统),于2020年9月推出了Tair on SCM持久内存的版本。整体能力上,获得了近似内存的性能,90%的吞吐能力,而成本降低了30%;同时,从内存的易失性到AEP的持久能力,Tair自研引擎的每个操作都能持久化,大幅降低数据丢失的风险。
另外一方面,对整体应用架构的影响更是深远的;Tair持久内存,既拥有内存级的访问延时和吞吐,也拥有数据落地持久的能力;很多场景下,当前流行的应用 + 缓存 + 持久存储的架构模型将很可能转变成 应用 + 内存数据库即可;所以,通过采用Tair持久版本,除了在Tair上的成本降低之外,还能带来进一步的架构简化。
新型的存储级内存介质的逐步成熟,例如Intel AEP,可能会产生巨大的变革,理论界和工业界都在大力投入对存储级内存/非易失性内存如何应用于数据库/计算类场景的研究和落地。
容量存储型
业务的持续快速发展,数据量的进一步扩大,此时无论是采用内存,还是存储级内存SCM/AEP,还是略显高成本;所以,Tair通过on ESSD的容量存储版本来无缝对接这种场景,很好满足了客户容量增长的需求。On ESSD的版本成本最低可达到全内存版本的15%,拥有极高的性价比;同时容量可达到百T级别,而基于云盘ESSD,也带来了更高的数据可靠性;在提升了成本和数据可靠性的同时,也解决了开源社区Redis固有的fork问题而不得不预留部分内存的问题。
综上,Tair引擎的三个不同版本,全方位支持DRAM/SCM/ESSD,客户可以根据场景和需求来选择合适的版本,总有一款能适合您的业务。
丰富数据模型
Tair拥有丰富的数据模型,从KV到Redis的基础数据结构和兼容开源社区的一些模型,也拥有阿里内部一些常用的,久经考验的数据结构,例如带TTL的TairHash,TairString,例如分布式锁等等,再到TairGDB和TairCPC等事务和分析能力一体的实时计算类Module等等。接下来主要从场景上来描述下TairGDB和TairCPC。
TairGDB
TairGDB,图数据库,主要用在高度互联数据的存储,查询和计算。TairGDB用点和边来表达数据之间的关联,更贴近自然的表达方式,更注重对象之间的联系。
随着大数据,AIoT等的快速发展,现代的各类业务中往往存在着越来越多维度的相互关联的数据,如何能主动从中快速挖掘出的更多信息则会让数据更有价值。例如一个实时推荐的场景,客户从搜索恩施小土豆,通过TairGDB就可以一步步关联起食材土豆和相关菜谱,例如土豆牛腩这个菜。下一步通过这个菜包含的食材:洋葱,土豆,牛腩。可以反向给客户推荐相关的牛肉商品和洋葱商品,最终客户可以直接在生鲜商城一并下单。一方面大幅提升了客户体验,另一方面也促进了商场的营收。右边一个例子是我们的社交类客户,通过TairGDB来对好友关系进行计算分析后进行推荐拉新和提升活跃度。 同时,TairGDB在医疗健康,智慧城市,知识图谱,金融风控等行业中有丰富的场景和案例。
TairCPC
TairCPC(Compressed Probability Counting)是一种数据的压缩算法(sketches),利用很小的空间对采样数据做高性能的计算,适合在实时和流式计算场景下做高性能的风控和安全场景。
在大数据实时决策中的很多场景,例如银行交易防欺诈,信用卡刷卡时,快速计算判断刷卡环境是否可信,若有问题,同步进行交易拦截;或者是防范黄牛团伙薅羊毛,利用垃圾注册账号,虚拟设备,虚假地址等损害平台利益,实时识别。很多这类系统现有的架构都是通过业务日志,流入实时计算系统进行计算,然后存到在线存储系统,最终由实时规则或者决策系统进行决策;
Tair和集团CRO风控团队合作,直接将用户数据,流式的,按不同的去重维度,结构化存储到Tair里,相当于把存储和计算一体化到内存数据库中,结合高速访问的场景直接一步获得结果。同时提供多重的聚合运算,可以在纳秒级聚合结果,达到实时风控的能力。
TairGDB,TairCPC等数据模型,都是以内存存储和计算为基础,集事务和分析处理于一体,将实时计算等能力下沉到内存数据库中,在Tair中实现了多种工作负载,将客户场景真正在线化。
企业级能力
GlobalDatabase
不管是泛互联网厂商还是传统业务厂商,很多客户都需要跨域的能力,全球化的能力。这背后,有很多的益处不言而喻。Tair的全球数据库形态脱胎于集团内部的单元化,通过系统内置的数据同步,在不影响本地数据库的性能情况下实时将数据复制到其他区域的子实例。对于客户而言,这是一个整体的数据库实例,并且可以在每个region中获得低延迟的本地快速读取,并且在发生区域故障或者异常时提供切换和恢复能力。
安全——数据闪回
在当下数据为王的时代,客户的业务数据是一个企业的核心资产,各个行业客户都在不断追求在其使用的数据库上有更为强大、细粒度的数据备份恢复功能,以应对各样的数据丢失、业务逻辑错误带来的商业风险。例如,在游戏行业里,有大量客户存在“游戏回档”的实际需求,以应对运营或故障风险。再例如,2020年某上市公司出现删库跑路事件,公司市值遭到严重打击。对于上述情况,传统的定时或手动备份的数据由于存在备份时间点与黑天鹅事件之间的时间差,因此均不是理想完备的解决方案。对于防范上述数据风险,最理想的功能是,数据能够以秒级颗粒度恢复至黑天鹅事件发生的瞬时时间点上。
Tair内存数据库,虽然以内存存储介质为核心,但是在数据上依然做最高级别的保驾护航。Tair不仅仅有全量的备份和恢复能力,并且在Tair性能增强版本中提供了数据闪回的功能,帮助客户实在其指定时间点上精准恢复指定实例数据的能力,这也是云原生下“更安全”的践行。
TairMagPie混合多云
这两年,有部分客户不局限于把业务放在一朵云上,一种利用多种云服务的混合云新形态也逐步出现。业内有很多混合云的管理软件厂商,通过多云纳管,用户可以一点操作多个云平台的资源。而TairMagPie更类似于MongoDB的Atlas,目标是以阿里云Tair为中心,管控依赖标准k8s API对自有k8s资源进行管理,通过k8s operator部署/管理Tair实例,可以做到跨区域乃至跨云,并提供统一的完整的实例操作能力及产品体验。
总结
综上,Tair进入云的时代,将持续以内存/持久内存AEP为核心存储,重点建设云原生,混合存储介质上的数据智能分布,在线存储和实时计算处理一体化等核心能力,打造云原生内存数据库,让数据实时在线。