Ben,

the relation of databases and OS's is a question also mentioned in
Jim Gray's and Andreas Reuter's bool Transaction processing.
I have written the InnoDB table handler (= storage engine) under
MySQL. Let me think how operating systems could make database
implementation easier.

- Log-based file systems could take the role of recovery mechanism
in case of a crash. For it to be feasible, the file system should immediately
write a log to a safe place of any changes to files cached in the file
cache of the OS. I do not know if such database-like file systems exist.

- The file cache of the operating system could take the place of
the buffer pool of the database. This is actually done in MySQL because
MySQL caches the data of rows in the file cache of the OS. Only indexes
are cached in MySQL's own 'key cache'.

- The file system of the OS can do the storage of tables and indexes
into regular files. That is how MySQL actually works. In InnoDB
I decided to build my own file space management, where the database
takes care of space allocation in a 'tablespace' consisting of
one or more files.

- Many databases implement their own thread abstraction above
the processes or threads of an OS. The reason is that OS threads
use too much memory, or thread scheduling is slow in the OS if there
is alarge number of threads. MySQL uses OS threads or a user-space
library threads, and does not implement its own thread abstraction.
InnoDB engine has its own thread abstraction above OS threads.

There are many performance-related viewpoints to the above questions.
Generally the services of operating systems are not as highly optimized
code as what is found in databases, and database implementors have
written their own modules to get the best performance.

- A special detail is semaphore (like a mutex) implementation.
Datbase implementors have tradiitionally written their own
semaphores using a test-and-set machine instruction. It would be
better if an OS would provide such a fast semaphore operation in
a library. I looked at FreeBSD source code and found that a pthread
mutex there is still much more complex, and consequently slower than
a mutex I can write myself using a machine instruction. However, in Win NT
a 'CriticalSection' corresponding to a mutex is very fast, I think.
For portability it would be better to use OS mutexes.

Thus an OS could to some extent help the work of us database implementors.
But the services of the OS should then be written to be fast enough.

- Standardized interfaces is a very important property of an OS from
the database viewpoint. Databases use quite a rich set of OS services
and deviations from (Posix) standards in an OS cause quite a lot of
work in form of portability bugs.

Hope this helps your work.

Regards,

Heikki Tuuri
Innobase Oy



>Ok. Now you make more sense.  This is from my personal point of view.  In
>general, I prefer speed, ease of use and ease of maintenance.  What I like
>about mysql is that you can choose which features to build into it when
>compiling.  For example, standard mysql does not come built with transaction
>support and, as transactions tend to take up time, I prefer not to use it.
>You don't have much of a choice in other database packages.  Sure mysql
>lacks functionality, but that will come as the developers progress.
>The other bells and whistles, that come with most other products like Oracle
>& MSSQL server, aren't used very often and usually tend slow down queries,
>whether they're used or not.----- Original Message -----
>From: "Ben Garvey" <[EMAIL PROTECTED]>
>To: "Rolf Hopkins" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
>Sent: Friday, April 20, 2001 13:43Subject: Re: databases and operating systems
>> Sorry for the topic if if is off, but there are more uses for databasesthan
>> just in PCs.  I don't mean writing an OS explicitly using/for databases
>> (like PalmOS), but rather, what features would better support modern
>> databases.
>> Ben Garvey
>> ----- Original Message -----
>> From: "Rolf Hopkins" <[EMAIL PROTECTED]>
>> To: "Ben Garvey" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
>> Sent: Thursday, April 19, 2001 11:43 PM
>> Subject: Re: databases and operating systems
>>
>> > This is rather off topic but for what it's worth, to me, it doesn't make
>> > much sense in gearing OSs more towards databases.  PCs do far more than
>> just
> > databases.> >> 
> ----- Original Message -----
>> > From: "Ben Garvey" <[EMAIL PROTECTED]>
>> > To: <[EMAIL PROTECTED]>> > Sent: Friday, April 20, 2001 1:52
>> > Subject: databases and operating systems> >> >
>> > > Hello, my name is Ben Garvey and I'm doing a research paper on whether
>> > > operating systems should be rewritten to offer more support for
>> databases.> > >
>> > > What type of operating system features could benefit database
>> > implementors?
> > >
> > > Thank you in advance.
> > >
> > > Ben Garvey
>> > > American University> > > 202-332-6218> > >> > >> > >> > >
>> > > ---------------------------------------------------------------------
>> > > Before posting, please check:
>> > >    http://www.mysql.com/manual.php   (the manual)
>> > >    http://lists.mysql.com/           (the list archive)> > >
>> > > To request this thread, e-mail <[EMAIL PROTECTED]>
>> > > To unsubscribe, e-mail
>> > <[EMAIL PROTECTED]>
>> > > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php> >
>> >>>> ---------------------------------------------------------------------
>> Before posting, please check:
>>    http://www.mysql.com/manual.php   (the manual)
>>    http://lists.mysql.com/           (the list archive)>
>> To request this thread, e-mail <[EMAIL PROTECTED]>
>> To unsubscribe, e-mail<


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to