On Tue, Mar 16, 2010 at 12:16 PM, Rehan Iftikhar
<[email protected]> wrote:
> Tom
>
> Thanks for the great summary! I found the MySQL Differences page on the
> Drizzle wiki and I was pleasantly surprised how technical and thorough it
> is. It should serve as a suitable bridge between Sasha Pachev's book and the
> current (future) state of Drizzle.

Indeed, Tom, that was an excellent summary!  Thanks!

Rehan, if you have questions, feel free to join us on Freenode IRC
#drizzle.  We're always available for questions :)

Cheers!

Jay

> I will try and keep a log (wiki?) of notes while reading Sasha's book and
> groking the MySQL/Drizzle source and post the link on the Drizzle Wiki.
>
> On Mon, Mar 15, 2010 at 10:25 PM, Tom Hanlon <[email protected]>
> wrote:
>>
>> Rehan,
>>
>> On 16 Mar 2010, at 00:15, Rehan Iftikhar wrote:
>>
>>> Hi
>>>
>>> I was wondering how relevant the content in Understanding MySQL Internals
>>> (http://www.amazon.com/Understanding-MySQL-Internals-Sasha-Pachev/dp/0596009577)
>>> is to drizzle?
>>>
>>
>>
>> Sasha Pachev's book on mySQL internals would be significantly more
>> relevant to Drizzle than a book on Oracle internals.
>>
>> The Core Drizzzle team are likely going to clam that the two are very
>> different, but they have spent the last year making it different, and
>> working on the differences. So the similarities might be somewhat invisible
>> to them. So I will take a shot at an overview and they can correct me as
>> needed.
>>
>> I would say that  until the Drizzle internals book is written that book
>>  would be the closest. I think most would agree that the differences are
>> significant, but still the core of drizzle is a derived work from MySQL. In
>> addition the storage engine concept and compatibility with the major MySQL
>> storage engines such as innodb is in drizzle as well.
>>
>> I can not find my copy of Sasha Pachev's book or I would go through it and
>> tell you how well it covers the concepts that are similar.
>>
>> The Drizzle team can add some details but as far as I can tell here are
>> some things that are different and some things that are the same.
>>
>> Authentication:
>>        Drizzle is  plugin based PAM and http_auth and others.
>>        MySQL built in authentication of user,host, password at the DB,
>> table and column level. Stored in a database table
>>
>> Thread management:
>>        I assume that this is similar. MySQL until very recently had a
>> single multi threaded process. A thread was allocated per connection. That
>> thread might be cached when the user disconnected and re-used for an
>> incoming connection. In recent versions a "pool of threads" optimization has
>> been added where a pool of threads is allocated for user connections and
>> those threads are used as needed. I am not sure what code base drizzle
>> started with and how stable pool of threads was anyhow, so what drizzle
>> uses.. I do not know.
>>
>> Parser:
>>        I have not heard much chatter about the drizzle parser so I assume
>> it is derived from the MySQL parser. I imagine MySQL dual license model
>> caused the MySQL parser to not reuse some open source parser libraries so
>> perhaps the code has been cleaned up.. but I am only guessing.
>>
>> Optimizer:
>>        I have not heard much chatter here either, so I assume that the
>> optimizer is derived from the MySQL optimizer as well. The drizzle team can
>> correct me if I am wrong.
>>
>> Replication:
>>        MySQL relied upon what had been a statement based binary log.
>> Meaning that if a statement might have changed data, it was written to a log
>> file at the SQL layer and the slave would replay the statements. Features
>> were added in MySQL 5.1 to instead of logging the statements that may have
>> changed or added rows we instead ask the storage engine for copies of the
>> changes and place those in a "row" based replication log the binary log.
>> Statement based was still supported and it was/is messy. Statement based had
>> some issues, but row based added some issues and some confusion and some
>> bugs.
>>        Drizzle, tore all of that out and implemented replication
>> capability based upon google protocol buffers.
>> http://code.google.com/apis/protocolbuffers/docs/overview.html Jay covers
>> the internals fairly well in a series of blog posts
>> here..http://www.joinfu.com/2009/10/drizzle-replication-changes-in-api-to-support-group-commit/
>>
>>        It is fair to say that there are significant differences between
>> the two systems regarding replication.
>>
>> Transaction stuff:
>>        mySQL at the core was not a transactional database, it was made to
>> work somehow with transactional storage engines. I sometimes would think of
>> the MySQL server or the SQL layer as coordinating a group transaction to the
>> underlying storage engines. The relationship was complicated, and it
>> complicated replication somewhat in ways that are a little complicated to go
>> into, but in a purely transactional system the same log and system that is
>> used for transactional consistency and durability can typical be used to
>> assist the replication process. I am not sure what Drizzles statement of
>> intent regarding transactions is. But it is important to note that the MySQL
>> way.. led to a somewhat messy implementation and it seems that Drizzle is
>> hard at work even lately in terms of cleaning that up.
>>
>>        It seems that any Database that allows plugins for Storage engines
>> is going to have to hand off the Durability Requirements to the storage
>> engines so in a rough outline things are somewhat similar, but the
>> differences will be many.
>>
>> I could picture Drizzle be more transactional and still allowing the
>> storage engines to ignore the transactional stuff. Whereas MySQL was not
>> transaction and forced the storage engines to do extra work in order to be
>> transactional.
>>
>> If you are looking for an understanding of the Relational Model and how
>> SQL is optimized and how Joins are performed, I found Dan Tow's book SQL
>> tuning http://www.amazon.com/SQL-Tuning-Dan-Tow/dp/0596005733 to be helpful.
>> It goes through the concepts of indexes and joins really well.
>>
>> If I find my copy of Sasha Paschev's book I can give you a better review.
>>
>>
>>
>> --
>> Tom  Hanlon
>>
>>
>>
>>
>>
>>
>>
>>
>>> --
>>> -Rehan
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~drizzle-discuss
>>> Post to     : [email protected]
>>> Unsubscribe : https://launchpad.net/~drizzle-discuss
>>> More help   : https://help.launchpad.net/ListHelp
>>
>
>
>
> --
> -Rehan
>
> _______________________________________________
> Mailing list: https://launchpad.net/~drizzle-discuss
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~drizzle-discuss
> More help   : https://help.launchpad.net/ListHelp
>
>

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to