每日一博 | 一种 KV 存储的 GC 优化实践
作者:vivo 互联网服务器团队- Yuan Jian Wei 从内部需求出发,我们基于TiKV设计了一款兼容Redis的KV存储。基于TiKV的数据存储机制,对于窗口数据的处理以及过期数据的GC问题却成为一个难题。本文希望基于从KV存储的设计开始讲解,到GC设计的逐层优化的过程,从问题的存在到不同层面的分析,可以给读者在类似的优化实践中提供一种参考思路。 一、背景介绍 当前公司内部没有统一的KV存储服务,很多业务都将 Redis 集群当作KV存储服务在使用,但是部分业务可能不需要 Redis 如此高的性能,却承担着巨大的机器资源成本(内存价格相对磁盘来说更加昂贵)。为了降低存储成本的需求,同时尽可能减少业务迁移的成本,我们基于 TiKV 研发了一套磁盘KV存储服务。 1.1 架构简介 以下对这种KV存储(下称磁盘KV)的架构进行简单描述,为后续问题描述做铺垫。 1.1.1 系统架构 磁盘KV使用目前较流行的计算存储分离架构,在TiKV集群上层封装计算层(后称Tula)模拟Redis集群(对外表现是不同的Tula负责某些slot范围),直接接入业务Redis客户端。 图1:磁盘KV架构...

