James Rogers kirjutas K, 15.10.2003 kell 11:26: > On 10/14/03 11:31 PM, "James Rogers" <[EMAIL PROTECTED]> wrote: > > > > There is some abstraction in Postgres and the database is well-written, but > > it isn't written in a manner that makes it easy to swap out operating system > > or API models. It is written to be portable at all levels. A database > > kernel isn't necessarily required to be portable at the very lowest level, > > but it is vastly more optimizable because you aren't forced into a narrow > > set of choices for interfacing with the operating system. > > > Just to clarify, my post wasn't really to say that we should run out and > make Postgres use a database kernel type internal model tomorrow. The point > of all that was that Oracle does things that way for a very good reason and > that there can be benefits that may not be immediately obvious.
OTOH, what may be a perfectly good reason for Oracle, may not be it for PostgreSQL. For me the beauty of OS software has always been the possibility to fix problems at the right level (kernel, library, language) , and not to just make workarounds at another level (your application). So getting some API's into kernel for optimizing cache usage or writeback strategies would be much better than using raw writes and rewriting the whole thing ourseleves. The newer linux kernels have several schedulers to choose from, why not push for choice in other areas as well. The ultimate "database kernel" could thus be a custom tuned linux kernel ;) > It is really one of those emergent "needs" when a database engine gets to a > certain level of sophistication. For smaller and simpler databases, you > don't really need it and the effort isn't justified. At some point, you > cross a threshold where not only does it become justified but it becomes a > wise idea or not having it will start to punish you in a number of different > ways. I personally think that Postgres is sitting on the cusp of "its a > wise idea", and that it is something worth thinking about in the future. This thread reminds me of Linus/Tannenbaum Monolithic vs. Microkernel argument - while theoretically Microkernels are "better" Linux could outperform it by having the required modularity on source level, and being an open-source project this was enough. It also beat the Mach kernel by being there whereas microkernel based mach was too hard to develop/debug and thus has taken way longer to mature. -------------- Hannu ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend