在Uber的分布式数据存储中把MySQL迁移到MyRocks
Uber uses MySQL as the underlying database engine for Schemaless and Docstore, our distributed databases. By default, MySQL uses the most popular InnoDB engine, a B+Tree structure for data storage. MyRocks is a MySQL storage engine that integrates with RocksDB, an open source project. The RocksDB store is based on the log-structured merge-tree (or LSM tree) and is optimized for fast storage and combines outstanding space and write efficiency with acceptable read performance.
Uber使用MySQL作为底层数据库引擎,用于我们的分布式数据库Schemaless和Docstore。默认情况下,MySQL使用最流行的InnoDB引擎,一个B+Tree结构的数据存储。MyRocks是一个MySQL存储引擎,与RocksDB(一个开源项目)集成。RocksDB存储是基于日志结构的合并树(或LSM树),并针对快速存储进行了优化,将出色的空间和写入效率与可接受的读取性能相结合。
The Uber Storage Platform team has migrated all Schemaless instances and some Docstore instances to MyRocks since 2019. In this post, we are going to talk about the journey of our migration to MyRocks.
Uber存储平台团队自2019年起将所有Schemaless实例和部分Docstore实例迁移至MyRocks。在这篇文章中,我们将谈谈我们迁移到MyRocks的历程。
Motivation
激励
Schemaless/Docstore are serving business-critical use cases across multiple lines of business and platforms e.g. rides, eats, grocery, maps, money movement etc. Both store tens of petabytes of data and serve tens of millions of requests/second. With the growth of Uber’s business, these numbers are only getting larger and the disk space has become the bottleneck: some nodes alone contain more than several terabytes, which makes it harder for some day to day operational tasks, such as data resync and backup.
Schemaless/Docstore正在为多个业务线和平台的关键用例提供服务,例如乘车、吃饭、杂货、地图、资金流动等。两者都存储了几十PB的数据,并为数千万的请求/秒提供服务。随着Uber业务的增长,这些数字只会越来越大,而磁盘空间已经成为瓶颈:仅一些节点就包含了超过几TB的数据,这使得一些日常的运营任务,如数据重新同步和备份变得更加困难。
Disk usage was becoming the bottleneck resource and causing CPU and memory resources to be underutilized. This was leading to overall higher total cost of ownership (TCO) for running Schemaless. It was thus critical for us to address this issue and bend the cost curve.
磁盘的使用正成为瓶颈资源,导致CPU和内存资源利用不足。这导致了运行Schemaless的总体拥有成本(TCO)的提高。因此,对我们来说,解决这个问题并弯曲成本曲线是至关重要的。
Challenges
挑战
One way ...