LSM-Tree Database Storage Engine Serving Facebook's Social Graph
Maybe your like
MyRocks: LSM-Tree Database Storage Engine Serving Facebook's Social Graph
International Conference on Very Large Databases (VLDB)
Abstract
Facebook uses MySQL to manage tens of petabytes of data in its main database named the User Database (UDB). UDB serves social activities such as likes, comments, and shares. In the past, Facebook used InnoDB, a B+Tree based storage engine as the backend. The challenge was to find an index structure using less space and write amplification [1]. LSM-tree [2] has the potential to greatly improve these two bottlenecks. RocksDB, an LSM tree-based key/value store was already widely used in variety of applications but had a very low-level key-value interface. To overcome these limitations, MyRocks, a new MySQL storage engine, was built on top of RocksDB by adding relational capabilities. With MyRocks, using the RocksDB API, significant efficiency gains were achieved while still benefiting from all the MySQL features and tools. The transition was mostly transparent to client applications.
Facebook completed the UDB migration from InnoDB to MyRocks in 2017. Since then, ongoing improvements in production operations, and additional enhancements to MySQL, MyRocks, and RocksDB, provided even greater efficiency wins. MyRocks also reduced the instance size by 62.3% for UDB data sets and performed fewer I/O operations than InnoDB. Finally, MyRocks consumed less CPU time for serving the same production traffic workload. These gains enabled us to reduce the number of database servers in UDB to less than half, saving significant resources. In this paper, we describe our journey to build and run an OLTP LSMtree SQL database at scale. We also discuss the features we implemented to keep pace with UDB workloads, what made migrations easier, and what operational and software development challenges we faced during the two years of running MyRocks in production.
Among the new features we introduced in RocksDB were transactional support, bulk loading, and prefix bloom filters, all are available for the benefit of all RocksDB users.
Download PaperCopy PDF URLBy: Yoshinori Matsunobu, Siying Dong, Herman LeeAugust 31, 2020AreasDatabases, Systems & Infrastructure Share- Copy URL
- Share on Twitter
- Share on Facebook
Featured Publications
All PublicationsA Method for Animating Children’s Drawings of the Human Figure
Harrison Jesse Smith, Qingyuan Zheng, Yifei Li, Somya Jain, Jessica K. Hodgins
Simulation and Retargeting of Complex Multi-Character Interactions
Yunbo Zhang, Deepak Gopinath, Yuting Ye, Jessica Hodgins, Greg Turk, Jungdam Won
Reasoning over Public and Private Data in Retrieval-Based Systems
Simran Arora, Patrick Lewis, Angela Fan, Jacob Kahn, Christopher Ré
All PublicationsTag » What Database Does Facebook Use
-
A Thorough Insight Into The Databases Used @Facebook
-
What Database Does Facebook Use 2019? - GangBoard
-
What Do Big Websites Like Facebook, Google, Twitter, And ... - Quora
-
MyRocks: A Space- And Write-optimized MySQL Database
-
Why Amazon, Google, Netflix And Facebook Switched To NoSQL?
-
The Facebook Data Center FAQ. (Page 2)
-
Facebook's User DB — Is It SQL Or NoSQL? - Yugabyte
-
What Database Actually FACEBOOK Uses? - Techworm
-
What Do Big Websites Like Facebook, Google, Twitter, And LinkedIn ...
-
Which Database Is Used In Facebook?
-
What Database Engine Does Facebook Use?
-
What Database Does Facebook Messenger Use?
-
Databases | Meta Research - Facebook
-
Is Facebook Replacing Its MySQL Database With Something More ...