A continuous media file server system has a controller connected to
multiple data servers. Each data server supports at least one storage
disk. Data files are distributed across the data servers so that data
blocks of the data files are stored on each of the storage disks. The data
files have different data transmission rates at which they are served over
a network to clients in the form of data streams. A scheduling unit
maintains a network schedule that provides a relative ordering of
transmission times of requested data streams. The transmission times
indicate when the data servers are to transmit corresponding data blocks
of the requested data files over the network to stream the data to
clients. The block play times for all data files have a fixed duration,
with the size of the data blocks from data file to data file varying
according to the data transmission rates of the files. When a transmission
time for a data file block approaches, the scheduling unit instructs the
appropriate data server to read a data block for that data file from the
disk prior to the transmission time in the network schedule. In this
manner, disk reads are scheduled implicitly according to the network
schedule. The data is temporarily stored in buffer memory, and later
transmitted over the network. When a request for a new data stream is
received, the scheduling unit evaluates whether the new data stream can be
inserted into the network schedule without overburdening the data servers'
ability to serve the existing data streams on the network schedule.
Un système continu de serveur d'archivage de médias a un contrôleur relié aux serveurs multiples de données. Chaque serveur de données soutient au moins un disque de stockage. Des fichiers de données sont distribués à travers les serveurs de données de sorte que des blocs de données des fichiers de données soient stockés sur chacun des disques de stockage. Les fichiers de données ont de différents taux de transmission de données auxquels ils sont servis au-dessus d'un réseau aux clients sous forme de flux de données. Une unité d'établissement du programme maintient un programme de réseau qui fournit une commande relative des temps de transmission des flux de données demandés. Les temps de transmission indiquent quand les serveurs de données doivent transmettre les blocs correspondants de données des fichiers de données demandés au-dessus du réseau pour couler les données aux clients. Les temps de jeu de bloc pour tous les fichiers de données ont une durée fixe, avec la taille des blocs de données à partir du fichier de données au fichier de données changeant selon les taux de transmission de données des dossiers. Quand un temps de transmission pour un bloc de fichier de données s'approche, l'unité d'établissement du programme demande au serveur approprié de données de lire un bloc de données pour cela fichier de données à partir du disque avant le temps de transmission dans le programme de réseau. De cette manière, le disque lit sont programmés implicitement selon le programme de réseau. Les données sont temporairement stockées dans la mémoire d'amortisseur, et plus tard transmises au-dessus du réseau. Quand une demande d'un nouveau flux de données est reçue, l'unité d'établissement du programme évalue si le nouveau flux de données peut être inséré dans le programme de réseau sans surcharger la capacité des serveurs de données de servir les flux de données existants sur le programme de réseau.