GSoC/GCI Archive
Google Summer of Code 2009

MySQL

Web Page: http://forge.mysql.com/wiki/SummerOfCode2009Ideas

Mailing List: soc@lists.mysql.com

MySQL develops and markets a family of high performance, affordable database servers and tools. Our mission is to make superior data management available and affordable for all. We contribute to building the mission-critical, high-volume systems and products worldwide. MySQL is a key part of AMP, which is a fast growing open source enterprise software stack. MySQL is used in a lot of Web 2.0 related companies, including Google!

Projects

  • Application to participating in Mysql projects I've been desiring contribution to open source projects for a long time. Only because I have to concentrate on my academic business for the first three years in my university and can not spare enough time on open source projects, I did not pay much attention to them before. I've adopted MySQL as the DBMS in some of my projects and am strongly willing to make MySQL better in future. So I'll appreciate granting me the chance to participate in GSoC on MySQL projects. I am very interested in the following ideas: 1. A Rewrite of the Pool of Threads Scheduler (which interests me the most) 2. Implement memcache support for mod_ndb 3. MySQL Sandbox. 4. MySQL Server parallel filesort
  • Change Tracking of Data and Structure This proposal is to work on adding the "Change Tracking" functionality for PHPMyAdmin.The functionality would help the developer of the phpMyAdmin to migrate changes from one place to another by just pressing the synchronization button.The changes being done in a table could be adding/removing/ updating tuples,creating/dropping tables, changing schema and maintaining table evolution from state A to B.
  • Drizzle Code Cleanup and C++ Standardization Re-factoring is a significant focus of Drizzle at the moment. The developers have already identified 7 custom containers that can be replaced. My proposal is to take one, the various list implementations, and replace all occurrences with std::list or whichever container best suits the usage scenario. This alone was deemed to be a summers worth of work by the potential mentors. If the task is finished ahead of schedule, at least 6 other containers can be re-factored as well.
  • Drizzle Ideas----Batch Nested Loop Join I wanna participate this project and help to develop this Join algorithm with my multi-thread coding experience.(use my multi-thread scheduling interface, a new parallel model, if possible)
  • MySQL Replication support for phpMyAdmin Easy administration is one of the crucial feature for better usage of every software. PhpMyAdmin provides an easy way of controlling MySQL through web interface. However, it lacks one of the advanced features provided by MySQL; support for controlling and setting up replication. Backup of data and high availability become more important in these days. This gives me the motivation to design and implement these features into phpMyAdmin in simple and easy-to-use way.
  • MySQL: WL#681 per query variable settings query Create a new command named such as MYSQL_SET_VARIABLE to allow temporary modification to a session variable to be adjusted in the SQL query itself. This will eliminate the need for multiple other steps that would be required otherwise. The command after execution will return the session settings back to the specified settings.
  • New Implementation of INFORMATION_SCHEMA This project will involve the re-implementation of INFORMATION_SCHEMA. The current information schema implementation experiences performance problems due to its design and implementation. For instance, there is extra overhead during execution due to the fact that the current implementation uses SQL derived tables internally. This new implementation of information schema is desired by the Drizzle community as it is needed so that the developers can standardize on a handler interface easily. Performance problems caused by the current information schema will also be alleviated by this new implementation. Also, I see this project as something which is a perfect fit for a project with a 3-month time-frame.
  • phpMyAdmin Import Improvements phpMyAdmin can export databases into far more formats than it can import. First, I will extend the import framework to allow for multiple table creation, column type and title detection, as well as other functions conducive to making the framework powerful and generalized enough to handle a wide array of formats. I will then create parser modules for several formats which will utilize these additions. These changes would substantially enhance the convenience of phpMyAdmin for a great many users.
  • SQL optimizer for mod_ndb In an effort to create a SQL optimizer for mod_ndb, I will work on Issue #46 and then #45.
  • Tracking mechanism for phpMyAdmin phpMyAdmin is a very popular web-based MySQL administration tool. With my mentor I want to develop a package of functionalities for tracking modifications on MySQL (meta) data made by users. This new feature would be very useful for various purposes. Typical use cases: 1) Developer changes testing database, pushes changes to production environment later. 2) Developer wants to roll back changes on database. 3) Administrator wants to be notified about changes in database.
  • WL#4034 - INFORMATION_SCHEMA storage engine Storage engine goals: 1.Storage approach. When MySQL server startups, read data from disk to memory until server closes. When MySQL closes, write the new data back to disk. During server is running, the data are kept in memory, which can use HEAP storage engine's experience; 2.Privileges manager. Each user can see only the rows in the tables that users has the proper access privileges; 3.The concurrent control. For during the server is running, databases' metadata will change concurrently.