分布式数据库切片布局自动化管理工具Akkio概述.pdf
为天地立心,为生民立命,为往圣继绝学,为万世开太平。——张载
分布式数据库切片布局自动化管理工具
-Akkio
1.背景介绍
偶尔读到OSDI一篇关于Akkio的文章,了解到这个工具的具体作用和它如何
在脸书粉末登场并发挥着巨大的作用,并匡助解决了脸书多数据中心架构下
的数据局部热点问题,并且匡助脸书降低了50%的用户访问延迟,减少了50%
的跨数据中心流量,降低了40%的存储空间等。既然这个工具有如此之巨大历
史贡献,本人怀着浓厚的兴趣翻阅了相关的资料,记录了一些笔记,现在我想
将其整理出来分享给大家。
2.Akkio是什么
Akkio本身是一个介于分布式数据库和应用客户端之间的组件,它是用来匡助
分布式数据库实现何时、何处、如何迁移数据并且最终匡助数据库实现用户访
问低延迟的工具。关于它的细节认识,我们将从以下几个部份来展开说明。
为天地立心,为生民立命,为往圣继绝学,为万世开太平。——张载
2.1AkkioFacebook
2022年,Akkio开始在Facebook的生产环境启用,主要应用于ZippyDB,
Cassandra以及其他三种分布式数据库系统,管理着100PB数量级的数据。那
末为什么Facebook会在2022年的时候选择了这个工具呢,是什么样的背景呢?
首先,Facebook是以分布式数据库为其基本的数据存储架构,数据库是以切片
的形式存在于世界各个不同数据中心内。Facebook有不少分量级的数据访问是
以较高的更新比例(60%写比例)为基础的,这样的话就会造成它的多个数据
中心之间进行数据复制,从而消耗大量的带宽和存储资源,同时大量的跨数据
中心的数据访问成为必然,最终导致用户访问的延迟。
显然,对于这个问题采取更多副本的策略固然可以降低用户访问延迟的问题,
但是带来更大的问题就是跨数据中心流量的暴增和存储空间的暴增。因此,
Facebook急需要一种工具可以根据数据访问的热点程度来选择什么样的数据迁
移到哪一个数据中心更适合大量热点用户的访问。
于是,Facebook选择了Akkio,那末接下来我们看看Akkio在服役期间的表现
如何?
从数据库服务指标上来看,读的延迟降低到原来的50%,写的延迟降低到原来
的50%以下,跨数据中心的横向数据复制流量减少到原来的50%以下,用来存
全量副本的存储空间减少到原来的40%。从扩展性角度来看,Facebook业务
系统整体的处理能力具备了十亿级用户并发处理能力,每秒处理能力达到数千
万。
2.2Akkio的历史使命及适合的场景
为天地立心,为生民立命,为往圣继绝学,为万世开太平。——张载
从Akkio在Facebook服役的过程,我们基本可以看到Akkio的贡献,也就明白
了它的历史使命。
其实,除了Facebook这样的业务场景需要它,还有不少场景也需要它,总结来
看我们可以认为有以下几个场景非常适合Akkio的功能展示(前提是适合分布
式数据库的场景基础之上)。
1.云数据中心架构下的运营成本。减少数据副本数、存储空间和跨数据中
心的横向数据通讯;
2.数据局部热点频繁变化的场景。访问请求会不断发生变换,每一个用户
访问的数据也会不断变化;
3.数据库读写