首页 > 用户投稿

内存数据库有哪些(内存型图数据库)

作者:黄鹏程(马格)

一、tair背景介绍

(一)什么是阿里云tair云原生内存数据库

阿里云tair云原生内存数据库线上名字为阿里云数据库redis企业版(又称阿里云tair),从2009年开始正式承载集团业务,是一款历经磨练的企业级产品。它完全兼容redis的数据结构和通讯协议,包括api接口,并且在内部逐步打磨的过程中,基于tair研发云上托管云内存数据库。

如上图所示,tair产品分为三个类型,从性能到性价比有不同的产品排布,下面用1.0x表示开源的redis的性能与价格,从性能和价格上与三个类型的tair产品进行对比。

tair性能增强型性能约为开源redis的两倍,支持多种常见数据结构,在天猫/淘宝/高德/优酷中大规模使用,并拥有任意时间点恢复/全球分布式/热点散列等特性。tair持久内存型基于intel傲腾持久内存做的数据库,后文会重点阐述其特点。tair容量存储型直接对标社区pika等开源存储型redis产品。然后因为我们会用阿里云的高效的高效云盘,所以说整个的功能和性能都会比pika强很多。

如上图所示,从内存存储方面,tair三个类型的产品适应不同的场景。

tair性能增强型1)数据读写频繁,要求低延迟,支持大连接;

2)成本相对不敏感,以满足业务性能需求为主。

tair持久内存型1)数据读写较频繁,延迟要求可稍微放宽,存储数据量有一定较大容量要求;

2)成本控制较之热数据要求更高。

tair容量存储型1)数据读写密集程度低,延迟要求不高,整体存储容量要求高;

2)成本是最大考量因素。

(二)阿里云tair面向业务的数据结构让业务创新更容易

在业务方面,阿里云tair与基于传统redis存在许多不一样的地方,阿里云tair业务结构如下所示。

除此之外,阿里云tair有以下优点:

1)高性能

性能增强型,流量上涨淡然处之,性能是开源redis的2倍。

2)持久化

持久内存型,数据可靠,方便业务使用,不再担心数据丢失。(rpo=0)

3)低成本

多种存储介质,选择最优性价比,性价比高于ecs自建。

4)丰富数据模型

在社区redis上提供了更多面向应用的数据结构,应用开发更简便。

5)企业级能力

全球多活,数据闪回,混合多云(热点散列)。

(三)阿里云tair历史

上图为tair的发展历史。从tair1.0开始,团队就孵化出了云redis社区版和云memcache,这是线上社区托管的两个版本。

在tair1.0的时候,就会整个孵化出来,2.0逐步上云,3.0会孵化出来一款叫gdb的产品,是一款线上的图数据库。

再往下是tair(redis企业版/tair3.0),集团和云上是同一个版本,有很多种形态来支持用户在各种业务场景下的需求。

二、tair功能介绍

(一)做一个不丢数据的内存数据库—tair持久内存型

我们希望做一个不丢数据的数据库,做法是通过新硬件和新软件来进行。

1.新硬件

引入英特尔®傲腾™数据中心级持久内存;与dram内存相近的性能表现,而且其大容量和非易失性的特性还可帮助系统获得更优的可用性;它相比于dram内存的成本和容量优势,也可帮助客户有效地降低总拥有成本。

上图为存储介质图,速度延迟从上到下逐步增大,相反,容量逐步减少,成本逐步降低。storageclassmemory处于中间,性价比较高。

2.新软件

模式选择新软件的开发模式方案有两种,分别是内存模式(memorymode)与应用程序直接访问模式(appdirectmode)。

在内存模式下,应用和os将其视为易失性内存池,虽对应用透明,但掉电即失,因此不采用。

在应用程序直接访问模式下,持久内存和dram充当独立内存资源,通过构建符合redis协议和数据结构的软件利用两块存储资源构建兼容redis、具备命令级持久化能力的内存数据库。

全新的挑战

我们选择重新写兼容redis的东西,而不是在redis基础上进行更改,是因为新软件有着全新的挑战:

1)替代原有的内存分配器,同时要保证内存分配器元数据的持久化;

2)redis数据结构与索引的持久化要保持一致性;

3)持久内存和易失内存如何协同工作,让整个数据库高性能工作,同时还具备强大的持久化能力。

3.产品化能力

上文结合软硬件的能力阐述了如何去构建持久化内存的形态,下面可以看一下所带来的成果。

消除aofrewrite与fsync的无fork设计,服务更顺滑,p95延时较之内存版redis更低更稳定;读写性能吞吐为内存版redis的90%以上。

原生命令级持久化能力,操作写入即持久化;缓存主存合一成为可能,成本更低,架构更优雅。

4.应用场景

应用场景主要分为如下两种。

场景一:大数据量、高性能、成本的综合选型考虑

机器学习平台、推荐系统等计算数据对性能和容量的要求很高;全内存又使得成本压力巨大;可采用tair持久内存型以有效降低成本,并能够保持高性能运行;同时用户也无需为降本而综合使用其他数据存储,有效地平衡了系统复杂度与成本。

场景二:用作持久化数据存储

游戏、直播、数据分析中大数据结果集对外提供查询服务等场景可以使用;可采用tair持久内存型作为数据最终的存储;对比缓存主存的两层架构,数据同样可靠;性价比更高,代码更简化,架构更优雅。

(二)做一个具备时光机能力的数据库--数据闪回

我们希望这个内存数据库具备有时光机能力。时光机能力表示可以将数据恢复到过去指定的任何时间点,也称为数据闪回,它有如下两大特点:

七天内任意时间点的数据恢复1)backup/restore的终极形态

2)支持按秒级的数据恢复(可支持到按条)

3)防止删库跑路场景

4)clone

原文标题:内存数据库有哪些(内存型图数据库),如若转载,请注明出处:https://www.angelbnb.com/tougao/15379.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「天使号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。