MyRocks Deep Dive: Flash Optimized LSM Database for MySQL, and its Use Case at Facebook
At Facebook, we have worked on creating a new, flash-optimized transactional storage engine called MyRocks -- RocksDB storage engine for MySQL. InnoDB is great general purpose database and in many cases it fits the best. But there were cases where we wanted more space and write optimized database -- more efficient database on Flash. There were some write optimized databases outside of MySQL ecosystem, but we wanted to utilize existing MySQL assets like Replication, client programs and related tools. To fill the gap, we started developing a new storage engine on top of RocksDB (http://rocksdb.org/) -- MyRocks: RocksDB Storage Engine for MySQL (https://github.com/facebook/mysql-5.6). MyRocks supports lots of useful features like below. - Reverse order index so that descending scan can be a lot faster - Crash safe slave and master - Maitaining optimizer statistics without index dive - Built-in online backup tool - PostgreSQL-style transaction isolation support (Read Committed and Repeatable Read) - Efficient lookup and prefix seek with bloom filter MyRocks is a fully open source database. Supplemental tools, such as online backup tool, are also open sourced. We started using MyRocks on some of our production environment at Facebook. In this 3-hour tutorial, the speaker will give MyRocks and RocksDB deep dive talk. The following topics will be covered. - What is RocksDB - Differences between B+Tree and LSM - MyRocks advantages over InnoDB - MyRocks limitations - Installing MyRocks on Linux machine - Schema design and column families - Configurations - Performance tuning - Backup and recovery - Use cases at Facebook Minimum technical requirement for attendees is basic understanding of InnoDB and MySQL Replication.
Database Engineer, Facebook
Yoshinori is a database engineer at Facebook. Before joining Facebook, Yoshinori was a database and infrastructure architect at DeNA, living in Tokyo. Yoshinori's primary responsibility at DeNA is to make our database infrastructure more reliable, faster and more scalable. Before joining DeNA, Yoshinori worked at MySQL/Sun/Oracle as a lead consultant in APAC for four years. Yoshinori has written eight MySQL related technical books so far and has published technical articles about MySQL, Linux, and Java for a monthly database magazine since 2004.