Dynamically loadable modules
От | Mattias Kregert |
---|---|
Тема | Dynamically loadable modules |
Дата | |
Msg-id | 351931EB.735C5A27@algonet.se обсуждение исходный текст |
Ответ на | Re: [HACKERS] Data type removal (dg@illustra.com (David Gould)) |
Список | pgsql-hackers |
David Gould wrote: > > > How about this as a compromise. We make these packages available > > in the contrib or other such area as loadable modules as well as > > making them available right in the main backend code, but setup > > configure options to enable/disable them, so when I compile, I can say > > "--without-geometry" to compile without those types and functions. If > > I want to add them back in later, I can compile the loadable module > > version and add them in. > > I don't particularly like this model of adding extensions either. It implies > that you have to rerun configure and build the whole system to add a module. > In fact, all that is needed is to build the module and run the setup > scripts and the running database picks up the new functionality. That's the nice thing with Linux. You can throw out the sound driver any time and insert a new one whenever you want to. If I decide to use the MIDI port, I can rmmod the old driver and insmod the new one with midi support... If I connect a Wingdogs PC to my network, I can insmod smbfs and then I can mount the windows file resources from my Linux box. No need to upgrade kernel or reboot. If someone comes up with a new super-NFS, I just unmount my nfs's, insmod super-nfs, and mount -a -t nfs... With loadable modules in PostgreSQL, you could upgrade the ORACLE compatability module by typing "make modules modules-install". No need to kill all backends and postmaster, deal with angry users, make backups, install new binaries, dump-and-restore, track down bugs, and so on. It would also be easier to contribute to PostgreSQL by creating modules, than having to submit patches to the server core... Let's say I have made a storage manager for tapes. It would be easier to make a module which used a standard set of "modules" functions to register the new manager in the core, than submitting patches to be included in the core... And if something causes troubles, just remove that module! Then it would not be a big problem if a new feature was buggy. Perhaps it would be easier to find bugs then (binary search - remove module by module). Just imagine Linux if people had to submit patches to the kernel instead of just writing their drivers as modules!!! /* m */
В списке pgsql-hackers по дате отправления: