关键词:
键值存储
可调一致性
内存数据库
持久化
分布式
摘要:
在互联网时代,Redis凭借其高性能与低延迟特性已成为互联网技术生态中的核心基础设施。但随着实时数据量激增,其在大容量场景下面临性能衰减、内存成本上升、故障恢复缓慢及持久化不足等挑战。为此,业界推出基于磁盘键值存储的新型持久化Redis数据库(如Pikiwidb、Tidis、RoF),利用高性能存储引擎与多线程架构,实现了大容量、低成本、高性能的Redis服务。以Pikiwidb为代表的持久化方案虽实现了单机大容量低成本存储,但仍沿用早期Redis集群架构,未考虑全持久化场景的分布式事务、高可扩展性和数据一致性需求,此外,其固定分区锁同步与频繁元数据读写在高冲突场景下性能不佳。而基于成熟分布式键值存储的存算分离方案(如Tidis)虽继承了底层存储的高可靠性与强一致性,但跨节点通信和全局事务依赖显著降低了整体性能,且过度的强一致性追求限制了系统在一致性与性能间的灵活调整。
针对上述问题,本文提出一种原生分布式持久化Redis数据库(DRedis),通过设计具有动态可调一致性的存算一体集群架构与高性能无锁命令合并执行框架,实现低成本、高吞吐与强一致性的统一,并针对小数据量扫描场景、分布式Redis事务以及系统易用性进行了优化。本文的创新与主要工作内容如下:
·针对现有方案集群架构缺陷与性能瓶颈,设计了存算一体的分布式集群架构,采用统一多Raft角色实现单机与分布式一体化模式,并提出了Raft预应用与多数派提交协同决策的多版本可调一致性模型,以提升易用性并平衡一致性与性能。此外,为优化高冲突场景性能,设计了基于无锁执行队列的物理分片级命令执行框架,并提出批内命令合并执行算法,减少了数据写入。
·针对分布式事务缺失或性能低下问题,结合Redis事务语义,基于两阶段提交协议与原生分布式架构设计了轻量级分布式Redis事务,以提高事务执行性能减少对普通命令的影响。同时,针对小数据扫描场景,设计紧凑存储格式,并基于成本评估构建紧凑/分离式格式的自适应映射策略。
·在完成系统设计与原型实现后,进行了单机与集群环境下的多功能性能测试。实验结果表明,无锁执行框架与命令合并算法在高冲突场景下表现优越,自适应策略及紧凑格式在小数据量场景下具备优势,并验证了可调一致性模型的可用性及轻量级分布式事务对普通命令的隔离性。