List:Internals« Previous MessageNext Message »
From:Brian Aker Date:May 12 2009 6:38pm
Subject:Re: MySQL Reengineering Project
View as plain text  
Hi!

On May 12, 2009, at 11:14 AM, Sergei Golubchik wrote:

>  - init() function. Brian added that to pass handlerton down.
>    it is ignored by any clean plugin API and should've been done
>    differently for storage engines and I_S tables.

You should take a look at what Drizzle does as an example:

static int compressionudf_plugin_init(PluginRegistry &registry)
{
   registry.add(&compressudf);
   registry.add(&uncompressudf);
   registry.add(&uncompressed_lengthudf);
   return 0;
}

If I remember correctly the void * was used because before the  
solution you had devised required that every time we updated a  
structure we had to update every single plugin (and the original  
pointer change was done by Tomas Ulin, not myself).


>  - MYSQL_THD is defined as void*, which is fine as it's an opaque
>    pointer, plugins are never expected to look inside to cast it to
>    anything.

write_row() in the handler is another example of exposing vs  
encapsulation (which is fine... if you want to go with C over C++).

>> Without doing this, and using encapsulation so that a THD can have  
>> multiple
>> Statements, it will be very difficult to work on any future  
>> parallelization
>> efforts.
>
> You mean, a Statement can have multiple THDs, I suppose :)


No he means what he is saying. I don't know why you would want a  
statement shared across multiple THD, but having a THD be able to  
handle multiple statements means that you can do asynchronous queries  
within a single connection.

Cheers,
	-Brian
Thread
MySQL Reengineering ProjectManyi Lu - Sun Norway12 May
  • Re: MySQL Reengineering ProjectJay Pipes12 May
  • Re: MySQL Reengineering ProjectMARK CALLAGHAN12 May
    • Re: MySQL Reengineering ProjectMats Kindahl12 May
      • Re: MySQL Reengineering ProjectManyi Lu - Sun Norway12 May
        • Re: MySQL Reengineering ProjectMats Kindahl12 May
    • Re: MySQL Reengineering ProjectStewart Smith13 May
  • Re: MySQL Reengineering ProjectMikiya Okuno18 May
    • Re: MySQL Reengineering ProjectSergei Golubchik18 May
      • Re: MySQL Reengineering ProjectRoy Lyseng18 May
Re: MySQL Reengineering ProjectAlaric Snell-Pym12 May
  • Re: MySQL Reengineering ProjectMats Kindahl12 May
    • Re: MySQL Reengineering ProjectJay Pipes12 May
      • Re: MySQL Reengineering ProjectJay Pipes12 May
        • Re: MySQL Reengineering ProjectAlex Esterkin12 May
          • Re: MySQL Reengineering ProjectBrian Aker12 May
      • Re: MySQL Reengineering ProjectSergei Golubchik12 May
        • Re: MySQL Reengineering ProjectBrian Aker12 May
          • Re: MySQL Reengineering ProjectSergei Golubchik12 May
            • Re: MySQL Reengineering ProjectAlex Esterkin12 May
              • Re: MySQL Reengineering ProjectBrian Aker12 May
            • Re: MySQL Reengineering ProjectJay Pipes12 May
              • Re: MySQL Reengineering ProjectDavi Arnaut13 May
              • Re: MySQL Reengineering ProjectAlex Esterkin13 May
                • Re: MySQL Reengineering ProjectJay Pipes13 May
            • Re: MySQL Reengineering ProjectMichael Widenius14 May
          • Re: MySQL Reengineering ProjectJonas Oreland13 May
        • Re: MySQL Reengineering ProjectRoy Lyseng12 May
      • Re: MySQL Reengineering ProjectMats Kindahl12 May
    • Re: MySQL Reengineering ProjectAlaric Snell-Pym12 May
      • Re: MySQL Reengineering ProjectMats Kindahl12 May
      • Re: MySQL Reengineering ProjectMichael Widenius14 May
        • Re: MySQL Reengineering ProjectAlaric Snell-Pym15 May
          • Re: MySQL Reengineering ProjectKristian Nielsen15 May
            • Re: MySQL Reengineering ProjectBrian Aker15 May
            • Re: MySQL Reengineering ProjectAlaric Snell-Pym15 May
          • Re: MySQL Reengineering ProjectMichael Widenius6 Jun
Re: MySQL Reengineering ProjectMats Kindahl12 May
Re: MySQL Reengineering ProjectAlex Esterkin12 May
  • Re: MySQL Reengineering ProjectMasood Mortazavi13 May
    • Re: MySQL Reengineering ProjectBrian Aker13 May
    • Re: MySQL Reengineering ProjectAlex Esterkin13 May
      • Re: MySQL Reengineering ProjectBaron Schwartz13 May
        • Re: MySQL Reengineering ProjectStewart Smith13 May
          • Re: MySQL Reengineering ProjectBaron Schwartz13 May
    • Re: MySQL Reengineering ProjectAlex Esterkin13 May
    • Re: MySQL Reengineering ProjectStewart Smith13 May
  • Re: MySQL Reengineering ProjectMichael Widenius14 May