重磅: 内存数据库现状和选型(附白皮书下载)

重磅: 内存数据库现状和选型(附白皮书下载)_第1张图片

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

今天,我们通过DB Engines Ranking公认比较权威的数据库排行,对公认最为活跃的10款典型内存数据库进行对比。

重磅: 内存数据库现状和选型(附白皮书下载)_第2张图片

10款典型数据库简单对比


在开源产品中,Redis和Memcached是最受欢迎的两款键值对内存数据库;而SQLite是最受欢迎的关系型内存数据库。表中大部分的关系型内存数据库为商用数据库,其中热度最高的是SAP HANA。


在1995年,发布第一版的Oracle TimesTen数据库仍然在榜上活跃。2014年新发布Apache Ignite兼容键值和关系型数据结构,热度正稳步攀升。


事务支持方面,大部分的关系型内存数据库称可以支持ACID,但都需要在性能上作出妥协。具体可参考表2中的信息。

 

内存数据库选型建议


技术服务于业务,内存数据库的选型应首先遵循业务场景的需求。业务特性决定了数据的应用特性,包括数据量、并发度、读写特性、一致性、响应时间、操作复杂度、业务连续性等要求,对应数据库的一致性、容错性、扩展性、安全性等技术要求。


在做内存数据库的选型前,建议先梳理业务需求并进行量化;再将核心数据应用特性映射成数据库技术要求;最后按筛选出的技术要求进行选型。


1.技术因素


按照技术要求进行内存数据库选型时,可主要考察业务的性能、一致性要求和SQL兼容性三个因素。


1、业务是否有很高的性能要求?一般有高并发、低时延读写要求的业务,如游戏实时排行、直播粉丝关注等,建议选择内存数据库。


2、业务数据是否要求强一致性?如果业务对数据的可靠性和一致性要求较高、需要ACID级别的事务支持,则建议使用MySQL等传统的关系型数据库。但需要注意的是,强一致性的要求会对数据库的性能造成一定的影响;如果需要兼具高性能和强一致性,则需要在应用架构层面进行优化,单靠数据库的能力还无法实现。


3、数据处理是否要求SQL兼容性?在高性能要求的场景下,业务中如果数据结构固定、有复杂的关联计算要求,或是需要SQL语法支持的情况,建议使用关系型内存数据库;对于数据结构多变、扩展性要求高、数据模型和操作简单的场景,建议使用键值对内存数据库。


除了这三条考察指标,还可以结合数据容量、成本、扩展性、可维护性等需求进行综合考量。

 

2.非技术因素


上述选型方法主要考量的是技术因素,除此以外还可以结合实际情况,引入一些其他维度的考量,进行综合评估,最终挑选出适合的产品。包括但不限于以下维度:


1)生态成熟度。指数据库产品的状态,包括各种配套工具、技术架构成熟度、代码质量、开发模式、社区建设、商业支持服务、版权协议等。


2)应用架构适配度。指应用架构对数据库架构的兼容性、以及适配改造友好度,包括技术架构适配、开发语言适配等。


3)团队适应度。指开发团队、维护团队对数据库的熟悉程度、偏好程度、学习成本以及配套运维工具等。

 

硬件选型建议


内存数据库是为高性能而存在的,适合才是最好的,因此在硬件选型上建议根据业务情况综合考虑成本和收益。


1.如何选择存储


作为内存数据库,硬件选型的时候,优先考虑的就是大内存,比如:256GB或512GB。如果在技术选型的时候,业务上要求有持久化的功能,那么在硬件选型的时候需要考虑到磁盘的IOPS,比如选择了Redis,需要做RDB+AOF的持久化,那么硬盘最好是SSD或者PCI-e。


如果有足够的预算,并且业务对内存数据的访问量不是非常大,响应时间没有那么高,那么也可以考虑用Persistent Memory(这种新技术的性能是物理内存性能的70-80%)。


还有一种特别的使用场景,那就是冷热数据分离,热数据存储在内存中,冷数据存储在磁盘上,这种常常会涉及到冷热数据的相互交换,那么这种情况,就需要磁盘要有足够高的性能,PCI-e最佳。


2.如何选择网络


千兆网卡即可满足大部分需求,如果预算充足并希望达到极致的性能,可选择万兆交换机和万兆网卡。


3.如何选择CPU


基于X86架构的CPU单核心性能更高,能适配大部分的内存数据库产品,成本也相应更高;ARM架构的CPU成本更低廉,但可以适配的内存数据库产品有限。


在6月4日下午的大会上,重磅发布<内存数据库白皮书>,中国信息通信研究院云计算与大数据研究所王妙琼对白皮书进行了解读。


内存数据库白皮书

  • https://pan.baidu.com/s/150Uhd6AFEFtlW5on9zLjNQ

重磅: 内存数据库现状和选型(附白皮书下载)_第3张图片


白皮书还从技术和管理两个角度提出了产品选型和硬件选型建议,并总结了内存数据库的发展趋势。


推荐阅读(2019精华):

  • ①、双活距离太远为啥用波分,容灾链路设计关键点知多少?

  • ②、GPFS和Lustre之后,还有谁来统接盘?

  • ③、收藏: 详解DPDK技术知识点

  • ④、如何利用SCM/NVM技术提高数据库性能?



温馨提示:

请识别二维码关注公众号,点击“阅读原文”获取更多云计算、微服务架构等技术资料总结

640?wx_fmt=jpeg

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

你可能感兴趣的:(重磅: 内存数据库现状和选型(附白皮书下载))