On Sun, Jan 22, 2012 at 8:52 PM, Daniel Nichter <[email protected]> wrote: > Henrik, > > Thanks for the clarification. I updated > https://blueprints.launchpad.net/drizzle/+spec/plugin-standards accordingly > and did some research. These plugin require a config, but it's a config > that's simple enough to have a default that should Just Work: > > ###################### > ### Default Config ### > ###################### > > auth_all > auth_file > auth_schema > drizzle_protocol > json_server > logging_stats > mysql_protocol > mysql_unix_socket_protocol > innobase > memory > myisam > > Granted, most people should reconfigure InnoDB, for example, but nonetheless > I think these plugins can have a default <plugin>.conf file. >
The above are obvious. InnoDB of course needs to be enabled by default :-) > On the other hand, these plugins require that the user config them: > > ################### > ### User Config ### > ################### > > auth_http (server) > auth_ldap (server) > filtered_replicator (what to filter) > logging_gearman (thresholds) > logging_query (thresholds) > query_log (thresholds) > memcached_stats (server) > rabbitmq (?) > regex_policy (who to allow to what) > slave (config) > syslog (multiple plugins) > transaction_log (?) > zeromq (?) > I kind of disagree with this list. We should have a higher ambition level and strive to default enable as much as possible. (Compare with InnoDB, in practice user will need to configure it, but it still ships as enabled with some defaults.) Let's add that in the above also zeromq, rabbitmq and slave will need a server. So we cannot enable them since we cannot magically know the hostname/address for that configuration. This much is obvious. For most of the others it would be possible to supply reasonable defaults and have them enabled: filtered_replicator: default can be to filter nothing and replicate everything regex_policy: same, it can be enabled but allow everything. transaction_log: Ok, for this one I agree it is ok to disable by default, otoh it could enable itself automatically when a slave connects. For everything that says "thresholds", we should ship with conservative thresholds. A good example is the mysql slow query log that ships with a 10 sec threshold. It means only very slow queries would be caught in it. ** If we stick to the assumption that people will mostly use debs and rpms, and then will only install the ones they want to use (in practice people seem to actually install everything though...) then it follows we should do the above and strive to enable as much as possible. This is the more consistent alternative. Otoh from the point of view where users compile from source, install a binary tarball (to be provided) or just install every deb/rpm they can find, the above are plugins that could in fact be disabled. For instance you wouldn't ever use all auth plugins at once even if they are installed. Same argument could be made for things like a slow query log. Is it really better to default to enabled and high threshold, when we can also provide a good default threshold (like 10 ms) and default to disabled. So it seems I've reached the point where arguing for 100% compliance is also arguing against pragmatism. You'll have to apply your own judgement on this one. henrik > All other modules either don't have anything to configure (e.g. > default_replicator), or they're test modules (e.g. tableprototester), or > they're core modules (e.g. signal_handler). That leaves us with just about > 10 or so modules to make dynamic. Some like InnoDB are their own beast that > I don't intend to modify. :-) Others like the protocols don't need to be > dynamic (I've never seen a need to dynamically change port bindings.) So > that leaves mostly any module that uses a file or external server. > Dynamically changing port bindings... I feel like I have to invent a good use case for that! henrik -- [email protected] +358-40-8211286 skype: henrik.ingo irc: hingo www.openlife.cc My LinkedIn profile: http://www.linkedin.com/profile/view?id=9522559 _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

