美团技术团队 美团大规模kv存储挑战与架构实践
美团大规模KV存储挑战与架构实践
- URL: 原文
- Added At: 2024-12-11 10:22:56
- Link To Text
TL;DR
美团大规模KV存储面临扩展性和可用性挑战。为此,美团开发了Squirrel和Cellar两种KV存储系统。Squirrel通过Gossip优化、线程队列模型改造、线程RTC模型改造和内存引擎无锁化等方式解决了水平扩展和可用性问题。Cellar通过双向同步冲突自动解决等方式实现了跨地域的容灾架构。未来,美团将继续优化KV存储系统,探索新技术和硬件应用。
Summary
美团大规模KV存储挑战与架构实践
- 美团KV存储发展历程:
- 第一代分布式KV存储:客户端一致性哈希,后端部署多个Memcached实例
- 第二代:引入Redis,解决宕机和扩容问题
- 第三代:引入Tair,解决数据迁移和扩容问题
- 第四代:自研Squirrel和Cellar,满足业务需求
- 大规模KV存储的挑战:
- 扩展性:水平扩展和垂直扩展
- 可用性:保证集群可用性不会随着规模的变大而降低
- 内存KV Squirrel挑战和架构实践:
- 水平扩展的挑战:Gossip消息通信量膨胀,影响服务可用性
- Gossip优化:使用Merkle Tree对Gossip消息进行摘要,减少通信量
- 线程队列模型改造:引入调度线程和空闲线程池,实现线程资源的快速动态分配
- 线程RTC模型改造:让网络线程直接处理读请求,减少CPU资源消耗
- 内存引擎无锁化:使用RCU机制实现异步内存回收,解决读请求与写请求冲突
- 持久化KV Cellar挑战和架构实践:
- 可用性的挑战:实现跨地域的容灾架构,解决数据冲突问题
- 双向同步冲突自动解决:使用HLC时钟解决时钟回退和两次变更写入的本地时间相同的问题
- 发展规划和业界趋势:
- 服务层:去掉ZK依赖,支持向量引擎能力,云原生部署和调度
- 系统层:探索Kernel Bypass技术,降低访问延迟和成本
- 硬件层:探索计算型硬件的应用,降低服务访问延迟和成本