Skip to content

FlashSQL/MySQL-Data-Redistribution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MySQL Data Redistribution

Motivation

While B-Tree is a ubiquitous index structure used in managing data, it is well known for its low space utilization in nodes. Such space under-utilization is detrimental to flash storage in terms of cost and performance. In particular, the logical space waste in B-tree will amplify physical writes inside flash storage, worsening the transaction throughput.

Contribution

Our evaluation results from running OLTP benchmarks using the optimized MySQL/InnoDB prototype clearly show that those optimizations improve transaction throughput (i.e., more than 50%) with less space and cost (i.e., less than 40%) in flash storage.

Experiment Result

  • TPCC-Result image

  • Index Space Utilization

image

Prerequisites & Installation Guide

  1. Install prerequisites of mysql-5.6.26. Follow the instructions in the site.
  2. Clone this repository.
$ git clone https://github.com/FlashSQL/MySQL-Data-Redistribution.git
  1. Run mysqld server to run MySQL.

Modified files compared to Vanilla MySQL

  • storage/innobase/btr/btr0btr.cc
  • storage/innobase/fil/fil0fil.cc
  • storage/innobase/srv/srv0srv.cc
  • storage/innobase/include/btr0btr.h
  • storage/innobase/include/srv0srv.h
  • storage/innobase/include/fil0fil.h

Implementation Details about Data Redistritbution

  • added a new function: btr_page_redistribute_before_split()
  • returns the inserted record
  • called during btr_page_split_and_insert()

References

About

Data Redistribution on MySQL

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •