Refactoring MySQL
Contents |
[edit] MySQL Refactoring Project
The refactoring project is aimed at improving the modularity of the code base, reduce the number of bugs introduced with new features, and provide a pluggable architecture that makes it easier for third parties and ourselves to implement plugins. This project officially started in Jan 2009, and it will be an on-going effort.
- Modularity Modularize the server code piece by piece, moving functionality out from the server code by creating and using well defined interfaces and protocols. The goal for the modularization is to only leave the central server kernel (typically the parser, the analyzer, the optimizer, and the executer) as server code.
- Maintainability Reduce the complexity of the code, introduce unit test of each module and enforce standard coding style throughout the server. In addition, standard libraries will be used to reduce the amount of effort required to maintain solutions for standard tasks.
- Pluggability Provide an infrastructure that allows third parties and ourselves to build plugins for MySQL.
[edit] Roadmap
A high-level Roadmap for 2009 and 2010 covering key tasks on our plan. Our working approach is defined here.
[edit] Worklogs in progress
- WL#3859 Plug-in Service API
- WL#4102 Plug-in service registry
- WL#4739 Physical structure of the server
- WL#4877 Fix server header files
- WL#4875 Server Build Frame
- WL#4803 Make Query Cache a module
- WL#4760 Introduce Value Object
- WL#4772 Organize parser data for DML statements
- WL#4777 Persistent system tables to store basic statistics, subtask of WL#4774
- WL#4738 streamline/simplify @@variable creation process
[edit] Completed worklogs
- WL#4903 Plug-in Service API: part 1 pushed to Azalea branch
Completed worklogs get pushed into the trunk continuously.
[edit] Latest news
- Follow the discussion on physical structure of the server.
- Check out the reengineering roadmap.
[edit] Forum and Mailing list
We value community feedback and participation. The refactoring project is discussed on the Internals Mailing List.