Great write up!

One thing I'd like to mention is optional runtime dependencies. In
most cases these are going to look like plugins (and a plugin may have
dependencies). There are a couple ways these could be handled, either
with multiple binary distributions, or through dynamic loading. The
former would be messy, as the combinations would start to add up
quickly (confusing people, including the package maintainers). Doing
dynamic loading though would allow us to stick to one binary, and
allow the server to load things as needed.

This leads to the argument of making drizzled a more flexible module
loader, and not just a fixed plugin type loader. What would also
be needed (or at least really useful) is the ability for drizzled
to perform dependency tracking between modules. This starts to
look a lot like a generic module loading system (think the Linux
kernel). Eventually we may want to work towards the drizzled binary
being just a simple module loader, and having all core components just
be modules (initially one big "runtime" module until it's broken out
with proper interface abstractions). This looks a bit different from
the traditional plugin interface, since *everything* is now a module.

This requires a bit of a mind shift in server design, but it is
certainly more flexible, allowing *anything* to be a plugin. It
also opens then door for things like dynamic code upgrades by making
the the module loader keep a void * for each module between reloads
(assuming struct sizes don't change or are upgradeable).

I know this opens a much larger can of worms, but thought I'd throw it
out there because it solves the issue of optional runtime dependencies
as well.

-Eric


On Tue, Mar 10, 2009 at 01:15:08PM -0700, Monty Taylor wrote:
> Hey all,
> 
> I've written a draft of a blueprint outlining what criteria are used
> when adding potential dependencies.
> 
> http://blueprints.launchpad.net/drizzle/+spec/dependency-inclusion
> 
> Which references the real document:
> 
> http://drizzle.org/wiki/Dependency_inclusion
> 
> Monty
> 
> _______________________________________________
> 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