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.
    
 
        
    
    Elaine Cheong
Last modified: Thu Aug  2 13:01:32 PDT 2001