Skip to content

FlashSQL/MySQL-Data-Redistribution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 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 in btr_page_split_and_insert()

References

About

Data Redistribution on MySQL

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy