
Go backward to Introduction
Go up to Top
Go forward to Continuous Display with Mitra
An Overview of Mitra
Mitra employs a hierarchical organization of storage
devices to minimize the cost of providing on-line access
to a large volume of data.
It is currently operational on a cluster of HP 9000/735
workstations.
It employs a HP Magneto Optical Juke-box as its tertiary
storage device.
Each workstation consists of a 125 MHz PA-RISC CPU,
80 MByte of memory, and four Seagate ST31200W magnetic
disks.
Mitra employs the HP-UX operating system (version 9.07) and
is portable to other hardware platforms.
While 15 disks can be attached to the fast
and wide SCSI-2 bus of each workstation,
we attached four disks to this chain because
additional disks would exhaust the bandwidth of this bus.
It is undesirable to exhaust the
bandwidth of the SCSI-2 bus for several reasons.
First, it would cause the underlying hardware platform to not
scale as a function of additional disks.
Mitra is a software system and if its underlying hardware
platform does not scale then the entire system would not scale.
Second, it renders the service time of each disk unpredictable,
resulting in hiccups.
Mitra consists of three software components:
- Scheduler:
this component schedules the retrieval of the blocks of a referenced
object in support of a hiccup-free display at a PM.
In addition, it manages the disk bandwidth and performs
admission control.
Currently, Scheduler includes an implementation of EVEREST,
staggered striping, and techniques to manage the tertiary
storage device.
It also has a simple relational storage manager to
insert, and retrieve information from a catalog.
For each media type, the catalog contains the bandwidth
requirement of that media type and its block size.
For each presentation, the catalog contains its name,
whether it is disk resident (if so, the name of
EVEREST files that represent this clip), the cluster and
zone that contains its first block, and its media type.
- mass storage Device Manager (DM):
Performs either disk or tertiary read/write operations.
- Presentation Manager (PM):
Displays either a video or an audio clip.
It might interface with hardware components
to minimize the CPU requirement of a display.
For example, to display an MPEG-2 clip, the PM might employ
either a program or a hardware-card to decode and display
the clip.
The PM implements the PM-driven scheduling policy of
PM-driven Section to control the flow of data from the Scheduler.
Mitra uses UDP for communication between
the process instantiation of these components.
UDP is an unreliable transmission protocol.
Mitra implements a light-weight kernel, named HP-NOSE.
HP-NOSE supports a window-based protocol to facilitate
reliable transmission of messages among processes.
In addition, it implements the threads with
shared memory, ports that multiplex messages using a
single HP-UX socket, and semaphores for synchronizing
multiple threads that share memory.
An instantiation of this kernel is active
per Mitra process.
Figure 1:
Hardware and software organization of Mitra
For a given configuration, the following processes are
active: one Scheduler process, a DM process per mass storage
read/write device, and one PM process per active client.
For example, in our twelve disk configuration with a magneto
optical juke box, there are sixteen active processes:
fifteen DM processes, and one Scheduler process
(see Figure 1).
There are two active DM processes for the magneto juke-box because
it consists of two read/write devices (and 32 optical platters
that might be swapped in and out of these two devices).
The combination of the Scheduler with DM processes
implements asynchronous read/write operations on a mass storage
device (that is otherwise unavailable with HP-UX 9.07).
This is achieved as follows.
When the Scheduler intends to read a block from a device
(say a disk), it sends a message to the DM that manages
this disk to read the block.
Moreover, it requests the DM to transmit its block to
a destination port address (e.g., the destination might
correspond to the PM process that displays this block)
and issue a done message to the Scheduler.
There are several reasons for not routing data blocks to active PMs
using the Scheduler.
First, it would waste the network bandwidth with multiple
transmissions of a block.
Second, it would cause the CPU of the workstation that supports
the Scheduler process to become a bottleneck with a large number
of disks.
This is because a transmitted data block would be copied many
times by different layers of software that implement the Scheduler
process:
HP-UX, HP-NOSE, and the Scheduler.
While the interaction between the different processes
and threads is interesting, we do not report on them
due to lack of space.