On Sun, May 31, 2009 at 11:00 AM, Jay Pipes <[email protected]> wrote:
> Padraig O'Sullivan wrote:
>>
>> Hi Jay,
>>
>> I've started documenting the current I_S implementation and have a
>> rough outline of a project plan on the wiki page I created for my GSoC
>> project. If you could have a quick look at it sometime and let me know
>> if you see anything wrong with it or something that you would like
>> changed, that would be awesome:
>>
>> http://drizzle.org/wiki/GSOC_Information_Schema
>>
>> Now that I've spent some time looking at the current I_S
>> implementation, I'm starting to think a little more about how to move
>> forward and I'm looking for any input on that. In particular, if you
>> look at section 4.3 of the wiki page, you will see I have a little
>> text on some thoughts I have on an I_S design (very rough at the
>> moment). If you have any time to have a look at that and share your
>> opinion, that would be really helpful!
>
> Hi!  Sorry for the delay in getting back to you on this!

No worries!

>
> OK, here is my thought on the INFORMATION_SCHEMA "plugin".  I actually don't
> think the INFORMATION_SCHEMA should be a plugin at all, but rather expose a
> plugin interface for its storage mechanism.
>
> What the heck do I mean by this?
>
> Well, what I mean is that the INFORMATION_SCHEMA isn't something that
> changes -- the INFORMATION_SCHEMA interface is simply a standard method of
> retrieving system data via a SQL SELECT interface.
>
> There is, therefore, no need to have multiple implementations of the
> INFORMATION_SCHEMA interface.  There is, however, a need to swap out the
> storage backend of the INFORMATION_SCHEMA -- think: I_S stored in InnoDB,
> I_S stored in memcached, etc.
>
> For much of this, we already have a decent plugin API: the storage engine
> Handler interface.  What I think is a good next step is to provide a base
> I_S_Storage plugin which would allow developers to switch out the backend
> storage seamlessly, even using multiple backends simultaneously -- think:
> memcached backend for global variable counters, InnoDB backend for
> recovery/backup persistence, MEMORY storage engine backend for most all
> other I_S tables...

So you are effectively saying that where the metadata I_S operates on
is stored should be pluggable? I'm starting to get a little confused
now as I know that Stewart is working on pluggable metadata stores
right? How does his work fit in what you are outlining here?

>
> Don't worry too much about the stuff in show.cc right now.  Most of that
> should go away entirely once I_S behaves like a normal schema and follows
> the handler API properly...
>
> Thoughts?

Is the idea of using a system catalog i.e. base tables in a SYSTEM
database and defining views over those base tables to represent I_S
not worth considering here? I realise support for views is still
absent but I wanted to ask why we are not considering this approach.

The hardest part would be designing the system catalog and its
interfaces. Once we had a catalog in place, defining the I_S views on
top of it would be pretty straightforward.

>
> Jay
>
>

_______________________________________________
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