随着互联网业务的飞速发展,传统的单机数据库已无法满足大规模数据存储和高速查询的需求。快手作为国内领先的短视频平台,面临着海量的数据存储和处理的挑战。为此,快手数据库团队自研了分布式KV存储底座——KinsDB,以应对这些挑战。
一、KinsDB简介
KinsDB是快手内部自研的存储-计算分离架构下的分布式KV存储底座,具有低延迟、高吞吐的特性。它不仅支持KV接口,还向上支撑了SQL、宽表、图计算等多种计算引擎,为快手内部的核心业务提供了强有力的数据存储支持。
二、KinsDB架构
KinsDB的架构设计充分考虑了分布式系统的特点,包括多模支撑、高内聚、高可用、跨AZ部署等。其中,PD(Placement Driver)负责全局分片管理,包括调度、监控、分裂、迁移等功能。Store存储层负责数据的存储,包含MVCC、分布式事务、热key合并、流控等多个功能模块。
三、关键技术点
- 分布式事务:KinsDB通过Raft一致性协议保证分布式事务的ACID特性,支持算子下推和Schema优化,降低了网络时延和吞吐问题。
- 分片调度:KinsDB支持Range、Hash、PrefixHash等多种分片方式,能够根据分片大小和QPS自动调度,解决热表问题。
- 高自愈能力:KinsDB具备高自愈能力,能够在故障发生时快速切流,无需外部依赖。
四、部署与实践
KinsDB在快手内部得到了广泛的应用,支撑了包括KV、SQL、宽表、图计算等多种场景。在实践中,KinsDB展现了出色的性能和稳定性,为公司内部诸多核心业务保驾护航。
五、未来规划
KinsDB的未来规划以业务需求/痛点作为出发点进行开发迭代,不过度设计。未来,KinsDB将继续优化性能,提升系统的稳定性和可扩展性,以应对更加复杂和多样化的业务需求。