内存数据库

“全球内存数据库市场将以19.65%的复合年增长率继续快速发展。”分析机构Verified Market Research对主存数据库市场的发展给予了极大的肯定。

潜力巨大。看起来不错。

事实上,随着云计算和互联网技术的蓬勃发展,用户场景变得越来越复杂,数据增长越来越明显,给海量数据访问和处理带来了新的挑战。然而,传统数据库的管理和处理能力并不能完全胜任新时代企业的发展,也难以应对新数据时代的新挑战。

备受业界关注的键值非关系数据库,吸引了大家的眼球。NoSQL因其高可扩展性、高性能和灵活性而成为新数据时代的“潮流引领者”。

01

Redis虽然好,但阿里云为何还力推Tair

全球云观测和分析表明,键值数据库是以键值对的形式组织、索引和存储的,这给内存数据库在具体应用中带来了新的提升。在实际用户案例中,虽然Key-Value存储表现不错,可以有效减少读写磁盘的次数,带来比SQL数据库存储更好的读写性能,但也有一定的局限性,比如适用于不涉及太多数据关系的业务数据。

内存数据库

您可能非常了解键值数据库,例如:

气塞式

LevelDB

斯卡拉里斯

伏地魔计划

超指数

伯克利数据库

阿帕奇Accumulo

阿帕奇卡桑德拉

雷迪斯

MongoDB

Memcached

其中,近年来,Redis的表现尤为突出。这是为什么呢?

没有比较,没有认同。那么,我们就对Memcached和Redis做一个简单的对比分析。作为一个高性能的键值存储系统,Redis有点类似于Memcached。为了保证数据读写的效率,数据被缓存在内存中。

然而,Redis实现了更好的功能:

一方面,定期将更新的数据写入磁盘,并将修改操作日志添加到记录文件中;

另一方面,同时进一步实现了主从同步功能,给主从服务器带来了更高的读写效率。此外,在某些场景中,Redis对关系数据库起到了很好的补充作用。

Memcached只支持DataTable或HashTable简单数据类型,Redis支持String(字符串)、Hash(哈希)、List(列表)、Set(集合)和Zset(有序集)数据类型,从而实现丰富的数据操作。

为了方便大家,Redis为用户提供了Python、Ruby、Erlang、PHP客户端。

这样优秀的Redis据说是一个出生在西西里的意大利人antirez发明的。在Redis回顾前世,你很容易发现一些新的发现。

作为一名系统管理员,从2004年到2006年,antirez主要从事嵌入式工作。后来,我接触到了网络。2007年,我和朋友共同创办了网站LLOOGG。为了解决网站的负载问题,我在2009年开发了Redis内存数据库。

Redis自2009年诞生以来,已经开发迭代了多个版本。最新的主要版本是Redis 6.0.1,于2020年5月2日正式发布。正如Redis的发明者antirez所说,这个版本有三个最好的特点,那就是最能反映到目前为止的企业,有史以来最大的变化,参与开发的人数最多。

发展十几年不容易。Redis作为开源内存数据库的杰出代表,已成为全球最主流的键-值数据库产品,因处理高并发、高流量、低延迟的业务场景而备受业界重视,其缓存应用显示出性能优势。

Redis虽然好,但是作为云内存数据库,开源的Redis有很大的局限性。对此,阿里云智能数据库产品事业部高级产品专家黄鹏程指出:

首先,在Redis类下建设大容量服务出现了成本问题。当碎片数量较少,单个碎片较多时,调用分叉同步操作会给服务带来不稳定性,同时持久化会带来服务恢复缓慢。虽然采用主从模式来保证服务的可用性,但在很多情况下,其管理成本和内部通信成本会增加。

其次,Redis本身持久化数据的能力有限,最新版本引入了RDB和AOF两种模式来提高持久化能力。但是在实际应用中,Everysecond的持久化并不利于实际应用,尤其是在Redis已经作为存储数据的最终数据库的情况下。一旦出现问题,就会影响大量的整体数据。在100,000 TPS这样的高吞吐量情况下,一秒钟的数据丢失可能意味着数万条数据记录的丢失对于要求数据可靠性高的用户来说,这是最大的问题。此外,Redis缓存+主存储模式提高了持久性,也带来了数据一致性、主从数据库开销等一系列问题。

