Abase2:字节跳动新一代高可用 NoSQL 数据库

动手点关注 干货不迷路 👆

背景

自 2016 年以来,为了支撑在线推荐的存储需求而诞生的——字节跳动自研高可用 KV 存储 Abase,逐步发展成支撑包括推荐、广告、搜索、抖音、西瓜、飞书、游戏等公司内几乎所有业务线的 90% 以上的 KV 存储场景,已成为公司内使用最广泛的在线存储系统之一。

Abase 作为一款由字节跳动完全自研的高性能、大容量、高可用的 KV 存储系统,支撑了业务不断快速增长的需求。但随着公司的持续发展,业务数量、规模持续快速增长,我们业务对系统也提出了更高的要求,比如:

  • 极致高可用:相对于一致性,信息流等业务对可用性要求更高,希望消除宕机选主造成的短时间不可用,和慢节点问题;

  • 全球部署:无论是边缘机房还是不同地域的机房,同一个 Abase2 集群的用户都可以就近访问,获取极快的响应延迟;

  • CRDT 支持:确保多写架构下的数据能自动解决冲突问题,达成最终一致;

  • 更低成本:通过资源池化解决不同用户资源使用不均衡,造成资源利用率不足问题,降低成本;

  • 极致高性能:相同的资源使用下,要求提供尽可能高的写/读吞吐,和较低的访问延迟。适配 IO 设备和 CPU 性能发展速度不匹配趋势,极致高效对 CPU 的使用;

  • 兼容 Redis 协议:为了让 Redis 用户可以无障碍的接入 Abase,以满足更大容量的存储需求,我们需要完全兼容 Redis 协议。

在此背景下,Abase 团队于 2019 年年底开始孵化第二代 Abase 系统。结合业界的先进架构方案及公司内部实践过程中的积累和思考,团队推出了资源池化,支持多租户、多写、CRDT 的软硬件一体化设计的新一代 NoSQL 数据库 —— Abase2。

架构概览

数据模型

Abase 支持 Redis 的几种主要数据结构与相应接口:

  • String: 支持 Set、Append、IncrBy,是字节线上使用最为广泛的数据模型;

  • Hash/Set:使用率仅次于 String,在部分更新/查询的结构化数据存取场景中广泛使用;

  • ZSet: 广泛应用于榜单拉链等在线业务场景,区别于直接使用 String+Scan 方式进行包装,Abase 在 ZSet 结构中做了大量优化,从设计上避免了大量 ZIncrBy 造成的读性能退化;

  • List/TTLQueue: 队列接口语义使业务在对应场景下非常方便地接入。

架构视图

38b3a14649a6b78f650d39c3b0e7b91d.png图 1:Abase2 整体架构图

Abase2 的整体架构主要如上图所示,在用户、管控面、数据面三种视角下主要包含 5 组核心模块。

RootServer

线上一个集群的规模大约为数千台机器,为管理各个集群,我们研发了 RootServer 这个轻量级组件。顾名思义,RootServer 拥有全集群视角,它可以更好地协调各个集群之间的资源配比,支持租户在不同集群之间的数据迁移,提供容灾视图并合理控制爆炸半径。

MetaServer

Abase2 是多租户中心化架构,而 MetaServer 则是整个架构的总管理员,它主要包括以下核心功能:

  • 管理元信息的逻辑视图:包括 Namespace,Table,Partition,Replica 等状态和配置信息以及之间的关系;

  • 管理元信息的物理视图:包括 IDC,Pod,Rack,DataNode,Disk,Core 的分布和 Replica 的位置关系;

  • 多租户 QoS 总控,在异构机器的场景下根据各个租户与机器的负载进行副本 Balance 调度;

  • 故障检测,节点的生命管理,数据可靠性跟踪,在此基础上进行节点的下线和数据修复。

53ed91fde8aae30692f47d165ca5fd2b.png图 2: 集群物理视图

fa0797dbac0ba7564a7afc0a076d7946.png图 3: 集群逻辑视图

DataNode

DataNode 是数据存储节点。部署时,可以每台机器或者每块盘部署一个 DataNode,为方便隔离磁盘故障,线上实际采用每块盘部署一个 DataNode 的方式。

DataNode 的最

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值