KodeKabuki

Welcome, my name is Harish Mallipeddi. I work for Amazon Web Services (AWS). This blog is mostly a dump of interesting articles that I come across on the web. Topics span across multiple areas including algorithms/datastructures, NoSQL stores, database internals, web-scale challenges, and functional languages.

November 16, 2010 at 3:36pm

Home

MySQL TechTalk @ Facebook

Watch live streaming video from facebookevents at livestream.com

I found this recording of a talk that Facebook hosted recently. Their MySQL team presents a bunch of interesting projects they’ve worked on at Facebook. I’ve been doing a lot of MySQL-related projects at work as well.

There’s an interesting section where one of the engineers mentions about his ‘non-stored procedures’ as he calls it - he reveals their entire relationship graph is actually stored pretty much in MySQL tables but just heavily sharded and they seem to have gotten it to work well. It looks like majority of their data lives in MySQL - Cassandra usage is pretty minimal.

What happens when replication delay becomes very high across a WAN link? After it crosses a certain threshold, they actually start forwarding DB requests to the datacenter which has the master DB until replication catches up. They also mentioned they’re working on Master-Master replication with conflict detection, so they can have masters in multiple datacenters.

Flashcache hasn’t been put into production yet - still experimental.

MySQL tools:

Facebook seems to be using Percona’s XtraDB and that makes binary backups easy. We opted to use LVM snapshots on a slave at work.

  • Percona’s maatkit - useful set of command-line utils
  • Percona’s aspersa - set of Perl scripts for debugging MySQL; ioprofiler is useful
  • innotop
  • qpress - QuickLZ compression for transferring MySQL dumps; supposedly faster than LZO also.