从实际情况进一步分析,Redis在应对客户业务的快速发展变化方面存在诸多问题。大容量Redis启动时,加载持久文件需要很长时间,缓存无法快速恢复。开源版本的Redis无法同时具备高性能和数据持久性。开源Redis的数据读写都发生在内存中。随着数据规模的增加,内存资源占用会增加,每台服务器的可用内存是一个很小的有限值,因此服务器的数量也会迅速增加,整体服务成本会大大增加。

另外,当业务进入发展后期,数据量逐渐变大,数据访问的频率会降低,对于开源Redis现有的应用架构和逻辑来说,很难降低数据存储的成本。

为了满足用户更多的业务场景和更优化的服务成本需求,需要解决开源Redis本身带来的弊端。阿里云为什么推Tair?答案就在这里。

02

青出于蓝而胜于蓝,十二年认真锤炼Tair

Tair的诞生不是一蹴而就的,而是经过了十二年的应用和锤炼。

事实上,阿里云推出的云原生内存数据库Tair,源自阿里巴巴集团自建的Key-Value数据库,是完全兼容Redis协议的内存数据库。

2004年,淘宝开始应用缓存技术。基于前端页面的缓存技术首次投入应用,使用ESI来标识可加速和不可加速的web内容片段,有效减少了从服务器抓取整页的次数。

随着淘宝流量的快速增长和数据库压力的不断增大,基于后端系统的缓存技术应运而生。从服务淘宝详情和验证码的持久化系统TBStore到最初服务淘宝用户中心的TDBM,后端系统缓存技术经历了多个系统和阶段的演变,以及经验的积累。到2009年,这些系统和技术经验被进一步创新,并合并到Tair中。

2009年4月,作为真正的企业级云内存数据库产品,Tair正式诞生。马上应用到淘宝的核心业务系统,然后逐渐进入阿里的其他核心业务系统。Tair最早的设计思想源于Redis,很多功能设计也参考了Redis。同时,为了方便用户的应用需求,Tair还完全兼容Redis的数据结构和接口API,原本采用Redis的应用可以无缝迁移到Tair。

2015年3月,Tair正式推出阿里云的云数据库Redis产品。阿里云Redis自2015年商业化以来,一直是全球领先的云内存数据库产品,主要有Redis和Tair两个产品。其背后的R&D团队拥有众多顶尖的Redis社区Committer,并在Redis的全球核心团队中拥有一名核心成员(共5人),在Redis技术的开发中持续为社区做出贡献。

2017年11月,Tair hotspot hash通过了双十一的测试,解决了行业内的热缓存问题。

2018年,Tair正式开始投入英特尔AEP的研究和使用。并在当年双11成功应用于电商产品核心集群,大大降低了成本,成为国内首个在生产环境中正式部署应用AEP的产品。但当时Tair的软件层并不具备AEP上相关数据的持久化和恢复的特性,只是作为缓存使用。

2019年4月,阿里云的云数据库Redis产品在Redis开源社区贡献中排名第三。

2020年9月,Tair正式推出持久存储系统形式,加速进入多存储引擎时代。随着云环境的成熟,Tair新开发了基于AEP的自研引擎,整合了神龙裸机服务器和云原生数据库管理系统的技术优势。综合来看,性能和内存差不多,吞吐量90%,成本降低30%。同时,从内存的易失性到AEP的持久性,Tair自研引擎的每一次操作都可以是持久性的,大大降低了数据丢失的风险。

2020年10月28日,阿里云正式发布Tair企业级Redis服务,包含持久内存型和容量存储型两种产品形态。这是Tair系列继性能增强和混合存储之后的又一力作。

经过多年的不断打磨、完善和改进,现在已经进化到了Tair 3.0。Tair全新定位企业级云原生内存数据库,全面覆盖客户在不同业务阶段对Redis性能、功能、成本的更高要求。

Tair兼容native Redis的数据结构和接口,具有更大容量规范、更低分叉抖动和命令级数据持久化的能力。同时打破了Redis中的数据只能在易失性存储上读写的传统模式。Tair针对客户不同业务阶段的数据存储需求和服务成本,完全实现了更持久、成本更低的内存数据库。

尤其是在安全风控的应用场景中,淘宝、天猫、饿了么等用户对线上风控的实时性要求非常高。一旦发现异常用户行为习惯或异常账号,需要在线实时发现并处理。因此,需要将Tair的企业级能力与云原生能力、低成本和灵活性充分结合,为应用提供实时在线处理能力,以进行风险控制。此外,Tair具有全球分布式能力。在任何节点写入数据后,都可以在其他可用区域AZ实时读取,这对于实现风险控制的实时异常监控非常有帮助,Tair提供了在区域故障或异常情况下的切换和恢复能力。

