Categories
程式開發

字节跳动表格存储中的事务


本文选自“字节跳动基础架构实践”系列文章。
“字节跳动基础架构实践”系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容,和大家分享团队在基础架构发展和演进过程中的实践经验与教训,与各位技术同学一起交流成长。
在字节跳动,随着搜索、推荐、广告等业务的启动和发展,在数据上有了跨分区数据一致性的需求。于是我们调研、设计并实现了第一代基于表格系统的分布式事务。本文详细介绍了该表格事务系统的关键设计以及一些至关重要的原创性优化,希望能分享给大家一些分布式事务设计的思路。

1. 背景

分布式表格存储系统在业界拥有广泛的应用场景。Google 先后发布了 Bigtable 和 Spanner 两代分布式表格存储系统,承接了其公司内部和外部云服务中的所有表格存储需求,其中 Bigtable 的开源实现 HBase 在国内外公司中都得到了广泛的使用。

在字节跳动,随着头条全网搜索项目等业务的启动和发展,业务需要一个全局有序、容量巨大同时性能高效的表格存储系统以存储整个互联网中所有链接和网页,并保证互联网上发生的所有变更都被能实时的更新到表格存储系统中。我们团队最初使用 HBase 提供服务,比如搜索场景在全网链接关系的实时更新需求下需要提供足够高的可用性和足够低的延时,由于其数据量极其庞大所以会创建极多的数据分片,集群的整体尾延时和可用性会随着数据分片实例数的增多而造成指数级别的恶化,因此对每一个分片实例的延时和可用性提出了更高的要求。但由于 HBase 存在尾延时较高和可用性较低的问题,并不能满足我们的需求,于是我们团队自研了第一代基于 Bigtable 数据模型的分布式表格存储系统 Bytable

原文链接:【https://www.infoq.cn/article/MWVNr8mw4M4KPHL2gTc8】。未经作者许可,禁止转载。