Hi!

On Mon, 26 Mar 2012 15:50:27 +0500, Kinaan Khan Sherwani 
<mr.sherw...@gmail.com> wrote:
> Hello,
> 
> I'm an undergraduate student currently in the 3rd year of my Computer
> Science degree at *FAST-National University of Computer and Emerging
> Sciences, Lahore, Pakistan.*  I am interested in* "table definition files
> in an innodb table" *idea under 'Stewart Smith' as a mentor.

Great to meet you!

> For the past few days , I have been studying the mysql innodb storage
> engine. I studied in mysql reference manual that MySQL server keeps data
> dictionary information in .frm files which it stores in the database
> directories, whereas InnoDB also stores the information into its own data
> dictionary inside the table space files. According to my knowledge , in
> case of drizzle, the problems occur when the innodb internal data
> dictionary goes out-of-sync with the table definition files ( same as in
> mysql ).

correct.

> The  GSoC idea is
> " To make DDL truly crash safe, we should instead store them inside a
> InnoDB table as part of the data dictionary transaction ".
> My question is that what is the basic purpose to store the information
> inside the data dictionary when it is already present there? Why don't we
> just remove the mechanism of using table definition ( .frm / .dfe ) files
> so that drizzle just checks the information in data dictionary.

There is more information in the table definition protobuf message than
just what ends up in the InnoDB data dictionary. This includes: table
and column comments, default values and even the exact data types of
each column (many user visible types can map to the one internal innodb
type).

> I have built the source of Drizzle in Linux. I am curious to know which
> debugging tool you guys would recommend to use on Linux to debug and study
> the source base of Drizzle.

GDB when needed, but if you want to track what storage engine calls
happen, check out the storage_engine_api_tester plugin test/result files
to see the traces of some simple queries.

> I intend to solve a bug and I am on it. After starting work on MySQL i was
> always interested to work on innodb engine and planned to do it in summers
> as I will be totally free. This GSoC project will give me chance to work on
> innodb which will also help me in learning MySQL/Drizzle and develop them
> further.
> 
> PS. I didn't look into the innodb source so it's just an educated guess
> based on my learning in previous days. I need an expert opinion on it.

You can have a look at how the replication code writes the replication
messages to an innodb table, and that will form a template for how to
write the table protobuf message.

For seeing an engine that implements storing the table definition in a
table, you can check out the 7.0 source (elliot) and the HailDB engine.

-- 
Stewart Smith

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : drizzle-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to