此外,在Tair云原生内存数据库和多模型计算能力的支持下,例如阿里的云图像数据库GDB支持属性图模型,而Tair GDB更有利于快速发现数据关系,为风控带来明显的帮助。

它以内存存储和计算为基础,集成了事务和分析处理。TairGDB、TairCPC等数据模型将实时计算能力下沉到内存数据库中,在Tair中实现各种工作负载,使用户场景真正做到在线、实时。

环球云观察分析指出,经过十二年的磨砺,Tair不仅解决了Redis在各种场景下数据可靠性与广泛使用之间的矛盾,也解决了高服务性能与数据可靠性之间的矛盾。更值得一提的是,Tair实现了更经济的成本来匹配用户业务不同阶段的服务接入热度。

2020年天猫“双十一”活动,以3723亿元的成交额,订单创造峰值达到58.3万单/秒。作为“双十一”的关键技术支撑,云原生内存数据库Tair应对订单高峰时的流量压力,实现在线访问加速能力,经受住了高达每秒15亿次的通话风暴。

在复杂的应用场景下,Tair在技术上不断创新。创新的适用于热点场景的Tair热点哈希解决方案,使得互联网应用类似于电子商务、社交网络等频繁出现的热点,大大降低了应用的开发成本,为热点场景节省了至少2/3的预留资源。

在商品信息等海量热数据存储的场景下,Tair推出了使用密度更高、成本更低的持久内存,使集群整体TCO降低了60%,而吞吐量和延迟都能满足场景要求。

据悉,南瓜电影、CC视频等用户使用阿里云内存数据库Tair的企业级功能,实现数据跨地域同步,为终端用户带来更极致的体验。

Tair参加过多次“双十一”考试,在优酷春晚、菜鸟、高德、南瓜电影、CC视频等业务场景中经过不同规模应用的锤炼。与开源的Redis相比,可以说青出于蓝而胜于蓝。

03

让数据实时在线,Tair正在撬动一个新时代

当然,作为新一代内存数据库的代表,Tair已经超越Redis,实现了从缓存到真正的内存数据库的角色转变。越来越多的核心应用程序使用Tair作为其缓存模式之外的持久数据存储方案。

“云原生、持久和融合计算,这三大要素的加持,让内存数据库的发展正式进入一个新的阶段。”2020年12月13日,阿里云数据库负责人李菲菲在云内存数据库峰会上表示,阿里云的Tair正在引领潮流,加速云原生内存数据库时代的到来。

进一步分析表明,阿里云Redis团队在自研的内存数据库系列Tair中,也在基于当前用户的具体应用需求进行创新。毕竟在不同的应用场景下,数据访问速度和数据容量都会有所不同。根据不同的数据温度场景,综合考虑访问延迟、持久需求和整体成本三个核心维度,基于DRAM、NVM和ESSD三种存储介质,推出三种不同形式的Tair,满足用户在不同场景下的具体需求。除了最新的永久内存和容量存储,Tair还具有熟悉的性能增强。

作为Tair持久存储系列的两种产品形态,持久存储型和容量存储型的工作原理相同,都是将数据放在非易失性存储介质上。数据库启动时不需要加载数据,应用程序直接访问相关数据。在写数据的时候,也能保证命令级数据的可靠性。当写入一段数据时,它将永久存储在非易失性介质中。同时也消除了fork带来的服务抖动,同时保持了Redis面向业务应用的通信协议、数据结构和API,熟悉原生Redis的用户可以轻松使用。

硬件选型方面,持久内存类型采用英特尔傲腾持久内存(AEP),容量存储类型采用阿里云ESSD云盘。

英特尔AEP持久性存储器架构具有突出的特点。在DRAM内存和块存储之间增加了一个大容量的持久存储层,使数据不会丢失,性能优异,性价比高。在采用英特尔AEP持久内存技术后,Tair持久内存兼容大多数Redis数据结构和命令。借助AEP的App Direct模式,实现高性能下的命令级持久化能力。价格方面,Tair持久内存相当于阿里云社区版Redis价格的70%左右,适用于要求高吞吐量、低延迟、高数据可靠性的热点数据访问场景。

而对于冷暖数据访问场景,用户要求更高的数据持久性、更高的存储密度和相对较低的数据访问频率。基于阿里云ESSD云盘技术,引入Tair容量存储类型,兼容Redis核心数据结构和命令,满足用户超大容量和折中的平均性能。

