Innodb Defragmentation

New Features
4 April 1:50PM - 2:40PM @ Ballroom C

Experience level: 
50 minutes conference
Merge consecutive leaf pages together to release storage space. Unless the insertion pattern is sequential, an insertion to a full page will result in a page split producing two half full pages. Depending on the application, many times lots of the split pages never get more than 70% full. Furthermore, deletions sometime make pages less than 50% full and many times these nearly empty pages failed to merge with a sibling page. It is not rare to see the pages are on average only 60-70% utilized. This was not a huge problem on disk when storage is cheap. But with flash, wasting more than 30% storage space does not sound that cool. We are working on defragmenting the b-tree pages to release some space for reuse. The idea is to consider a number of consecutive pages and combine records into as few pages as possible so we can few some pages. We also need to find out what are the indices are more fragmented thus being a good target for defragmentation. This talk is about our current work on defragmentation.


Software Engineer, Facebook
Rongrong is currently a software engineer on MySQL Engineering team in Facebook. She has been working on MySQL for over two years now, mostly focusing on InnoDB. So far she has worked on statistics, defragmentation, logical read ahead, compression, and whatever comes up in production.