Category Archives: facebook

replication prefetching revisited

Been a while since I wrote about replication work we did. Fake changes based approach was huge success, and now our prefetching has lots of coverage, where standard SELECTs cannot reach. We’re running our systems at replication pressure, where not … Continue reading

Posted in facebook, mysql

On InnoDB compression in production

Our latest changes have been pushed to public mysql@facebook branch, allowing this post to happen \o/ Recently we started rolling out InnoDB compression to our main database tier, and that has been a huge undertaking for multiple teams and a … Continue reading

Posted in facebook, mysql | Tagged , | 1 Comment

on MySQL replication prefetching

For the impatient ones, or ones that prefer code to narrative, go here. This is long overdue anyway, and Yoshinori already beat me, hehe… Our database environment is quite busy – there’re millions of row changes a second, millions of … Continue reading

Posted in facebook, mysql | Tagged , | 4 Comments

On connections

MySQL is needlessly slow at accepting new connections. People usually work around that by having various sorts of connection pools, but there’s always a scale at which connection pools are not feasible. Sometimes connection avalanches come unexpected, and even if … Continue reading

Posted in facebook, mysql | Tagged , , | 16 Comments

Stonebraker trapped in Stonebraker 'fate worse than death'

Oh well, I know I shouldn’t poke directly at people, but they deserve that sometimes (at least in my very personal opinion). Heck, I even gave 12h window for this not to be hot-headed opinion. Those who followed MySQL at … Continue reading

Posted in facebook, mysql | Tagged , , , , | 30 Comments

InnoDB locking makes me sad

Vadim and others have pointed at the index->lock problems before, but I think they didn’t good job enough at pointing out how bad it can get (the actual problematic was hidden somewhere as some odd edge case). What ‘index lock’ … Continue reading

Posted in facebook, mysql | Tagged , , , | 19 Comments

MySQL metrics for read workloads

There are multiple metrics that are really useful for read workload analysis, that should all be tracked and looked at in performance-critical environments. The most commonly used is of course Questions (or ‘Queries’, ‘COM_Select’) – this is probably primary finger-pointing … Continue reading

Posted in facebook, mysql | Tagged , , , ,

On database write workload profiling

I always have difficulties with complex analysis schemes, so fall back to something that is somewhat easier. Or much easier. Here I will explain the super-powerful method of database write workload analysis. Doing any analysis on master servers is already … Continue reading

Posted in facebook, mysql | Tagged , , | 5 Comments

A case for FORCE INDEX

I remember various discussions in different mediums where people were building cases against use of FORCE INDEX in SQL queries. I’ll hereby suggest it using way more often, but at first I’ll start with small explanation. For ages, the concept … Continue reading

Posted in facebook, mysql | Tagged , , , | 7 Comments

Logs memory pressure

Warning, this may be kernel version specific, albeit this kernel is used by many database systems Lately I’ve been working on getting more memory used by InnoDB buffer pool – besides obvious things like InnoDB memory tax there were seemingly … Continue reading

Posted in facebook, mysql | Tagged , , , | 4 Comments