From: | Hannu Krosing <hannu(at)tm(dot)ee> |
---|---|
To: | James Rogers <jamesr(at)best(dot)com> |
Cc: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Database Kernels and O_DIRECT |
Date: | 2003-10-15 21:12:48 |
Message-ID: | 1066252368.3879.11.camel@fuji.krosing.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
James Rogers kirjutas K, 15.10.2003 kell 11:26:
> On 10/14/03 11:31 PM, "James Rogers" <jamesr(at)best(dot)com> 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
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-10-15 21:17:15 | Re: Novice questions about HeapTupleSatisfies |
Previous Message | Andrew Dunstan | 2003-10-15 21:02:15 | Re: Database Kernels and O_DIRECT |