您的位置  > 互联网

内存数据库的发展趋势与趋势分析

本白皮书阐述了内存数据库的概念,梳理了内存数据库的发展历史和核心属性,分析了电商、直播、电信行业的典型应用场景,并对主流内存数据库进行了介绍和比较从技术的角度和管理的两个角度提出了产品选型和硬件选型的建议,总结了内存数据库的发展趋势:

下载链接:内存数据库白皮书

技术服务于业务,内存数据库的选型首先要遵循业务场景的需求。 业务特性决定了数据的应用特性,包括数据量、并发度、读写特性、一致性、响应时间、操作复杂度、业务连续性等需求,对应数据库的一致性、容错性、可扩展性和安全性。 及其他技术要求。 在选择内存数据库之前,建议先梳理一下业务需求,并进行量化; 然后将核心数据应用特性映射为数据库技术要求; 最后根据筛选出的技术要求进行选择。

1).技术因素

根据技术需求选择内存数据库时,主要考察三个因素:业务性能、一致性要求和SQL兼容性。

业务对性能要求高吗? 一般对于高并发、低延迟读写需求的业务,比如实时比赛排名、直播粉丝关注度等,建议选择内存数据库。

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

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

除了这三个考察指标外,还可以根据数据容量、成本、可扩展性、可维护性等需求综合考虑。

2).非技术因素

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

硬件选型建议

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

1、如何选择存储

作为内存数据库,在选择硬件时,优先考虑大内存,比如256GB或者512GB。 如果业务在选择技术时需要持久化,那么在选择硬件时就需要考虑磁盘的IOPS(Input/Per)。 比如选择Redis,就需要做RDB+AOF持久化。 那么硬盘最好是SSD或者PCI-e(目前基于NVM协议的SSD比较合适)。

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

还有一个特殊的使用场景,就是冷热数据分离。 热数据存储在内存中,冷数据存储在磁盘中。 这通常涉及热数据和冷数据的交换。 在这种情况下,就需要磁盘。 为了获得足够高的性能,PCI-e 是最好的。

2. 如何选择网络

千兆网卡可以满足大部分需求。 如果预算充足,又想达到极致的性能,可以选择10G交换机和10G网卡。

3、如何选择CPU

基于CPU的单核性能

内存数据库技术演进趋势

(1)内存数据库与传统数据库混合使用将成为主要模式

随着业务的增长,很多内存数据库的存储容量已经达到了TB级别。 内存数据库的海量存储已成为必需。 同时,它还必须具有性能优势。 成本和可扩展性成为两大问题。

数据分离是现阶段实现这一愿景的可行方案。 一般以冷热数据访问作为分离的判断条件,冷数据从内存中转移,选择性能和成本较低的SSD或磁盘进行存储。 这种内存和磁盘混合的数据库会将所有热点数据保留在内存中,业务可以根据自己的需求调整内存和磁盘的比例,可以达到性能和成本的平衡。 数据分离需要设计适当的机制来处理冷热数据识别和冷热数据交换。

(2)软硬件深度融合,开辟内存数据库新的技术方向

随着业务逻辑越来越复杂、业务系统越来越庞大,业务对内存数据库的性能和容量的要求也越来越强烈。 当内存数据库规模达到一定程度后,传统的“通用硬件+通用软件”集成模式已经达到瓶颈,无法进一步满足业务需求。 因此,必然会开发出软硬件深度融合的混合存储数据库系统。 硬件涉及四个主要子系统:网络、存储、内存、处理器。

(3)协议创新提高分布式内存数据库的一致性

在金融和交易相关系统中,传统上使用关系数据库来存储数据。 键值内存数据库比关系数据库使用更简单,扩展也更方便。 一些用户正在尝试使用键值内存数据库。 来存储这些重要的数据。 通常,基于键值对的内存数据库会异步进行主从复制,主从副本之间要实现数据完全一致存在一定的延迟。 在主从副本达到完全一致性之前,如果发生主从切换,可能会丢失部分写入数据。

传统的解决方案是检查每个写入请求的异步复制进度。 只有主从同步一致才允许写入,这无疑会损失很大一部分性能。 在多个副本的情况下,在允许下一次写入之前,所有副本都需要保持一致。 检查多少个副本取决于所需的一致性级别和性能下降的容忍度。

(4)结合容器技术提供弹性扩展

随着互联网的发展和企业业务规模的扩大,很多业务最初规划的系统规模已经无法满足快速增长的业务需求,因此弹性扩展性也是内存数据库发展的一个重点。 近年来容器技术的成熟和普及,为弹性扩展提供了可行的解决方案。 使用容器会带来很多好处:

更小的资源消耗:与之前广泛使用的虚拟机相比,容器本身消耗的资源更少。 节省下来的资源可以承担内存数据库更多的计算。 在总资源相对固定的基础上,可以为数据库的扩展提供更多的空间。

更高的资源利用率:一台主机上可以运行数百或数千个容器。 如果将每个容器想象成一个内存数据库,则可以大大提高主机的资源利用率。 当数据库需要扩展时,您可以轻松找到可部署的主机资源,从而可以创建更多的数据库实例。

易于迁移:考虑到内存数据库的扩展需求,需要在不同环境下快速迁移。 借助容器,我们不需要关心宿主机环境。 我们只需要做好形象就可以实现快速、安全的迁移。

快速部署:弹性扩展的一个非常重要的指标就是新增节点的速度。 与传统虚拟机相比,容器在这方面具有很大的优势。 部署一般可以在几秒内完成,非常适合一些紧急任务。 扩展场景。

管理自动化:例如集装箱管理技术的快速发展,将集装箱的自动化管理推向了一个新的水平。 它还提供了内存数据库的自动化部署和弹性扩展的可能性。 通过预部署监控可以自动触发弹性扩容。 程序实现自动弹性伸缩。

下载链接:内存数据库白皮书

金融级数据库容灾技术报告(2021)

数据库发展研究报告(2021)

分布式数据库原理及架构设计

本账号所有信息均上传至知识星球,加入全栈云技术知识星球即可下载所有信息。

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ 结尾 ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