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