在基准性能测试中,其基础数据类型的读取性能中值约为开源Redis的70%,写入性能中值约为开源内存版本的55%,服务拥有成本最低可降至阿里云Redis社区版本的15%左右。

值得一提的是,在刚刚结束的为期四个月的数据库性能大赛中,Tair提炼了双十一火爆场景的挑战和持久内存方面的最佳实践,携手业内众多同行,共同推动持久内存数据库的应用和发展。

但无论是哪种场景,Tair都支持在线访问,承担着巨量的流量,在流量的渗透和击穿以及自身系统雪崩的防范上做了非常深入的工作。

目前,从高访问强度到高存储密度,Tair的产品线已经覆盖了企业级Redis服务的全线。

阿里云数据库负责人李菲菲在总结Tair的整体优势时,将其归纳为三个方面:

优势一:支持大规模单例,价格更亲民。单个进程最高可支持256G,集群规模可达64 t以上。

第二个优点是它提供了命令级的持久性并简化了架构。操作写的过程是持久化存储,远胜开源Redis的秒级持久化能力。并且可以将原有的“缓存加主存”的双数据存储架构合二为一。

优点三:高性能无抖动,稳定可靠。用过开源Redis的朋友应该深有体会,它的性能抖动困扰着大家。

尤其值得注意的是,在数据安全方面,传统的定时或手动备份不足以应对目前用户面临的各种数据丢失和业务逻辑错误带来的商业风险。Tair不仅具备完整的备份和恢复能力,还在Tair增强版中提供了数据闪回功能,帮助用户精确恢复指定实例在其指定时间点的数据,在数据安全上为用户实现最高级别的保驾护航。

环球云观察分析指出,更多对数据安全的考虑,凸显了阿里云在云数据库领域的全球化思维。当然,对于阿里云来说,在数据库领域的培育和布局也是非常全面的。

作为国内最早的云数据库厂商之一,阿里云已经形成了完整的布局。包括关系数据库、NoSQL数据库、数据仓库、数据库生态工具、云数据库专属集群五大产品板块。

在NoSQL数据库布局上,一方面,阿里云数据库Redis将使用Redis作为云服务,供用户快速访问云端,体验独创的开源Redis。另一方面,着力打造自研产品Tair,作为“存储与计算一体化”的企业级云原生内存数据库,全面覆盖客户在不同业务阶段对Redis性能、功能、成本的更高要求。

显然,云计算和大数据的发展势不可挡,云原生内存数据库必然迎来新的发展机遇,这将在很大程度上改变“应用+缓存+持久存储”的原有架构模式,通过采用Tair持久内存方案,进一步简化架构,降低TCO,Tair也将引领“应用+内存数据库”的新趋势。

未来,Tair将在成本、灵活性、计算和企业级等方面继续进一步优化,通过池化内存存储为各种计算模型和计算能力提供支持,实现存储计算在内存层面的真正融合。

2020年11月,Gartner公布2020年全球数据库魔力象限评估,阿里云首次进入全球数据库第一阵营——领导者象限。这也是中国数据库40年来首次进入世界顶级数据库行列,标志着国产数据库正式进入一线行列。

IDC数据显示,在公有云市场,阿里云在云数据库赛道上的营收已经排名全球第三,而就整个数据库市场而言,阿里云在中国市场份额排名第一。

毋庸置疑,云原生数据库已经成为行业的发展趋势。在去年发布的题为《数据库管理系统(DBMS)市场的未来是云》的报告中,Gartner明确指出,传统的自行部署数据库的方式已经过时。

云是未来,所有组织,无论规模大小,都将越来越多地使用云数据库。为此,阿里云进一步丰富云数据库产品符合这一趋势。对此,在企业级云原生内存数据库的开发中,Tair将不断强化云原生、软硬件技术结合、数据存储与计算一体化等核心能力,让云原生内存数据库真正来到每一个人身边,不断满足用户在数字化转型过程中的业务发展需求,贡献更大的创新力。

(阿明)

-结束-

你们

怎么

用于疑问句和副词/用来表示迷惑

欢迎在文末留言评论!

文章来源:阿明、全球云观察,版权归作者所有。商业转载请联系作者授权,非商业转载请注明出处。本文及作者回复仅代表个人观点,不构成任何投资建议。

在这里我们都看到了,所以要注意!

【阿明】:科技评论专栏作家,从事科技媒体22年,每年产生新闻评论数百万字。用数据说话,我带你去了解科技类上市公司。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论