Operating System Support for Database Management
This paper examines several popular operating system services and
indicates whether they are appropriate for the support of database
management functions. The paper shows that often, the wrong
service is provided or that severe performance problems exist.
- Buffer pool management: Need an OS that allows prefetch
advice (not sequential), block management advice (not LRU), and
selected force out (push intentions list and commit flag to disk
in the proper order).
- File system: Need an OS that provides DBMS facilities as
lower level objects and character arrays as higher level ones,
not vice versa. Also need physical contiguity of logical blocks
and a single tree to manage data (instead of 3 separate ones for
file blocks, directories, B-trees, etc).
- Scheduling, Process Management, and Interprocess
Communication: OS is fundamentally "process per user" (as
opposed to server model). [See Lauer and Needham paper]. Basic
problem is overhead in some operating systems of task switches
and messages. Other problems: convoy phenomenon for critical
sections, various server architectures duplicate OS services.
Need an OS with cheaper facilities or special fast path functions
for DBMS consumers.
- Consistency control: Need to have buffering, concurrency
control, and crash recovery all either in OS or in user space.
Other problems: need finer-granularity locking.
- Paged virtual memory: problems with binding files (whole or
chunks) to user's paged virtual address space, and buffering.
Last modified: Thu Aug 2 13:01:32 PDT 2001