DE60016784T2 - Planung von speicherzugriffen für raten-garantierte und nicht-raten-garantierte anforderungen - Google Patents

Planung von speicherzugriffen für raten-garantierte und nicht-raten-garantierte anforderungen Download PDF

Info

Publication number
DE60016784T2
DE60016784T2 DE60016784T DE60016784T DE60016784T2 DE 60016784 T2 DE60016784 T2 DE 60016784T2 DE 60016784 T DE60016784 T DE 60016784T DE 60016784 T DE60016784 T DE 60016784T DE 60016784 T2 DE60016784 T2 DE 60016784T2
Authority
DE
Germany
Prior art keywords
guaranteed
speed
queue
requests
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60016784T
Other languages
English (en)
Other versions
DE60016784D1 (de
Inventor
A. Michael DEMONEY
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE60016784D1 publication Critical patent/DE60016784D1/de
Application granted granted Critical
Publication of DE60016784T2 publication Critical patent/DE60016784T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • H04N21/2396Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • H04N21/2326Scheduling disk or memory reading operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Description

  • TECHNISCHER HINTERGRUND DER ERFINDUNG
  • 1. Technisches Gebiet der Erfindung
  • Diese Erfindung betrifft Computerdatenspeicher- und -serversysteme und insbesondere digitale Video-/Audiospeicher- und -playbacksysteme, die mehrere kontinuierliche Medienströme unterstützen.
  • 2. Beschreibung des relevanten Standes der Technik
  • Multimedia- oder Videoserversysteme werden in einer Vielzahl von Anwendungen verwendet für das Speichern und die Wiedergabe bzw. das Playback von Video-, Audio- oder anderen Multimediadatenströmen. Beispielsweise können Multimediaserver verwendet werden für die Ausstrahlung, für Kabel-, Satelliten- oder Telefongesellschaftlösungen, um Multimediainformation zu Kunden oder Konsumenten zu verteilen. Professionelle Ausstrahler und verknüpfte Serviceprovider, wie z.B. Netzwerkanbieter und Partnergesellschaften und Kabelbetreiber können digitale Videoserver einsetzen, um Multimediasendeanwendungen mit hoher Bandbreite zu unterstützen einschließlich Multikanalprogramm-Playout, Werbeeinblendung und digitalem Inhaltsmanagement. Andere Anwendungen für Multimediaserversysteme können computerbasiertes Training beinhalten, in dem Multimediatrainingmaterialien oder Vorträge auf dem Serversystem gespeichert werden können, auf das von den Studenten über ein Netzwerk oder das Internet zugegriffen werden kann.
  • Die Videoarchivierung, das Videodurchsuchen (browsing) und das Videoabrufen ist eine andere Multimediaserveranwendung. Verschiedene Filme können auf dem Server gespeichert und auf Anfrage zu Benutzern verteilt werden. Video-On-Demand- oder Videoliefersysteme können es einer Mehrzahl von Benutzern oder Zuschauern erlauben, selektiv Filme oder andere Audio-/Videosequenzen anzusehen, die auf einem oder mehreren Videoservern oder Mediaservern gespeichert sind. Die Videoserver können über Datentransferkanäle, wie z.B. ein Sendekabelsystem, ein Satellitensendesystem oder das Internet mit einer Mehrzahl von Benutzern oder Teilnehmern verbunden sein. Die Videoserver können eine Vielzahl von Filmen oder anderen Audio-/Videosequenzen speichern und jeder Benutzer kann einen oder mehrere Filme von den Videoservern für das Betrachten auswählen. Jeder Benutzer kann ein Fernsehgerät oder ein anderes Betrachtungsgerät beinhalten, sowie die verknüpfte Decodierlogik für das Auswählen und Ansehen der gewünschten Filme. Wenn ein Benutzer einen Film auswählt, kann der ausgewählte Film über einen der Datentransferkanäle zu dem Sichtgerät des entsprechenden Benutzers übertragen werden. Multimediaserver werden ebenso in Webcasting-Anwendungen gefunden, in denen Unterhaltung verschiedenen Teilnehmern mittels Multicast über das Internet übertragen wird. Multimediaserver werden ebenso in zahllosen anderen Anwendungen gefunden.
  • Um die Anforderungen von vielen unterschiedlichen Anwendungen und Benutzern zu erfüllen, ist es für ein Multimediaserversystem wünschenswert, Flexibilität und Erweiterbarkeit bereitzustellen. Zwei wichtige Anforderungen für ein Multimediaserversystem sind der Speicherplatz und die Dateisystembandbreite. Multimediadaten, wie z.B. vollbewegtes digitales Video, erfordern eine große Speichermenge und eine große Datentransferbandbreite. Somit verwenden Multimediasysteme verschiedene Typen von Videokomprimierungsalgorithmen, um die notwendige Speichermenge und die notwendige Übertragungsbandbreite zu reduzieren. Im allgemeinen gibt es verschiedene Videokomprimierungsverfahren für unbewegte Grafikbilder und für vollständig bewegtes Video. Videokomprimierungsverfahren für unbewegte Bilder oder einzelne Videoeinzelbilder können Intraframekomprimierungsverfahren sein und Komprimierungsverfahren für bewegtes Video können Interframekomprimierungsverfahren sein.
  • Beispiele der Videodatenkomprimierung für unbewegte Grafikbilder sind die RLE- (Lauflängencodierung) und die JPEG- (Joint Photographic Experts Group) Komprimierung. Obgleich die JPEG-Komprimierung ursprünglich für die Komprimierung von stehenden Bildern statt von Video entwickelt wurde, wird die JPEG-Komprimierung in einigen Bewegungsvideoanwendungen verwendet. Die meisten Videokomprimierungsalgorithmen sind für das Komprimieren von vollbewegtem Video konstruiert. Beispiele von Videokomprimierungstechniken sind MPEG (Moving Pictures Experts Group), MPEG-2, DVI (Digital Video Interactive) und Indeo, und andere.
  • Selbst mit der Verwendung von Komprimierungstechniken können Multimediaanwendungen immer noch extrem große Speichermengen erfordern. Beispielsweise können zwei Stunden Video, codiert mit 1 Mb pro Sekunde, etwa ein Gigabyte (1 GB) Speicherplatz erfordern. Ein System, das zahllose unterschiedliche Inhalte unterstützt, kann bis einigen Terabyte (TB) Speicherplatz erfordern. Das Serversystem muß ebenso in der Lage sein, genügend Bandbreite für die verschiedenen Benutzer bereitzustellen, um auf ausgewählten Multimediainhalt ohne Überlastung des Speichersystems zuzugreifen. Um beispielsweise hundert Teilnehmer, die Multimediainhalt, der mit 1 Mb pro Sekunde codiert ist, ansehen, gleichzeitig zu unterstützen, kann ein Server eine Bandbreite von mehr als 100 Mb pro Sekunde unterstützen müssen, wenn Overhead erlaubt wird. Falls nicht genügend Bandbreite verfügbar ist, müssen einige Anfragen abgelehnt werden oder die Abspielqualität kann leiden (Video kann zu langsam ablaufen oder kann "ruckelnd" erscheinen). Um solche Speicher- und Bandbreitenanforderungen zu erfüllen, kann ein Multimediaserver ein oder mehrere RAID-Speichersysteme verwenden. In einem RAID-System können für eine gegebene Multimediadatei Blöcke von Multimediadaten über mehrere Festplatteneinheiten gespeichert sein. Die Blöcke können ausgelesen werden oder übertragen werden zu dem Kommunikationsnetzwerk und übertragen oder gesendet werden zu dem Benutzer oder den Benutzern. Am Empfangsende können die Blöcke für die Betrachtung durch den Benutzer auf einer Anzeigevorrichtung decodiert werden.
  • Die Verwendung von Festplattenlaufwerken, um Information magnetisch zu speichern, ist bekannt. Ein einzelnes Festplattenlaufwerk beinhaltet typischerweise verschiedene sich drehende Scheiben oder Platten, auf deren Oberfläche Information durch einen Schreib-/Lesekopf geschrieben oder gelesen werden kann. Innerhalb eines Festplattenlaufwerks drehen sich die Platten zu sammen und alle Lese-/Schreibköpfe werden typischerweise gleichzeitig bewegt, um auf unterschiedliche Plattenpositionen zuzugreifen. Eine Platte wird typischerweise in konzentrische Spuren formatiert, die gemeinsam von Platte zu Platte eine Familie von konzentrischen Zylindern bilden, und in Sektoren formatiert, die einen Teil einer Spur repräsentieren. Ein Controller, der mit der Festplatteneinheit verknüpft ist, bestimmt, auf welchen Zylinder, Lese-/Schreibkopf und Sektor für das Lesen oder Schreiben zugegriffen wird.
  • Die Platten können ebenso als in Zonen unterteilt angesehen werden. Da sie physisch größer sind, enthalten Tracks bzw. Spuren in Zonen am äußeren Plattenparameter mehr Sektoren als Spuren in Zonen nahe der Drehachse der Platte. Nimmt man daher an, daß sich die Platten mit einer konstanten Geschwindigkeit drehen, dann ist die verfügbare Datenbandbreite der äußersten Zonen größer als die verfügbare Datenbandbreite der innersten Zonen. Selbst mit modernen Festplattenlaufwerken kann es eine 2-1-Variation zwischen dem schlimmsten Fall und der durchschnittlichen Plattentransferbandbreite geben aufgrund von Sektor-/Trackvariationen zwischen äußeren und inneren Zonen.
  • Viele Multimediaanwendungen erfordern kontinuierliche Medienströme, in denen Datenströme mit festgelegten und möglicherweise mit der Zeit sich ändernden Datengeschwindigkeiten und mit einer spezifizierten Gleichförmigkeit dieser Lieferrate geliefert werden müssen. Um solche kontinuierlichen Medienströme zu unterstützen, basierten frühere Videostromsysteme auf einem Scheduler bzw. Steuerprogramm mit konstanter Zeit und variablem Datenspeicher. Scheduler bzw. Steuerprogramme für konstante Zeit und variable Daten liefern einen Datenstrom mit einer bestimmten Bitrate durch Zugreifen auf die Platte mit einer Frequenz, die für alle Ströme gleich ist, und Variieren der Datenmenge, die mit jeder Periode abgerufen wird, um die erforderliche Datengeschwindigkeit des Stroms zu erfüllen. Das Zugriffssteuerproblem für Konstantzeit-variable Daten-Plattensteuerprogramme ist ziemlich einfach. Ein neuer Strom kann zugelassen werden, falls die Platte die erforderliche zusammengesetzte Datenrate über die feste Zugriffsperiode aufrechterhalten kann. 1 stellt einen Mechanismus für das Datenplazieren/-planen in konstanter Zeit und mit variabler Datengeschwindigkeit dar. Der Einfachheit halber sind nur zwei Ströme dargestellt. Auf die Datenblöcke 100 wird mit einer festen Periode, die bei allen Strömen gleich ist, zugegriffen. Die Größe der Datenblöcke 100 wird zwischen verschiedenen Strömen entsprechend der Geschwindigkeit, die für einen bestimmten Strom erforderlich ist, variiert. Wie in 1 gezeigt ist, hat Strom 1 eine größere Blockgröße und damit eine höhere Datenrate als Strom 2. Wenn die Ströme auf der Platte aufgezeichnet werden unter Verwendung eines Konstantzeit-/variable Datensteuermechanismus, ist die Plazierung von Daten auf den Platten geschwindigkeitsabhängig.
  • Konstantzeitsteuerprogramme können jedoch einige Mängel haben. Diese Mängel können eine signifikante innere Fragmentierung des Speichers beinhalten. Innere Fragmentierungen treten auf, da Speicher ein Vielfaches von Blöcken fester Größe zugewiesen wird. Eine minimale Blockgröße ist die Größe des Gerätesektors, typischerweise können jedoch die Blöcke größer sein, um die Größe von freien Blocklisten zu minimieren. Die innere Fragmentierung kann in jeder Blockdatei auftreten. Beispielsweise könnten 50% des Speichers aufgrund innerer Fragmentierung verlorenge hen, wenn die gewünschte Bitrate gerade die Größe überschreitet, die je Periode von einer bestimmten Blockgröße lieferbar ist.
  • Konstante Zeitsteuerprogramme können ebenso unter einem Verlust der Bandbreitenleistungsfähigkeit aufgrund der inneren Fragmentierung leiden. Die innere Fragmentierung führt zu einem Verlust der Speicherbandbreite, da das System nicht verwendete Bytes abrufen muß.
  • Konstantzeitsteuerprogramme können ebenso unter der signifikanten äußeren Fragmentierung des Speichers leiden. Da Speicher in variablen Blöcken zugewiesen und freigesetzt wird, kann Speicher verlorengehen für die Verwendung von hohen Bitratendateien aufgrund externer Fragmentierung. Manche Konstantzeitsysteme verhindern dieses Problem durch Sammeln ihrer variablen Daten von mehreren diskontinuierlichen Speicherblöcken. Durch dieses Verfahren verlieren sie jedoch Speicherleistung durch das Erfordern zusätzlicher Abfragen.
  • Ein anderer Mangel von Konstantzeitschedulern ist der, daß sie ein komplizierteres Dateisystem erfordern, um variable Blockgrößen aufzunehmen. Die Abtastung erfordert entscheidungsdurchführende Mechanismen, um zwischen dem am besten passenden und dem ersten passenden Block auszuwählen und zwischen Blöcken auf einer inneren oder äußeren Zone der Platte, um nur zwei verkomplizierende Faktoren zu nennen. Andere verkomplizierende Faktoren treten auf, wenn Speicherpuffer zugewiesen werden, um die Datenblöcke variabler Größe zu halten.
  • Konstantzeitscheduler führen zu bitratenabhängiger Blockzuweisung des Speichers. Bitratenabhängigkeit ist den Konstantzeitschedulem inhärent, da die Blockgröße basierend auf der gewünschten Strombitrate ausgewählt wird. Somit muß eine gewünschte Dateistromrate vor dem Schreiben des Stroms in den Speicher bekannt sein.
  • Konstantzeitscheduler leiden ebenso typischerweise am Fehlen der Unterstützung für ein Pull- bzw. Ziehmodell eines Streamings mit variabler Bitrate. Im allgemeinen ist, da die Blockgröße und -plazierung auf einer gegebenen vorbekannten Stromrate basiert, das Anpassen variabler Bitströme und das Implementieren eines Pull-Modells nicht praktikabel.
  • Die US-A-5,761,692 beschreibt eine Technik für das Abrufen kontinuierlicher und nichtkontinuierlicher Mediendaten von einem Dateisystem, in dem ein bestimmter Teil der Plattenbandbreite für nichtkontinuierliche Medienanfragen reserviert ist. Zugewiesener Pufferspeicher wird dynamisch variiert, um das System auf niedrige Antwortzeiten zu optimieren. Die US-A-5,802,394 beschreibt das Maximieren der Geschwindigkeit und der Kontinuität des Zugriffs auf mehrere Ströme in einem Videospeichersystem. "A study on scheduling multiple priority requests in multimedia servers" von Kamel et al., Proceedings of the International Conference on Multimedia Computing and Systems, 7. Juni 1999, S. 395–399, XP002161616, erörtert die Handhabung von mehreren Prioritätsanforderungen in einem Videoserver. Die US-A-5,721,956 beschreibt die kontinuierliche Neuzuweisung von Pufferspeicher und Plattenbandbreitenressourcen in einem kontinuierlichen Medienserver.
  • Keines der oben erwähnten Dokumente lehrt oder legt nahe das Migrieren von Anfragen von einer Warteschlange mit garantierter Geschwindigkeit und einer Warteschlange mit nichtgarantierter Geschwindigkeit auf ein Speichersystem gemäß einem Zyklus, wobei der Zyklus eine Mehrzahl von Slots beinhaltet, wobei jeder Slot anzeigt, ob eine gegenwärtige Anforderung von der Warteschlange mit garantierter Rate oder der Warteschlange mit nichtgarantierter Rate migriert werden sollte, wobei die Slots gleichförmig verteilt sind über den Zyklus entsprechend dem Verhältnis der zwischen den ratengarantierten Anforderungen und den nicht-ratengarantierten Anforderungen zugewiesenen Bandbreite.
  • Während die meisten der obigen Punkte Implementierungs- oder Effizienzfragen sind, ist die Pull-Modellunterstützung eine funktionelle Frage mit signifikanten Implikationen. Sie macht Nicht-Echtzeitmigrierung von Videodateien schwierig. Sie verkompliziert ebenso Lösungen in Fällen, wo andere Geräte nicht in der Lage sind, einen Slave der Uhr des Servers zu bilden, oder sie werden gedrängt, zu einer anderen Taktquelle ein Slave zu sein, wie z.B. dort, wo Codierer und Decodierer in einer Ausstrahlungsumgebung an eine "Studiouhr" gebunden sind. Nicht-Echtzeitmigration und das Bereitstellen von Eingang und Ausgang zu extern getakteten Vorrichtungen sind wichtige Anforderungen für die Ausstrahlungsumgebung.
  • Es ist somit wünschenswert, ein Multimediaserver- und -speichersystem zu haben, das Leistung bei einem willkürlichen Mix aus kontinuierlichen Multimediaströmen, einschließlich Lesen, Schreiben, variierenden Bitraten, Einzeldateien und Mehrfachdateien, garantiert. Eine Technik für das Steuern des Stromeinflusses ist wünschenswert, um sicherzustellen, daß gegenwärtige Strömungsraten garantiert werden können. Eine effiziente hohe Verwendung der Plattenbandbreite ist ebenso wünschenswert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein System und ein Verfahren für das Verwalten von Speicherzugriffen entsprechend der vorliegenden Erfindung sind in den Ansprüchen 1 bzw. 23 festgelegt. Ein Multimediaspeichermanager arbeitet durch Zuweisen eines Rings von Datenpuffern zwischen dem Anforderer von kontinuierlichen Medien und dem Plattenuntersystem. Die Anzahl von Puffern im Ring kann eine Funktion einer vertraglich garantierten Rate des verknüpften Medienstroms, konfigurierbarer Parameter des Plattensteuersystems und von Dienstcharakteristika des Plattensystems sein.
  • Dieser Ring von N Puffern kann verwendet werden, um die nächsten N Blöcke des kontinuierlichen Medienstroms, auf die durch den Anforderer zugegriffen wird, zu halten. Sobald die Daten eines Puffers im Ring vom Anforderer verbraucht wurden, wird der nächste leere Puffer zusammen mit einer Abgabezeit im Plattensteuerprogramm in die Warteschlange gestellt. Die Abgabezeit zeigt die letzte Zeit an, zu der der Puffer gefüllt werden kann und die garantierte Ratenanforderung des Stroms erfüllen kann. Sie wird einfach als currentTime + (N – 1) * bufTime berechnet, wobei bufTime die minimale Zeit ist, in der der Anforderer einen Puffer konsumieren kann, ohne die vereinbarte garantierte Rate zu überschreiten.
  • Gleichzeitig mit den garantierten Ratenanforderungen, die im Plattensteuerprogramm in die Warteschlange gestellt werden, werden priorisierte, jedoch nicht-geschwindigkeitsgarantierte Anforderungen ebenfalls in die Warteschlange gesetzt. Nicht-geschwindigkeitsgarantierte Anforderungen tragen keine Deadlines bzw. Abgabetermine, tragen jedoch Prioritäten.
  • In einer bevorzugten Ausführungsform gibt das Plattensteuerprogramm die wartenden Abfragen zur Platte aus in einer Ordnung, die die Ablauftermine, die mit den Abfragen verknüpft sind, einhält, erzielt einen hohen Anteil der Plattensystembandbreite und weist restliche Plattenbandbreite nach den garantierten Anforderungen den nichtgarantierten Anforderungen in einer Art und Weise zu, die mit ihren verknüpften Prioritäten konsistent ist.
  • Der Speichermanager plaziert Anfragen von kontinuierlichen Medienanfragen in einer nach frühester Ablaufzeit geordneten Warteschlange (die "Ablaufzeitwarteschlange") und sie plaziert priorisierte, nicht-geschwindigkeitsgarantierte Anforderungen in eine getrennte, nach höchster Priorität geordnete Warteschlange (die "priorisierte Warteschlange").
  • Das Plattensteuerprogramm kann ebenso eine dritte Liste von Plattenanforderungen enthalten. Die Liste enthält Anforderungen, die nach der Position der angeforderten Datenblöcke auf der Plattenvorrichtung geordnet sind. Die Liste wird später als die "Suchneuordnungswarteschlange" bezeichnet. Die Suchneuordnungswarteschlange kann eine feste Maximalgröße haben, die ein konfigurierbarer Parameter des Systems ist. Anforderungen von den beiden oben beschriebenen Warteschlangen werden in diese Liste migriert.
  • Anfragen werden von der Deadline- und der Prioritätswarteschlange in die Suchneuordnungswarteschlange in einem "Zyklus" migriert. Ein Zyklus ist eine feste Anzahl von Anforderungen und innerhalb des Zyklus werden "Slots" zu entweder der Deadlinewarteschlange oder der Prioritätswarteschlange entsprechend dem Verhältnis der gewünschten Zuweisung der Plattenbandbreite zwischen garantierten und nichtgarantierten Zugriffen zugewiesen. Die zugewiesenen Slots zu jeder Verwendung sind gleichmäßig über den Zyklus verteilt.
  • Anforderungen von der Deadline- und der Prioritätswarteschlange werden zu der Suchneuordnungswarteschlange migriert, wann immer die Suchneuordnungswarteschlange nicht mit ihrer maximalen Größe gefüllt ist. Jede Migration wird von der Warteschlange aus durchgeführt, die von dem gegenwärtigen Slot des Zyklus angezeigt wird, und der Zyklus rückt dann zum nächsten Slot vor. Falls die Warteschlange, die von dem Slot angezeigt wird, leer ist, wird ein Eintrag von der anderen Warteschlange gewählt, falls diese nicht leer ist. Der migrierte Eintrag wird in der Suchneuordnungswarteschlange eingeordnet, so daß alle Anforderungen an eine Seite hiervon sich auf Datenblöcke mit Plattenadressen größer als oder gleich ihrer sind und alle Blöcke auf der anderen Seite in der Liste Datenblöcke mit Plattenadressen haben, die geringer oder gleich zu dieser sind.
  • Die Suchneuordnungswarteschlange wird gleichzeitig durch einen Thread durchwandert, der sich kontinuierlich in einer Richtung (d.h. in Richtung ansteigender oder abfallender Plattenadressen) bewegt, bis keine weiteren Einträge in der Liste existieren, er dreht dann die Richtung um und nimmt seine Wanderung wieder auf. Dieser Thread gibt an jedem Schritt die Plattenanforderung an das Plattensubsystem aus und rückt zu der nächsten Anforderung vor, wenn die vorher ausgegebene Anforderung von dem Plattensystem vollständig abgearbeitet wurde.
  • In einer bevorzugten Ausführungsform stellt der Speichermanager sicher, daß Bandbreite wie gewünscht zwischen geschwindigkeitsgarantierten und nicht-geschwindigkeitsgarantierten An forderungen zugewiesen wird, erlaubt den priorisierten nichtgarantierten Zugriff und reduziert den durchschnittlichen Suchabstand, wenn sich die Plattenbelastung erhöht.
  • Das System spricht ebenso an die Zugangssteuerung (z.B. das Bestimmen, ob ein zusätzlicher Anforderer mit garantierter Geschwindigkeit aufgenommen werden kann, ohne den Dienst für existierende geschwindigkeitsgarantierte Anforderer zu beeinträchtigen) und die Bestimmung der geeigneten Anzahl von Puffern in einem Ring für eine gewünschte garantierte Stromzugriffsgeschwindigkeit.
  • Die Zugriffssteuerung kann angegangen werden durch Charakterisieren der Plattensystemleistung mit einer künstlichen Belastung, die die Charakteristiken einer typischen Belastung reflektiert. Die Konstruktion einer repräsentativen Belastung kann vereinfacht werden durch Einschränken des Dateisystems, so daß sequentielle Blöcke in einer "in Zonen eingeteilten, zufälligen Art und Weise" zugewiesen werden: der Plattenblockadreßbereich wird in zwei Hälften aufgeteilt, die sequentiellen Dateiblockzuweisungen werden aus Zufallspositionen innerhalb einer Zone und alternierend zwischen den beiden Zonen zugewiesen. In einer bevorzugten Ausführungsform wird diesem Prozeß gefolgt, da Plattensysteme Leistungsvariationen in Bezug auf Blockadressen haben. Das Zuweisen von wechselnden "Zonen" stellt sicher, daß die Plattenleistung näherungsweise gleich ist sowohl während unterschiedlicher Dateien und während Positionen innerhalb einer einzelnen Datei. Die künstliche Last ist nun eine einzelne in Zonen unterteilte Zuweisungssequenz, die genügend repräsentativ für die wahre Last (und die Ansammlung von mehreren der in Zonen aufgeteilten Zuweisungen) ist. Die Plattenleistung kann mit dieser Last charakterisiert werden und kann herabgesetzt werden, um einen Spielraum bereitzustellen. Der herabgesetzte Bandbreitenwert kann dann multipliziert werden mit dem Bruchteil der Gesamtbandbreite, die in dem "Zyklus"-Prozeß den geschwindigkeitsgarantierten Anforderungen zugewiesen wird. Dies führt zu der maximalen Eingangsbandbreite. Geschwindigkeitsgarantierte Anforderungen können nun zugelassen werden, bis sie die gesamte Eingangsbandbreite verbrauchen.
  • Die Bestimmung der geeigneten Anzahl von Puffern im Pufferring kann empirisch durchgeführt werden. Dies kann durchgeführt werden durch Ablaufen einer Sammlung von geschwindigkeitsgarantierten Strömen, wobei für alle dieselbe Geschwindigkeit vereinbart wurde. Die Geschwindigkeit wird gewählt, so daß die Sammlung von Strömen exakt die gesamte Eingangsbandbreite verbraucht. Alle Ströme werden gegenüber dem Scheduler gleichzeitig initiiert. Ringpuffer werden dann dimensioniert, um sicherzustellen, daß alle Deadlines bzw. Ablaufzeiten mit einem festgelegten Spielraum erfüllt werden. Der Spielraum kann ein konfigurierbarer Parameter sein.
  • Allgemein ausgedrückt beinhaltet eine Ausführungsform ein System für das Steuern bzw. Planen von Speicherzugriffen auf mehrere kontinuierliche Medienströme. Das System kann eine Mehrzahl von Medienstromclients beinhalten. Verknüpft mit jedem Medienstromclient ist einer einer Mehrzahl von Medienstrommanagern. Jeder Medienstrommanager hält einen Ring von Puffern, der konfiguriert ist, um Medienstromdaten zwischen seinem verknüpften Medienstromclient und einem oder mehreren Speichersystemen zu puffern. Eine unterschiedliche Deadlinewarteschlange kann mit jedem der Speichersysteme verknüpft sein. Jede Deadlinewarteschlange kann konfiguriert sein, um Pufferanfragen von dem Medienstrommanager in eine Warteschlange zu stellen. Jede Pufferanforderung kann eine Ablaufzeit bzw. eine Deadline beinhalten, bei der die Pufferanforderung von dem entsprechenden Speichersystem abgearbeitet sein muß. Jeder Medienstrommanager kann konfiguriert sein, so daß, sobald einer seiner Puffer von dem entsprechenden Medienstromclient verbraucht ist, der Medienstrommanager eine Pufferanforderung und eine Deadline für diesen Puffer zu der geeigneten Deadlinewarteschlange übermittelt. Pufferanforderungen können in jeder Deadlinewarteschlange von der frühesten zur letzten Deadline geordnet sein. Jeder Medienstrommanager kann konfiguriert sein, um eine garantierte maximale Medienstromrate seinem verknüpften Medienstromclient zur Verfügung zu stellen. Das System kann ebenso einen Zugriffscontroller beinhalten, der konfiguriert ist, um eine maximale Medienstromrate jedem Medienstromclient zu übertragen. Der Zugangscontroller kann zusätzliche Medienstromclients nur erlauben, falls die übertragene maximale Medienstromrate für alle gegenwärtigen Medienstromclients beibehalten werden kann.
  • Für jeden Ring aus Puffern wird jeder Puffer durch seinen verknüpften Medienstromclient nacheinander in einer turnusartigen Ordnung verbraucht. Jeder Puffer kann gleich dimensioniert sein, um einen Datenblock zu halten, wobei auf Daten in dem Speichersystem entsprechend einem Block zugegriffen wird. Jeder Ring von Puffern kann eine Anzahl von Puffern enthalten, wobei die Anzahl entsprechend einer maximalen Strömrate, die von dem verknüpften Medienstromclient angefragt wird, ausgewählt wird. Die Anzahl wird gewählt, um gerade genug Puffer bereitzustellen, um einen Unterlauf bei der maximalen Stromrate zu vermeiden. Das System kann ebenso einen Bandbreitenzuweiser beinhalten, um einen eingestellten Abschnitt der Speichersystembandbreite zuzuweisen, um von der Deadlinewarteschlange auf ein Speichersystem zuzugreifen, und die verbleibende Speichersystembandbreite nicht-geschwindigkeitsgarantierten Anforderungen zuzuweisen.
  • Eine Ausführungsform kann ein Verfahren für das Steuern von Speicherzugriffen von mehreren kontinuierlichen Medienströmen beinhalten. Das Verfahren kann das Errichten einer garantierten maximalen Stromrate für jeden einer Mehrzahl von Multimediaströmen beinhalten. Das Verfahren kann weiterhin beinhalten das Errichten eines Rings aus Puffern für jeden Multimediastrom, wobei jeder Multimediastrom die Multimediadatenanforderungen von seinem verknüpften Ring aus Puffern erfüllt. Da jeder Puffer in einem Ring von Puffern verbraucht wird, beinhaltet das Verfahren das in-eine-Warteschlange-Stellen einer Anforderung für diesen Puffer in eine Deadlinewarteschlange, die mit dem Speichersystem verknüpft ist, von dem die Anforderung zu erfüllen ist. Für jede Deadlinewarteschlange beinhaltet das Verfahren das Ausgeben von Anforderungen von der Deadlinewarteschlange zu dem verknüpften Speichersystem. Die Anforderung mit der frühesten Deadline wird als erstes ausgegeben. Das in-die-Warteschlange-Stellen der Anfrage kann das Berechnen einer Deadlinezeit beinhalten, die die letzte Zeit anzeigt, zu der die Pufferanfrage erfüllt werden kann und immer noch die entsprechende garantierte maximale Stromrate erfüllt.
  • Eine Ausführungsform kann ein Verfahren für das Verwalten eines Multimediadatenstroms beinhalten. Das Verfahren kann das Empfangen einer Anforderung von einem Stromanforderer beinhalten, um einen Multimediadatenstrom zu errichten, der auf eine Multimediadatei zugreift, die in einem Speichersystem abgelegt ist. Das Verfahren kann das Verknüpfen zu der Multimediadatei und das Erzeugen eines Rings aus Puffern beinhalten. Das Verfahren kann weiterhin beinhalten das ursprüngliche Füllen des Pufferrings mit Multimediadaten für den Strom und dann das Strömen der Multimediadaten zwischen der Multimediadatei auf dem Speichersystem und dem Multimediastromanforderer. Das Strömen von Multimediadaten kann das Verbrauchen eines der Puffer in dem Ring von Puffern beinhalten und das darauffolgende Erzeugen einer Anforderung und einer Deadline für den gerade verbrauchten Puffer. Das Strömen beinhaltet dann das Ausgeben der Anforderung und der Deadline für den gerade verbrauchten Puffer zu einer Deadlinewarteschlange. Die Anforderung kann in der Deadlinewarteschlange entsprechend der Deadline angeordnet werden. Der nächste Puffer im Ring von Puffern kann dann verbraucht werden und der Prozeß wiederholt sich.
  • Ein System für das Verwalten von Speicherzugriffen für geschwindigkeitsgarantierte kontinuierliche Multimediadatenströme und nicht-geschwindigkeitsgarantierte Speicheranforderungen kann eine Mehrzahl von geschwindigkeitsgarantierten Anforderern für Multimediaströme und einen oder mehrere nicht-geschwindigkeitsgarantierte Anforderer beinhalten. Ein Plattensteuerprogramm kann ebenso beinhaltet sein. Das Plattensteuerprogramm kann eine geschwindigkeitsgarantierte Warteschlange für das in-die-Warteschlange-Stellen von Speicheranforderungen von den geschwindigkeitsgarantierten Anforderern und eine nicht-geschwindigkeitsgarantierte Warteschlange für das in-die-Warteschlange-Stellen von Anforderungen von den nicht-geschwindigkeitsgarantierten Anforderern haben. Das Plattensteuerprogramm kann ebenso einen Bandbreitenzuweiser beinhalten, der mit der geschwindigkeitsgarantierten Warteschlange und der nicht-geschwindigkeitsgarantierten Warteschlange verbunden ist und der weiterhin mit einem Speichersystem verbunden ist. Der Bandbreitenzuweiser kann konfiguriert sein, um Bandbreite des Speichersystems zwischen der geschwindigkeitsgarantierten Warteschlange und der nicht-geschwindigkeitsgarantierten Warteschlange gemäß einem vorbestimmten Verhältnis zuzuweisen. Die geschwindigkeitsgarantierten Anforderer können begrenzt sein, so daß eine Anhäufung von garantierten maximalen Stromraten für jeden geschwindigkeitsgarantierten Anforderer nicht den Teil der Bandbreite überschreitet, der der geschwindigkeitsgarantierten Warteschlange zugewiesen ist.
  • Anforderungen können in der geschwindigkeitsgarantierten Warteschlange gemäß einer Deadline geordnet werden, wobei die Deadline für jede Anforderung eine letzte Zeit anzeigt, zu der diese Anforderung erfüllt sein muß, um eine garantierte maximale Stromgeschwindigkeit für den entsprechenden Multimediadatenstrom zu erfüllen. Anforderungen können in der nicht-geschwindigkeitsgarantierten Warteschlange entsprechend einer Priorität geordnet sein, wobei der Bandbreitenzuweiser konfiguriert ist, um die Anforderungen mit der höchsten Priorität von der nicht-geschwindigkeitsgarantierten Warteschlange zu migrieren. Das System kann ebenso einen Pufferring beinhalten für jeden Multimediadatenstrom von einem der geschwindigkeitsgarantierten Anforderer. Der Pufferring kann Multimediastromdaten zwischen einem verknüpften geschwindigkeitsgarantierten Anforderer und dem Plattensteuerprogramm puffern. Der Pufferring kann eine Anzahl von Puffern enthalten, die ausgewählt wurde, um einen Pufferunterlauf bei einer garantierten maximalen Stromrate zu verhindern. Die Puffer von jedem Pufferring können durch den verknüpften geschwin digkeitsgarantierten Anforderer nacheinander in einer zyklischen Ordnung verbraucht werden. Sobald ein Puffer verbraucht ist, kann eine Anforderung und eine Deadline für den gerade verbrauchten Puffer an die geschwindigkeitsgarantierte Warteschlange ausgegeben werden.
  • Ein Verfahren für das Verwalten von Speicherzugriffen für geschwindigkeitsgarantierte kontinuierliche Multimediadatenströme und nicht-geschwindigkeitsgarantierte Speicheranforderungen kann das Zuweisen eines Teils der Speichersystembandbreite zu Stromanforderungen von geschwindigkeitsgarantierten Anforderern und das Zuweisen des verbleibenden Teils der Speichersystembandbreite zu Anforderungen von nicht-geschwindigkeitsgarantierten Anforderungen beinhalten. Speicheranforderungen von geschwindigkeitsgarantierten Anforderern können in einer geschwindigkeitsgarantierten Warteschlange abgelegt werden und Speicheranforderungen von nicht-geschwindigkeitsgarantierten Anforderern können in eine nicht-geschwindigkeitsgarantierte Warteschlange gestellt werden. Das Verfahren beinhaltet weiterhin das Auswählen entweder der geschwindigkeitsgarantierten Warteschlange oder der nicht-geschwindigkeitsgarantierten Warteschlange entsprechend der Bandbreitenzuweisung, um eine der Anforderungen zu dem Speichersystem zu migrieren. Jeder geschwindigkeitsgarantierte Anforderer kann Zugriff für einen Multimediastrom anfordern mit einer maximal garantierten Geschwindigkeit. Das Verfahren beinhaltet das Beschränken der Anzahl von Multimediaströmen, so daß die Summe der maximal garantierten Geschwindigkeit für jeden Strom nicht die Bandbreite überschreitet, die Stromanforderungen von geschwindigkeitsgarantierten Anforderern zugewiesen ist. Nicht verwendete Bandbreiten für geschwindigkeitsgarantierte Anforderungen können dynamisch den nicht-geschwindigkeitsgarantierten Anforderungen neu zugewiesen werden und umgekehrt.
  • Ein System und ein Verfahren können bereitgestellt werden für das Konfigurieren oder Feineinstellen eines Medienspeichersystems. Das Verfahren kann das Charakterisieren eines maximalen nachhaltigen Durchsatzes für das Medienspeichersystem beinhalten. Der maximale nachhaltige Durchsatz kann verringert werden durch einen primären Herabsetzungsparameter, um einen primären Durchsatz zu erzielen. Das Verfahren kann weiterhin beinhalten das Bestimmen von Größen für Puffereinheiten bei unterschiedlichen Medienstromgeschwindigkeiten, wobei während des Betriebs jede Puffereinheit verwendet wird für das Puffern eines Mediendatenstroms zwischen einem Medienstromanforderer und dem Speichersystem. Die Puffereinheitgrößen können bestimmt werden durch Erzeugen von Datenstromsimulatoren, die ausreichend sind, um den primären Durchsatz zu verbrauchen und anschließendes Optimieren der Puffergrößen, um Unterläufe für die Stromsimulatoren zu verhindern. Dies kann bei unterschiedlichen Stromgeschwindigkeiten wiederholt werden, um eine Tabelle von Puffergrößen gegenüber Stromraten zu bestimmen. Das Verfahren kann ebenso das Verringern des primären Durchsatzes beinhalten, um eine maximale Systembandbreite zu erzielen, die, während des Betriebs des Systems, eine obere Grenze auf das Zulassen von Strömen einstellt. Die Größe, um die der primäre Durchsatz für diesen Zweck verringert wird, kann durch einen konfigurierbaren sekundären Herabsetzungsparameter bestimmt sein.
  • Wenn Puffergrößen bestimmt werden, kann ein Vorfüllmargenparameter eingestellt werden, durch den Anforderungsdeadlines erfüllt werden müssen. Ebenso kann ein verfügbarer Geschwin digkeitsparameter eingestellt sein, um die verfügbare Bandbreite zwischen geschwindigkeitsgarantierten Strömen und nicht-geschwindigkeitsgarantierten Strömen aufzuteilen. Der Anteil, der für geschwindigkeitsgarantierte Anforderungen zugewiesen wird, kann verwendet werden, um Puffergrößen zu bestimmen, die in der Lage sind, die konfigurierte Vorfüllmarge zu erfüllen. Ein anderer Parameter kann konfiguriert sein, um die Länge einer Suchneuordnungswarteschlange einzustellen, die die Speichersystemanforderungen entsprechend ihrer physikalischen Speicheradresse ordnet. Dieser Parameter erlaubt einen Kompromiß zwischen der Sucheffizienz und der Variabilität in der Servicezeit. Eine höhere Variabilität in der Servicezeit kann größere Pufferringgrößen erfordern. Ebenso kann die Blockgröße, durch die auf Daten im Speichersystem zugegriffen wird, konfiguriert sein.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Andere Ziele und Vorteile der Erfindung werden deutlich mit Lesen der folgenden detaillierten Beschreibung unter Bezug auf die begleitenden Zeichnungen, in denen:
  • 1 einen Datenplazierungs-/-steuermechanismus, der von einer konstanten Zeit und einer variablen Datengeschwindigkeit abhängig ist,
  • 2 eine Darstellung eines Videoserver- und Speichersystems ist,
  • 3 eine Darstellung eines verteilten Multimediadateisystems ist, das eine Anzahl von Videoserver- und Dateisystemen verwendet,
  • 4 ein detailliertes Diagramm eines Videospeichermanagers ist,
  • 5 ein Beispiel eines geschwindigkeitsunabhängigen Plazierungsmechanismus mit konstanten Daten und variabler Zeit des Videospeichermanagers für zwei gleichzeitige kontinuierliche Medienströme darstellt,
  • 6 ein Flußdiagramm ist, das Pufferringe und Deadlinewarteschlangen darstellt, die einen Konstantdaten-/variable Zeit-Zugriffsmechanismus einsetzen,
  • 7 ein System darstellt, das sowohl geschwindigkeitsgarantierte Ströme als auch nicht-geschwindigkeitsgarantierte, verfügbare Geschwindigkeitszugriffe bereitstellt,
  • 8 ein Beispiel eines Zyklusses darstellt, durch den Anforderungen von der Deadline- und Prioritätswarteschlange zu dem Speichersystem migriert werden,
  • 9 ein Flußdiagramm ist, das ein Verfahren für das Bereitstellen von Speicherzugriff auf mehrere kontinuierliche Medienströme mit einer Geschwindigkeitsgarantie und einen Speicherzugriff für nicht-geschwindigkeitsgarantierte Anforderungen darstellt,
  • 10 einen Videospeichermanager darstellt, der Mechanismen kombiniert, die in der 4 und 7 gezeigt sind,
  • 11 ein Flußdiagramm ist, das den Betrieb der Suchneuordnung darstellt, der in 10 gezeigt ist,
  • 12 ein Flußdiagramm ist, das Speichercharakterisierung darstellt für die Zugriffssteuerung und
  • 13 ein Flußdiagramm ist, das die Bestimmung der optimalen Anzahl von Puffern für einen Pufferring für eine Vielzahl von Stromgeschwindigkeiten darstellt.
  • Während die Erfindung verschiedenen Modifikationen und alternativen Formen zugänglich ist, werden spezifische Ausführungsformen hiervon beispielhaft in den Figuren gezeigt und werden hier im Detail beschrieben. Es versteht sich jedoch, daß die Zeichnungen und die detaillierte Beschreibung hierzu nicht dafür vorgesehen sind, die Erfindung auf die bestimmte beschriebene Form zu beschränken, sondern im Gegenteil die Erfindung alle Modifikationen, Äquivalente und Alternativen, die in den Schutzbereich der vorliegenden Erfindung, wie er durch die angefügten Ansprüche festgelegt wird, fallen, umfassen soll.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • In 2 ist ein Videoserver- und Speichersystem 200 dargestellt. Das System 200 beinhaltet einen Server 202 und Speichersysteme 204. Die Speichersysteme 204 können mit dem Server 202 durch einen oder mehrere Busse 205 verbunden sein. Der Server kann einen oder mehrere Prozessoren (nicht gezeigt) beinhalten, die mit den Speichersystemen 204 über einen äußeren Bus, wie z.B. einen oder mehrere PCI-Busse und eine oder mehrere SCSI-Schnittstellen kommunizieren können. Der Server 202 kann ebenso eine Anzahl von Codecs beinhalten für das Codieren und Decodieren von Multimediadatenströmen. Die Codecs können ebenso mit einem oder mehreren PCI-Bussen verbunden sein. Jedes Speichersystem 204 kann ein oder mehrere RAID-Systeme beinhalten wie gezeigt.
  • Um mehrere kontinuierliche Medienströme zu unterstützen, in denen Datenströme mit einer spezifizierten und möglicherweise in der Zeit variierenden Datenrate geliefert werden, beinhaltet der Server 202 einen Videospeichermanager 206. Der Videospeichermanager steuert den Speicher und den Zugriff auf Multimediaströme auf den Speichersystemen 204. In einer bevorzugten Ausführungsform werden Multimediadateien über den Videospeichermanager 206 in dem hochqualitativen MPEG-2-Format gespeichert, obgleich andere geeignete Komprimierungsformate verwendet werden können. Clients oder Anforderer für einen Multimediastrom wenden sich an den Videospeichermanager 206 für den Zugriff auf eine Datei mit einer gewünschten Bitrate. Der Videospeichermanager 206 greift auf die verfügbare Speicherbandbreite und den verfügbaren Pufferspeicher zu, um zu bestimmen, ob die Anforderung erfüllt werden kann oder nicht. Sobald der Videospeichermanager ermittelt hat, daß die Anforderung aufgenommen werden kann, wird dem Client Zugriff auf die Datei mit irgendeiner Bitrate bis zur vereinbarten Rate gegeben. Falls die Anforderung die verfügbare Speicherbandbreite überschreitet und/oder der Pufferspeicher ausgeleert wird, muß der Videospeichermanager die Anforderung zurückweisen und der Client ist frei, die Anforderung zu einem späteren Zeitpunkt einzustellen und/oder erneut zu übermitteln. Durch Bereitstellen einer garantierten Stromrate unterstützt der Videospeichermanager vollständig die variablen Bitratenzugriffe zusätzlich zu den konstanten Bitratenzugriffen. Ein Client kann willkürlich die Zugriffsrate auf eine Datei von 0 Bits pro Sekunde zu irgendeinem Punkt bis zur vereinbarten Rate variieren. Diese Flexibilität unter stützt eine Anzahl von Merkmalen einschließlich der genauen Einzelbildinitiierung und der Schüttel-/Pendelfunktionalität.
  • Mehrere unterschiedliche Clients können unterschiedliche Ströme mit unterschiedlichen Bitraten von dem Videospeichermanager anfordern. Diese Ströme können eine willkürliche Mischung aus Lese-, Schreib-, Stromraten- und Dateizugriffen sein. Jeder Strom kann eine unterschiedliche vereinbarte Geschwindigkeit haben und ein individueller Strom kann willkürlich in der Geschwindigkeit bis hinauf zur vereinbarten Geschwindigkeit reichen, wobei die Gesamtsumme für alle Stromgeschwindigkeiten die gesamt summierte Gesamtstromkapazität des Serversystems nicht überschreitet. Es gibt keine Anforderung, daß alle Ströme dieselbe Bitrate haben müssen oder daß die Bitrate eines Stroms aus einem Satz von diskreten erlaubten Geschwindigkeiten ausgewählt werden muß. Der Videospeichermanager erlaubt es ebenso, daß Clients auf dieselben Dateien, unterschiedliche Dateien oder irgendeine Kombination dazwischen zugreifen. Wie unten beschrieben wird, stellt der Videospeichermanager diese Flexibilität ohne negativen Einfluß auf die Serversummenbandbreite bereit.
  • In 3 ist ein verteiltes Multimediadateisystem 300 dargestellt, das eine Anzahl von Videoservern 20 und Dateisystemen 204 einsetzt. In dieser Ausführungsform kommunizieren die Dateisysteme 202 mit den Videoservern 202 über den Faserkanal. Jedes Speichersystem 204 kann eine Anzahl von RAID-Systemen beinhalten, die auf einer Faserkanalentscheidungsschleife (FC-AL) verlinkt sind. Jeder Videoserver 202 kann beispielsweise ebenso eine Verbindung zu seinem eigenen lokalen Dateisystem oder einer Bandbibliothek aufnehmen. Beispielsweise kann auf andere Speichersysteme, wie z.B. eine Bandbibliothek, von dem System auf dem Faserkanal zugegriffen werden. Clients können Multimediaströme anfordern, so daß sie über das Übertragungsnetzwerk 208 gesendet werden. Das Übertragungsnetzwerk 208 kann ein Computernetzwerk, das Internet, ein Sendesystem oder irgendein anderes geeignetes Übertragungsmedium für Multimediaströme sein. Ein Videospeichermanager, der einen oder mehrere der Videoserver ausführt, steuert die Initiierung und die Addition von Multimediaströmen für den Zugriff auf Dateien auf den Speichersystemen 204. Der Videospeichermanager handhabt mehrere kontinuierliche Medienströme, die durch einen breiten Bereich von Hardwareschnittstellen, wie z.B. MPEG-Codierer und -Decoder, DVB-Multiplexer, ATM, SONET und Ethernet, zu dem Übertragungsnetzwerk 208 zu liefern sind. Der Videospeichermanager, wie er in Systemen, wie z.B. denen, die in den 2 und 3 dargestellt sind, eingesetzt wird, spricht an, wie Platten- oder Speicherzugriffe für mehrere kontinuierliche sequentielle Medienströme in einer Art und Weise gesteuert werden, daß Daten garantiert für alle kontinuierlichen Medienströme und einen genauen Mechanismus für das Bestimmen bereitstellt, ob eine neue Anforderung für einen geschwindigkeitsgarantierten Zugriff aufgenommen werden kann.
  • In 4 wird ein detailliertes Diagramm des Videospeichermanagers 206 gezeigt. Der Videospeichermanager 206 beinhaltet einen Anforderungsprozessor 402, der Clientanforderungen mit den Strommanagern 404 verbindet. Jeder Strommanager 404 behält einen Pufferring 405. Ein getrennter Strommanager 404 entspricht jedem kontinuierlichen Multimediastrom. Ein Dateisystem 406 wird bereitgestellt für das Abbilden von Stromzugriffen auf die Speichersysteme 204. Plattenschedu ler 408 werden für jedes Speichersystem 204 bereitgestellt, um den Fluß von Speicherzugriffen zu jedem Speichersystem zu verwalten. Jeder Plattenscheduler kann eine Deadlinewarteschlange 410 beinhalten, wie unten detaillierter beschrieben wird.
  • Der Videospeichermanager, das Filesystem und der Plattenscheduler plazieren Stromdaten auf den Speichersystemen in einer Art und Weise, die vollständig unabhängig von der inhärenten Bitrate dieses Materials ist. Dieses Merkmal stellt eine zusätzliche Flexibilität zur Verfügung, nämlich darin, daß Clients Inhalt auf und von dem Videospeichermanagerdateisystem mit geschwindigkeitsgarantiertem Service mit Datengeschwindigkeiten vielfach größer (oder kleiner) als die inhärente Geschwindigkeit der Stromdaten übertragen können. Der Videospeichermanager, das Filesystem und der Datenplazierungsmechanismus ist ein Mechanismus mit fester Blockgröße. Beispielsweise werden Daten übertragen zu oder von den Speichersystemen in einer konstanten Blockgröße. In einer bevorzugten Ausführungsform kann eine Blockgröße von 256 Kilobytes gewählt werden. Der Videostrommanager kann die Konfiguration der Blockgröße während der Systeminitiierung oder Konfiguration bereitstellen. Der Mechanismus mit fester Blockgröße stellt sicher, daß keine äußere Fragmentierung des Speichers auftritt und daß die innere Fragmentierung nur beim letzten Block der Datei auftritt (da eine Datei wahrscheinlich nicht exakt an einer Blockgrenze endet). Anders als bei geschwindigkeitsabhängigen, variablen Blockgrößenmechanismen, die sowohl an äußerer Fragmentierung als auch an variierenden Graden der inneren Blockfragmentierung leiden, was zu größeren Variationen und Speicheranforderungen für eine bestimmte Datei abhängig von der Stromrate und den gegenwärtigen Dateisysteminhalten führt, stellt der geschwindigkeitsunabhängige Mechanismus mit fester Blockgröße des Videospeichermanagers vorhersagbare Speicheranforderungen für jede Datei sicher ungeachtet der Geschwindigkeit oder gegenwärtiger Dateisysteminhalte.
  • Wendet man sich kurz 5 zu, so ist dort ein Beispiel eines geschwindigkeitsunabhängigen Plazierungsmechanismus mit konstanten Daten und variabler Zeit des Videospeichermanagers für zwei gleichzeitige kontinuierliche Medienströme gezeigt. Wie gezeigt, wird die Datenblockgröße für alle Medienströme fixiert, die Zeit, zu der auf einen Datenblock zugegriffen wird, wird aber für jeden Strom gemäß der gewünschten Bitrate variiert.
  • Ein Problem, das von einem Konstantdaten- (fester Block), variablen Zeitzugriffssteuermechanismus herrührt, ist, daß mehrere Ströme, jeder mit seiner eigenen Frequenz und Phase der Speicherzugriffe, Anforderungen an das Speichersystem macht und die Wechselwirkung dieser Zugriffsmuster zu Höchstbelastungen und Pausen in der Speicheraktivität führt. Die unterschiedliche Frequenz und Phasen der Speicherzugriffe durch die unterschiedlichen Ströme führt zu Zeiten, in denen zahllose Zugriffe gleichzeitig anhängig sein können, und zu anderen Zeiten, in denen sehr wenige Zugriffe anhängig sein können. Eine Lösung für dieses Problem ist es, einfach zu fordern, daß die Speichersysteme die Höchstgeschwindigkeit der Aktivität unterstützen, wobei diese Lösung jedoch offensichtlich nicht kosteneffektiv ist.
  • Zurück in 4 spricht der virtuelle Speichermanager der vorliegenden Erfindung das oben erwähnte Problem an durch Ausgleichen der Speicheraktivität durch Einfügen eines Rings aus Puffern zwischen jedem Client und dem Dateisystem. Jeder Medienstrom ist mit einem anderen Puffer ring 405, der von einem Strommanager 404 verwaltet wird, verknüpft. Der Strommanager 404 verknüpft einen Ring von Datenpuffern zwischen dem Anforderer von kontinuierlichen Medien und den Plattenuntersystemen. Die Anzahl von Puffern in einem Ring wird bestimmt gemäß der vereinbarten Garantierate des verknüpften Medienstroms und der Charakteristika des Speichersystems, so daß die garantierte Geschwindigkeit immer erfüllt ist. Die Pufferringe 405 nutzen die Tatsache aus, daß der Videostrom inhärent sequentiell ist und das Dateisystem Speicheranforderungen vorher in eine Warteschlange stellen läßt. Dieser Ansatz erlaubt es, daß weitere Anforderungen befriedigt werden während Pausen, wobei die Belastung von Höchstwerten zu Talsohlen verschoben wird und die Speicheraktivität über der Zeit geglättet wird.
  • Jeder Ring 405 aus N Puffern wird verwendet, um die nächsten N Blöcke des kontinuierlichen Medienstroms, auf die durch den Anforderer zugegriffen wird, zu halten. Sobald die Daten eines Puffers im Ring von dem Anforderer verbraucht sind, wird ein Zugriff zu dem geeigneten Plattenscheduler 408 in die Warteschlange gestellt, um den jetzt leeren Puffer zu füllen, um den leeren Puffer mit dem nächsten Block für den Medienstrom zu füllen. Anforderungen, Puffer von Pufferringen 405 zu füllen (oder zu leeren), werden von dem Dateisystem 406 auf den geeigneten Plattenscheduler 408 abgebildet. Das Dateisystem 406 bildet logische Blöcke auf physikalische Blöcke in den Speichersystemen 204 ab. Das Dateisystem 406 kann eine Abbildung von logischen auf physikalische Blockorte aufbewahren (z.B. eine Inode). Da Anforderungen für mehrere Ströme in jedem Plattenscheduler 408 in eine Warteschlange gestellt werden können, muß das System sicherstellen, daß zukünftige Anforderungen von einem Strom nicht erfüllt werden, bevor eiligere Anforderungen von einem anderen Strom erfüllt werden, so daß die garantierte Geschwindigkeit für jeden Strom beibehalten werden kann. Um dieses Ziel zu verwirklichen, werden Deadlines mit jeder zu dem Speicher des Systems übermittelten Anforderung verknüpft. Das System berechnet die Deadline, so daß sie mit der Zeit zusammenfällt, die ein Puffer benötigt durch Aufzeichnen der Stromratenblockgröße und der Anzahl von existierenden nicht-verbrauchten Puffern. Wenn eine Anforderung für einen leeren Puffer in eine Warteschlange gestellt wird, wird eine Deadlinezeit in eine Warteschlange gestellt mit der Anforderung in der geeigneten Deadlinewarteschlange 410 in dem Plattenscheduler 408. Diese Deadlinezeit zeigt die letzte Zeit an, zu der der Puffer gefüllt werden kann und immer noch die garantierte Geschwindigkeitsanforderung des bestimmten Stroms erfüllt. Die Deadlinezeit wird berechnet zu: current_time + (N – 1) * buf_time, wobei N die Anzahl von Puffern im Pufferring 405 ist und buf_time die minimale Zeit ist, in der ein Anforderer einen Puffer verbrauchen kann, ohne die zugesagte garantierte Geschwindigkeit zu überschreiten. Der Plattenscheduler 408 muß nun die Warteschlangenanforderung an das bestimmte Speichersystem 204 in einer Ordnung ausgeben, die die Deadlines erfüllt, die mit den Anforderungen verknüpft sind. Der Plattenscheduler plaziert die Anforderungen von den kontinuierlichen Medienanforderern in jede Deadlinewarteschlange 410 und behält eine Ordnung bei vom frühesten zum spätesten, so daß Anforderungen mit der frühesten Deadline zuerst erfüllt werden.
  • Damit das System eine Deadline eines Stroms erfüllen kann, muß es einen ausreichend großen Pufferring einstellen, um sicherzustellen, daß jede Anforderung weit genug vor seiner Dead line in dem Speichersystem in die Warteschlange gestellt werden kann, so daß die schlimmstmögliche Servicezeit für die Anforderung die Deadline nicht überschreiten wird. Da die Worst-Case-Servicezeit eine Funktion der summierten Belastung auf dem System ist und die summierte Belastung ein direktes Ergebnis der summierten Stromrate (unabhängig von der tatsächlichen Stromratenmischung) ist, ist die Pufferringgröße für einen bestimmten Strom auf einem gegebenen Speichersystem eine Funktion dieser Rate des bestimmten Stroms und ist unabhängig von den Stromraten anderer Ströme in der Mischung. Ist diese Unabhängigkeit gegeben, so können geeignete Ringgrößen für verschiedene Stromraten erzeugt werden bei einer Speichercharakterisierungszeit, wie unten detaillierter ausgeführt wird.
  • In 6 wird ein Flußdiagramm bereitgestellt, das den konstanten Daten-, variablen Zeitzugriffsmechanismus, der Pufferringe 405 und Deadlinewarteschlangen 410 einsetzt, darstellt. Wenn ein neuer Strom initiiert wird, bestimmt der Strommanager für den neuen Strom die garantierte Stromrate und die Blockgröße für den Strom wie in 602 angezeigt. Der Strom wird an die angeforderte Datei durch das Dateisystem 406 angehängt und der Strommanager 404 erzeugt den Pufferring 405 für den neuen Strom. Anforderungen für Blöcke von der verknüpften Datei werden dann zu den geeigneten Speichersystemen ausgegeben, um den Pufferring zu füllen. Jeder Puffer kann für einen Block in der Größe dimensioniert sein. Nachdem der Pufferring gefüllt ist (606), kann der Datenstrom beginnen, wie in 608 angezeigt.
  • Wenn ein Puffer durch den Stromanforderer verbraucht wird, wird eine Blockanforderung zusammen mit einer Deadlinezeit ausgegeben, um den jetzt verbrauchten Puffer zu füllen, wie in 610 angezeigt ist. Die Blockanforderung und die Deadlinezeit werden in die Deadlinewarteschlange 410 für das geeignete Speichersystem entsprechend dem Ort, wo der angeforderte Block lokalisiert ist, eingestellt. Die Anforderungen werden in der Deadlinewarteschlange von der frühesten zur spätesten Deadlinezeit sortiert. Anforderungen werden von der Deadlinewarteschlange entsprechend der frühesten Deadline ausgegeben, wie in 612 gezeigt. Während des Strömens wird nacheinander auf die Puffer des Pufferrings in einer zyklischen Art und Weise zugegriffen. Die Deadlinezeit stellt sicher, daß jeder Puffer gefüllt wird, bevor er von dem Stromanforderer entsprechend der garantierten Geschwindigkeit benötigt wird. Der Pufferring und die verknüpften Deadlinezeiten profitieren von der inhärenten sequentiellen Natur des Multimediastroms, um Anforderungen vorher in die Warteschlange zu stellen. Dies erlaubt es, daß zukünftige Anforderungen während Talsohlen der Speicheraktivität erfüllt werden, wodurch die Belastung von den Spitzenwerten zu Tälern verschoben werden und die Speicheraktivität über der Zeit geglättet wird. Man bemerke, daß, während 6 in Begriffen von Stromleseanforderungen beschrieben wurde, derselbe Mechanismus für Schreibstromanforderungen eingesetzt werden kann. Da jeder Puffer mit einem Block aus Stromdaten gefüllt wird, kann eine Anforderung und eine Deadline in eine Deadlinewarteschlange gestellt werden, um den Block in das Speichersystem zu schreiben.
  • Der Videospeichermanager 206 unterstützt eine Mehrzahl von unterschiedlichen Medienstromclients mit unterschiedlichen garantierten Raten. Ein anderer Medienstrommanager 404 und Ringpuffer 405 können für jeden Strom bereitgestellt werden. Ein getrennter Plattenscheduler 408 und eine Deadlinewarteschlange 410 werden für jedes Speichersystem 204 bereitgestellt. Somit kann jede Deadlinewarteschlange 410 Anforderungen beinhalten entsprechend den verschiedenen unterschiedlichen Medienströmen. Die Deadlinezeiten für jede Anforderung in den Deadlinewarteschlangen 410 werden alle relativ zu einer gemeinsamen gegenwärtigen Zeit berechnet, so daß die früheste Deadline von irgendeinem Anforderer, die in einer bestimmten Deadlinewarteschlange abgelegt ist, als erstes ausgegeben wird. Die Zeit zwischen den Anforderungen, die für einen bestimmten Strom erfüllt werden, variiert abhängig von der Anzahl von anderen anhängigen Anforderungen, die verknüpfte Deadlinezeit stellt jedoch sicher, daß die garantierte Geschwindigkeit erfüllt wird.
  • Zusätzlich zu dem Bereitstellen von geschwindigkeitsgarantierten kontinuierlichen Medienströmen kann es wünschenswert für einen Multimediaserver sein, Zugriff auf in dem Speichersystem gespeicherte Daten in einer priorisierten, jedoch nicht geschwindigkeitsgarantierten Art und Weise bereitzustellen. Solche Zugriffe sollten nicht die Garantien, die für die geschwindigkeitsgarantierten kontinuierlichen Medienströme gegeben wurden, beeinträchtigen. Beispielsweise kann ein NFS- oder FTP-Anforderer es wünschen, auf eine Datei zuzugreifen. Typischerweise sind solche Zugriffe Nicht-Echtzeit und keine Geschwindigkeitsgarantie ist erforderlich. Solche Zugriffe können erfüllt werden unter Verwendung von Restplattenbandbreite, die verfügbar ist, nachdem alle geschwindigkeitsgarantierten Zugriffe erfüllt wurden. Jegliche Speicherbandbreite, die verbleibt, nachdem alle geschwindigkeitsgarantierten Anforderungen erfüllt wurden, wird einem allgemeinen Pool zugewiesen. Verfügbare Bandbreitenclients können auf diese Bandbreite zugreifen auf einer "first come, first served"-Basis. Der Videospeichermanager bestimmt dynamisch die Menge der verfügbaren Bandbreite. Jegliche Bandbreite von einem nicht verwendeten geschwindigkeitsgarantierten Kontrakt kann Teil des Pools verfügbarer Bandbreite werden.
  • In 7 ist ein System dargestellt, das sowohl geschwindigkeitsgarantierte Ströme als auch verfügbare nicht-geschwindigkeitsgarantierte Ratenzugriffe bereitstellt. Wie in 7 gezeigt, kann der Videospeichermanager 206 Anfragen von sowohl geschwindigkeitsgarantierten Clients als auch von verfügbaren Ratenclients akzeptieren. Ein Strompuffer 712 kann mit jedem geschwindigkeitsgarantierten Client verknüpft sein. In einer bevorzugten Ausführungsform ist jeder Strompuffer 712 ein Pufferring, wie in Bezug auf die 4 und 6 beschrieben. Anforderungen mit garantierter Geschwindigkeit werden durch das Dateisystem 406 auf einen geeigneten Plattenscheduler 408 abgebildet und in eine garantierte Geschwindigkeitswarteschlange 706 gestellt. In einer bevorzugten Ausführungsform ist die garantierte Geschwindigkeitswarteschlange eine Deadlinewarteschlange, wie in Bezug auf die 4 und 6 beschrieben. Verfügbare Ratenanforderungen, die nicht-geschwindigkeitsgarantiert sind, werden ebenso durch das Dateisystem 406 auf dem geeigneten Plattenscheduler für das Speichersystem, in dem die angeforderten Daten lokalisiert sind, abgebildet. Ein Datenpool 704 kann als gemeinsam genutzter Puffer für die verfügbaren Ratenanforderungen bereitgestellt werden. Verfügbare Ratenanforderungen werden in eine Prioritätswarteschlange 708 gestellt, die mit jedem Speichersystem verknüpft ist. Eine andere Quelle von Dateianforderungen kann das Dateisystem 406 selbst sein. Diese Anforderungen können Anforderungen für Meta daten beinhalten, die erforderlich sind, um die verschiedenen Datenströme (z.B. Blöcke, die Listen von Blöcken zum Strom, wie z.B. indirekte Blöcke) unterstützen. Dieser Typ von Metadatenanforderungen kann zeitkritisch darin sein, daß der Datenstrom stoppen wird, falls ein Stromzeigerblock (indirekter Block) auf dem nächsten Datenblock zu dem Strom nicht verfügbar ist. Somit trägt die Anforderung für zeitkritische Metadaten ebenso Deadlines und kann direkt zusammen mit den Datenstromanforderungen in der garantierten Geschwindigkeit oder der Deadlinewarteschlange 706 geplant sein. Das Dateisystem überwacht konstant seinen Fortschritt mit Hilfe des gegenwärtigen indirekten Blocks. Bei einer geeigneten Schwelle berechnet es eine Deadline und plant die Aufnahme des nächsten indirekten Blocks von dem Speichersystem. Andere Metadatenanforderungen können nicht kritisch sein, wie z.B. andere Typen des Dateimanagements und der Lese- und Schreiboperationen, die nicht mit dem Strom in Bezug stehen (z.B. das Auflisten von Dateien im Dateisystem). Diese nichtzeitkritischen Metadatenanforderungen werden in den Prioritätswarteschlangen 708 aufgereiht. Ein Metadatenpool 702 kann mit dem Dateisystem 406, von dem die Metadatenanforderungen ausgegeben werden, verknüpft sein.
  • Obgleich andere Metadatenanforderungen und Anforderungen nach verfügbarer Bandbreite keine strikten Servicezeitanforderungen haben, können sie eine Prioritätsbeziehung haben. Beispielsweise können Metadatenschreibzugriffe als höchste Priorität angesehen werden, da ihre Durchführung wesentlich für das Schließen einer bestimmten Datenstromepisode sein kann. Metadatenlesevorgänge können in der Priorität folgen, um die rechtzeitige Verarbeitung von Dateilisten, Dateierzeugungen usw. sicherzustellen. Verfügbare I/O-Anforderungen können die niedrigste Priorität haben und können erledigt werden, wenn Ressourcen verfügbar sind. Anforderungen in den Prioritätswarteschlangen werden von der höchsten zur niedrigsten Priorität geordnet.
  • Der Plattensteuerprogrammechanismus gibt die in die Warteschlange gestellten Anforderungen an das Speichersystem in einer Reihenfolge aus, die die Deadlines, die mit den Anforderungen verknüpft sind, erfüllt, und weist ebenso Restbandbreite nach den garantierten Anforderungen den nichtgarantierten Anforderungen in einer Art und Weise zu, die mit ihren verknüpften Prioritäten übereinstimmt. Ein Bandbreitenzuweiser 710 kann eingesetzt werden, um einen bestimmten Teil der Speicherbandbreite den geschwindigkeitsgarantierten Anforderungen und den verbleibenden Bandbreitenteil den nicht-geschwindigkeitsgarantierten Prioritätsanforderungen zuzuweisen. Bei der Speichercharakterisierungszeit wird ein konfigurierbarer Prozentsatz der Bandbreite des Speichersystems reserviert für das Beachten der nicht-geschwindigkeitsgarantierten Prioritätsanforderungen. Beispielsweise können 90% der Bandbreite für die geschwindigkeitsgarantierten Anforderungen von der geschwindigkeitsgarantierten Warteschlange 706 reserviert sein und die verbleibenden 10% können den nicht-geschwindigkeitsgarantierten Anforderungen von der Prioritätswarteschlange 708 zugewiesen werden. Basierend auf den Prozentanteilen, die für geschwindigkeitsgarantierte und nicht-geschwindigkeitsgarantierte Anforderungen reserviert sind, wählt das Plattensteuerprogramm eine Anfrage von der einen oder der anderen Warteschlange, um sie zu dem Betriebssystem weiterzureichen, um es vom Speichersystem zu befriedigen. Wenn die ausgewählte Anforderungswarteschlange leer ist, versucht das Steuerprogramm, eine Anforderung von der anderen Warteschlange zu nehmen, was somit gestattet, daß sowohl nicht-geschwindigkeitsgarantierte als auch geschwindigkeitsgarantierte Anforderungen nicht verwendete Speicherbandbreite aufnehmen.
  • In einer bevorzugten Ausführungsform werden Anforderungen von der Deadline- und der Prioritätswarteschlange zu dem Speichersystem gemäß einem Turnus migriert. Ein Beispiel eines Turnus bzw. Kreislaufs ist in 8 gezeigt. Ein Kreislauf besteht aus einer festen Anzahl von Slots, wobei jeder Slot entweder der Deadlinewarteschlange oder der Prioritätswarteschlange im Verhältnis der gewünschten Zuweisung von Plattenbandbreite zwischen den garantierten und den nichtgarantierten Zugriffen zugewiesen ist. In 8 zeigen die Slots, die mit einem D markiert sind, zu der Deadlinewarteschlange, und Slots, die mit einem P markiert sind, zeigen auf die Prioritätswarteschlange. Der Slot wird wiederholt durchquert und eine Anforderung wird aus einer der Warteschlangen gemäß dem gegenwärtigen Slot ausgewählt. In dem Beispiel von 8 wird die Bandbreite so aufgeteilt, daß der Plattenscheduler zuerst nach der Deadlinewarteschlange schaut für 13 von 16 Speicherzugriffen und als erstes in die Prioritätswarteschlange schaut für die verbleibenden 3 der 16 Zugriffe. Diese Zuweisung ist nur ein Beispiel und in einer bevorzugten Ausführungsform kann die Zuweisung 9 von 10 Slots sein, die auf die Deadlinewarteschlange zeigen, und 1 von 10 Slots, der auf die Prioritätswarteschlange zeigt. In einer bevorzugten Ausführungsform sind die Slots, die für jede Verwendung zugewiesen sind, so gleichmäßig wie möglich über den Zyklus verteilt.
  • In einer bevorzugten Ausführungsform werden Anforderungen von der Deadline- und der Prioritätswarteschlange gemäß den gegenwärtigen Slots zu dem Speichersystem migriert und der Zyklus setzt dann mit dem nächsten Slot fort. Falls die Warteschlange, die der gegenwärtige Slot anzeigt, leer ist, wird ein Eintrag von der anderen Warteschlange gewählt, falls diese nicht leer ist. Somit können nicht-geschwindigkeitsgarantierte Anforderungen tatsächlich mehr als ihre zugewiesene Bandbreite erzielen, falls die volle geschwindigkeitsgarantierte Bandbreite durch die Deadlinewarteschlange nicht benutzt wird.
  • In 9 wird ein Flußdiagramm bereitgestellt, das ein Verfahren darstellt für das Bereitstellen von Speicherzugriff für mehrere kontinuierliche Medienströme mit einer garantierten Geschwindigkeit und für das Bereitstellen von Speicherzugriffen für nicht-geschwindigkeitsgarantierte Anforderungen. Ein Teil der Speicherbandbreite wird den geschwindigkeitsgarantierten Anforderungen zugewiesen und die Restbandbreite wird den nicht-geschwindigkeitsgarantierten Anforderungen zugewiesen, wie in 902 gezeigt. Die geschwindigkeitsgarantierten Anforderungen werden in einer geschwindigkeitsgarantierten Warteschlange aufbewahrt und die nicht-geschwindigkeitsgarantierten Anforderungen werden in einer Prioritätswarteschlange aufbewahrt, wie in 904 angezeigt. Die geschwindigkeitsgarantierten Anforderungen werden in die geschwindigkeitsgarantierte Warteschlange eingestellt und von dort ausgegeben in einer Art und Weise, daß sie in einer rechtzeitigen Art und Weise erfüllt werden, um die bestimmte garantierte Geschwindigkeit für jeden Strom zu erfüllen. Die nicht-geschwindigkeitsgarantierten Anforderungen können in der Prioritätswarteschlange geordnet sein, so daß Anforderungen höherer Priorität vor Anforderungen niedriger Priorität erfüllt werden. Das System wählt dann eine Warteschlange aus, um eine Anforderung auf das Speichersystem auszugeben entsprechend einem gegenwärtigen Slot eines Zyklusses, der die Speicherbandbreite gemäß der Bandbreitenzuweisung aufteilt, wie bei 906 gezeigt. Falls die ausgewählte Warteschlange einen Eintrag enthält, dann wird diese Anforderung von der ausgewählten Warteschlange ausgegeben, wie in 908, 910 und 912 gezeigt. Falls die ausgewählte Warteschlange leer ist, schaut das System in der anderen Warteschlange nach einer auszugebenden Anforderung, wie in 908 und 914 gezeigt ist. Falls die andere Warteschlange nicht leer ist, wird ein Eintrag entfernt und ausgegeben, wie in 916 und 912 gezeigt ist. Das System durchläuft dann den Zyklus zum nächsten Slot, wie in 918 angezeigt, und wiederholt den Warteschlangenauswahlprozeß. Falls die andere Warteschlange bei 914 leer ist, wird der Prozeß wiederholt, bis eine Warteschlange gefunden wird, die einen Eintrag enthält. In einer Ausführungsform wird der Slot nicht weitergerückt, wenn beide Warteschlangen leer sind. Alternativ kann der Slot vorgerückt werden, falls beide Warteschlangen leer sind.
  • In 10 wird ein Videospeichermanager dargestellt, der die Mechanismen kombiniert, wie in Bezug auf die 4 und 7 beschrieben wurde. Der Speichermanager von 10 unterstützt mehrere kontinuierliche Medienströme, in denen Clients einen Zugriff auf eine Datei mit einer garantierten Bitrate anfordern. Jedem Stromclient wird es gestattet, die Geschwindigkeit seines Zugriffs auf seine Datei von jeder Geschwindigkeit bis zu der garantierten Geschwindigkeit zu variieren. Zusätzlich unterstützt der Speichermanager von 10 verfügbare Bandbreitenclients. Ein bestimmter Abschnitt der Speicherbandbreite wird der verfügbaren Bandbreite oder den nicht-geschwindigkeitsgarantierten Clients, wie z.B. der verfügbare Geschwindigkeitsclient 752, zugewiesen. Zusätzlich kann jegliche Bandbreite, die nicht von den geschwindigkeitsgarantierten Clients verwendet wird, für die Clients mit verfügbarer Geschwindigkeit verfügbar sein. Der Videospeichermanager von 10 kann somit jegliche Mischung aus garantierten Geschwindigkeitsclients unterstützen, während dieselbe aufsummierte Bandbreite geliefert wird, und kann ebenso verfügbare Geschwindigkeitsclients einer nichtgarantierten Geschwindigkeit unterstützen.
  • Wie in Bezug auf 4 erörtert, kommuniziert jeder geschwindigkeitsgarantierte Client mit einem verknüpften Strommanager 404, der einen Pufferring 405 für den bestimmten Strom hält. Der Pufferring wird verwendet, um die nächsten N Blöcke des kontinuierlichen Medienstroms, auf die durch den Anforderer zugegriffen wird, zu halten, wobei N die Anzahl von Puffern im Pufferring ist. Jeder Puffer kann für einen Datenblock pro Puffer gleich dimensioniert sein. Sobald die Daten eines Puffers in dem Ring durch den Anforderer verbraucht sind, wird eine Anforderung für den jetzt leeren Puffer zusammen mit einer Deadlinezeit mit dem geeigneten Plattensteuerprogramm 408, wie durch das Dateisystem 406 bestimmt, in die Warteschlange gestellt. Die Deadlinezeit zeigt die späteste Zeit an, zu der eine Pufferanforderung erfüllt werden kann und immer noch die geschwindigkeitsgarantierten Anforderungen des Stroms erfüllen kann. Die Deadlinezeit kann berechnet werden zu: deadline_time = current_time + (N – 1) * buff_time,wobei N die Anzahl von Puffern im Ring und buff_time eine Minimalzeit ist, in der der Anforderer einen Puffer verbrauchen kann, ohne seine vereinbarte garantierte Geschwindigkeit zu überschrei ten. Gleichzeitig mit dem in-die-Warteschlange-Stellen der garantierten Geschwindigkeitsanforderung mit dem geeigneten Plattensteuerprogramm 408 werden priorisierte, jedoch nicht-geschwindigkeitsgarantierte Anforderungen ebenso in die Warteschlange gestellt. Eine nicht-geschwindigkeitsgarantierte Anforderung trägt keine Deadline, trägt jedoch Prioritäten. Die Plattenscheduler geben die in die Warteschlange gestellten Anforderungen zu dem Speichersystem in einer Reihenfolge aus, die die Deadlines, die mit den Anforderungen verknüpft sind, erfüllt, während ein hoher Anteil der Plattensystembandbreite erzielt wird und die Restplattenbandbreite nach den garantierten Anforderungen den nichtgarantierten Anforderungen in einer Art und Weise zugewiesen wird, die konsistent zu deren Prioritäten ist.
  • Garantierte Anforderungen von kontinuierlichen Stromanforderern werden in einer nach der frühesten Deadline geordneten Warteschlange 410 in dem geeigneten Plattenscheduler plaziert. Nichtgarantierte Geschwindigkeitsanforderungen werden in eine getrennte, nach der höchsten Priorität geordnete Warteschlange 708 plaziert. Zusätzlich zu einer Anfrage von verfügbaren Ratenclients 752 und garantierten Geschwindigkeitsclients 754 können Anforderungen ebenso von dem Dateisystem selbst kommen. Einige Anforderungen von dem Dateisystem können zeitkritisch sein, wie z.B. Anforderungen nach Blöcken, die Zeiger zu zukünftigen Strömungsblöcken enthalten. Deadlines sind mit diesen Anforderungen verknüpft und sie werden in die geeignete Deadlinewarteschlange 410 eingefügt. Andere Anforderungen, wie z.B. nichtzeitkritische Dateiverwaltungsanforderungen, werden einer Priorität zugewiesen und in die geeignete Prioritätswarteschlange 708 eingefügt. Die Dateisystemanforderungen können in einem Metapool 702 gepuffert werden. Verfügbare Geschwindigkeitsclientanforderungen können in einem Datenpool 704 gepuffert werden.
  • Die Anforderungen werden von der Deadline- und der Prioritätswarteschlange durch einen Bandbreitenzuweiser 710 entsprechend einem Zyklus zugewiesen, der Bandbreite gemäß einer konfigurierbaren Zuweisung zuweist. Beispielsweise können 90% einer Bandbreite eines bestimmten Speichersystems der Deadlinewarteschlange und damit geschwindigkeitsgarantierten Stromclients zugewiesen werden und 10% können der Prioritätswarteschlange für verfügbare Geschwindigkeitsclients zugewiesen werden. Der Bandbreitenzuweiser 710 kann Anforderungen von der Deadline- und der Prioritätswarteschlange zu einer Suchneuordnungswarteschlange 750 migrieren. Die Anforderung kann in der Suchneuordnungswarteschlange entsprechend der Position des nachgefragten Datenblocks auf der Speichereinrichtung umgeordnet werden. Die Suchneuordnungswarteschlange kann eine konfigurierbare maximale Größe haben. Anforderungen von der Deadline- und Prioritätswarteschlange werden gemäß dem gegenwärtigen Zyklusslot zu der Suchneuordnungswarteschlange übertragen, wann immer die Suchneuordnungswarteschlange nicht mit ihrer maximalen Größe gefüllt ist. Jede Migration wird von der Warteschlange, die von dem gegenwärtigen Slot des Zyklusses angezeigt wird, durchgeführt und der Zyklus setzt dann mit dem nächsten Slot fort. Falls die Warteschlange, die von dem Slot angezeigt wird, leer ist, wird ein Eintrag von der anderen Warteschlange gewählt, falls diese nicht leer ist. Der migrierte Eintrag wird in der Suchneuordnungswarteschlange neu geordnet, so daß alle Anforderungen auf einer Seite des Eintrags sich auf Datenblöcke mit Speicheradressen beziehen, die größer oder gleich seiner Adresse sind, und alle Einträ ge auf der anderen Seite der Warteschlange Datenblöcke anfordern mit Plattenadressen, die geringer oder gleich seiner Adresse sind.
  • Jede Suchneuordnungswarteschlange 750 wird gleichzeitig kontinuierlich in einer Richtung durchquert (d.h. in Richtung ansteigender oder abfallender Plattenadresse), bis keine weiteren Einträge in der Warteschlange in dieser Richtung existieren, und dann wird die Richtung umgekehrt und der Durchlauf wiederaufgenommen. Der Plattenscheduler gibt somit Anforderungen von der Suchneuordnungswarteschlange zu dem Speichersystem aus in der Ordnung der Plattenadressen und setzt mit der nächsten Anforderung fort, wenn die vorher ausgegebene Anforderung durch das Plattensystem vollständig durchgeführt wurde.
  • Da die Deadline- und Prioritätswarteschlangen Anforderungen enthalten von vielen unterschiedlichen Strömen und Clients, ist die Abfolge von Blöcken, die von diesen Warteschlangen herrühren, im wesentlichen zufällig. Falls diese Anforderungen entsprechend ihrer Ordnung in der Deadline- und Prioritätswarteschlange abgearbeitet werden, würde aus dem zufälligen Muster von Anforderungen ein übermäßiger Plattensuchoverhead herrühren. Die Suchneuordnungswarteschlange 750 verbessert die Suchzeit durch das Neuordnen der Anforderung von den Deadline- und Prioritätswarteschlangen entsprechend ihrer Plattenposition.
  • In 11 wird ein Flußdiagramm bereitgestellt, das den Betrieb der Suchneuordnungswarteschlange 750 darstellt. Wie in 1102 dargestellt, wird, wenn die Suchneuordnungswarteschlange nicht voll ist, eine Anforderung von entweder der Deadline- oder der Prioritätswarteschlange entsprechend dem gegenwärtigen Zyklusslot migriert. Falls die angezeigte Warteschlange leer ist, wird die Anforderung von der anderen Warteschlange entnommen, falls diese Warteschlange nicht leer ist, wie in 1104 angezeigt. Die migrierte Anforderung wird in die Suchneuordnungswarteschlange entsprechend der Plattenadresse des angefragten Blocks eingefügt, so daß Anforderungen in der Suchneuordnungswarteschlange nach ansteigenden oder abfallenden Plattenadressen sortiert sind. Gleichzeitig wird die Suchneuordnungswarteschlange in einer Richtung durchlaufen und die nächste Anforderung wird zu dem Plattensystem ausgegeben, wie in 1108 angezeigt. Wenn das Ende der Suchumordnungswarteschlange erreicht wurde, dann wird die Richtung des Warteschlangendurchlaufs umgekehrt, wie in 1110 und 1114 angezeigt. Falls das Ende der Suchneuordnungswarteschlange nicht erreicht wurde, dann wird die gegenwärtige Durchquerungsrichtung beibehalten, wie in 1110 und 1112 angezeigt. Sobald die gegenwärtige Anforderung durch das Plattensystem erfüllt wurde, wird die nächste Anforderung in der Suchneuordnungswarteschlange zu dem Plattensystem ausgegeben, wie in 1116 und 1108 angezeigt.
  • Wie vorher erwähnt, sind Blockanforderungen, so wie sie von dem Speichersystem gesehen werden, inhärent zufällig, da das Speichersystem mit Anforderungen von vielen Strömen konfrontiert wird. Bei dieser gegebenen Zufälligkeit wäre es nicht effizient, sequentiell Blöcke für eine bestimmte Datei zuzuweisen. Da I/O-Zylinder einer Platte häufig unterschiedliche Übertragungsraten haben, springt die Blockzuweisung innerhalb einer bestimmten Datei vor und zurück zwischen I/O-Zonen der Platte. Somit werden für eine bestimmte Stromdatei Blockspeicheranforderungen Plattenadressen zugewiesen, so daß die Blöcke in alternierenden I/O-Zonen der Platte lokalisiert sein werden.
  • Dies stellt sicher, daß alle Dateien einen durchschnittlichen Speicherdurchsatz sehen und daß keine Datei, die sich im Datenstrom befindet, vollständig auf einer Zone der Platte mit niedriger Leistung landen könnte.
  • Wie oben erwähnt, muß der Videospeichermanager den Zugang von neuen kontinuierlichen Strömen steuern, um sicherzustellen, daß die aufsummierten garantierten Stromgeschwindigkeiten nicht die aufsummierte Speicherbandbreite, die den kontinuierlichen Medienströmen zugewiesen ist, überschreitet. Bevor irgendein Datenstrom beginnt, wird das Speichersystem charakterisiert, um dessen Leistung oder Bandbreite zu bestimmen. Sobald eine Speichersystembandbreite bestimmt wurde, bestimmt, wenn der Datenstrom beginnt und sobald irgendein neuer Strom angefordert wird, der Videospeichermanager, ob oder ob nicht die angeforderte Bitgeschwindigkeit die verbleibende verfügbare Bandbreite, die den kontinuierlichen Strömen zugewiesen ist, überschreiten würde. Falls dies der Fall ist, wird die Anforderung abgelehnt und der Anforderer ist frei, seine Anforderung zu einem späteren Zeitpunkt oder mit einer geringeren Bitratenanforderung erneut zu übermitteln. Falls genügend Bandbreite existiert, wird die Anforderung gewährt und ein Strommanager erzeugt einen verknüpften Pufferring, wie oben erörtert.
  • Da eine Abfolge von Anforderungen, die dem Speichersystem dargestellt werden während des Datenstroms, im wesentlichen zufällig ist, kann das Modellieren der Strombelastung, um die Speicherbandbreite zu charakterisieren, vereinfacht werden. Diese Leistung kann charakterisiert werden mit einer künstlichen Belastung, die die Charakteristika einer typischen Belastung widerspiegelt. Die künstliche Belastung kann von einer rein zufälligen Abfolge von Blöcken variieren, um zu berücksichtigen, daß Blöcke für irgendeine gegebene Datei in alternierenden I/O-Plattenzonen plaziert sein können. Somit kann eine repräsentative Last konstruiert sein durch Beschränken des Dateisystems, um sequentielle Blöcke in einer in Zonen aufgeteilten zufälligen Art und Weise zuzuweisen. Der Plattenblockadreßbereich kann in zwei Hälften aufgeteilt werden und die sequentiellen Dateiblockzuweisungen können von Zufallspositionen innerhalb einer Zone, die sich zwischen den beiden Zonen abwechselt, ausgewählt werden. Die Plattenleistung kann charakterisiert werden unter Verwendung dieser künstlichen Last und kann abgesenkt werden, um einen Spielraum bereitzustellen. Die Größe der Absenkung kann als der primäre Absenkungsparameter bezeichnet werden. Der abgesenkte Bandbreitenwert wird dann mit dem Bruchteil der Gesamtbandbreite, die in den Zyklusprozeß für die geschwindigkeitsgarantierten Anforderer zugewiesen wird, multipliziert. Die resultierende geschwindigkeitsgarantierte Bandbreite kann dann erneut um einen sekundären Absenkungsparameter abgesenkt werden, um eine zusätzliche Deadlinesicherheitsspanne zu erlauben. Das Ergebnis ist die maximale Eingangsbandbreite für die Summe aller geschwindigkeitsgarantierten Anforderungen. Die geschwindigkeitsgarantierten Anforderer können dann zugelassen werden, bis sie die gesamte geschwindigkeitsgarantierte Eingangsbandbreite verbraucht haben.
  • Die Speichercharakterisierung für die Eingangssteuerung ist in 12 zusammengefaßt. Eine künstliche Last wird erzeugt durch Zuweisen von Blöcken in einer in Zonen aufgeteilten Zufallsweise, so daß sequentielle Dateiblockzuweisungen aus Zufallspositionen innerhalb einer Zone, die sich zwischen einer I/O-Plattenzone abwechselt, wie in Figur 1202 gezeigt ist, ausgewählt wird. Die Speichersystembandbreite wird bestimmt unter Verwendung dieser künstlichen Last, wie in 1204 angezeigt ist. Die bestimmte Bandbreite wird durch einen primären Absenkungsparameter abgesenkt, um eine bestimmte Spanne bereitzustellen, wie in 1206 angezeigt. Die abgesenkte Bandbreite wird gemäß einem Abschnitt der Bandbreite, der für die geschwindigkeitsgarantierte Anforderungen zugewiesen ist, reduziert, wie in 1208 gezeigt ist. Diese anteilige Bandbreite kann dann erneut abgesenkt werden durch einen sekundären Absenkungsparameter, um eine zusätzliche Deadlinespanne bereitzustellen, wie in 1210 gezeigt ist. Die resultierende Bandbreite kann dann als eine maximale aufsummierte Eingangsbandbreite für geschwindigkeitsgarantierte Ströme verwendet werden, wie in 1212 gezeigt ist.
  • Der Charakterisierungsprozeß kann ebenso das Bestimmen von geeigneten Pufferringgrößen beinhalten für verschiedene Stromraten entlang des gewünschten Betriebsbereichs des Speichersystems. Die optimale Anzahl von Puffern für einen Pufferring kann bestimmt werden für eine Vielzahl von Stromraten wie folgt. In 13 erzeugt die Charakterisierungsroutine für jede bestimmte Stromrate genug Stromsimulatoren, um den gesamten aufsummierten Durchsatz des Speichersystems zu verbrauchen, wie in 1302 angezeigt. Für jeden Stromsimulator wird ein Ringpuffer modelliert, wie in 1304 angezeigt. Jeder Stromsimulator erzeugt dann Blockanforderungen, die zwischen Zufallsblöcken zwischen Zonen alternieren, wie in 1306 angezeigt. Die simulierten Ströme laufen dann ab bis Ablauf einer Testzeit oder bis irgendeiner der Ströme einem Unterlauf unterliegt. Ein Unterlauf tritt auf, wenn eine Anforderung vor der Anforderungsdeadline nicht erfüllt wird. In einer bevorzugten Ausführungsform kann ein Vorfüllmargenparameter eingestellt sein, so daß ein Unterlauf auftritt, wenn eine Pufferanforderung in der Vorfüllmargenzeit vor der Anforderungsdeadline nicht erfüllt wird. Die Anzahl von Ringpuffern in dem Modell kann eingestellt werden und die Simulation kann wiederholt werden wie bei 1308 und 1310 gezeigt, bis die korrekte Ringpuffergröße erzielt wird. Die Gesamtsimulation kann dann wiederholt werden für eine andere Stromrate, wie in 1312 angezeigt. Somit kann eine Tabelle von geeigneten Ringpuffergrößen konstruiert werden während der Charakterisierung für eine Vielzahl von Stromgeschwindigkeiten bis zu der maximalen Stromrate, die von dem System unterstützt wird. Während des Betriebs kann, wann immer ein neuer Strom zugelassen wird, ein geeignet dimensionierter Ringpuffer für den neuen Strom erzeugt werden durch Zugreifen auf diese Tabelle.
  • Die Leistung des Videospeichermanagers kann eingestellt werden durch Einstellen einer Anzahl von Parametern wie oben erörtert. Diese Parameter sind in der folgenden Tabelle zusammengefaßt.
  • Tabelle 1 Systemcharakterisierungsparameter
    Figure 00240001
  • Figure 00250001
  • Diese Parameter können verwendet werden, um die Leistung eines Mediensteuersystems, wie z.B. das oben beschriebene System, zu konfigurieren und einzustellen. Der maximale aufrechtzuerhaltende Durchsatz des Speichersystems kann wie oben beschrieben charakterisiert werden, z.B. durch Verwenden einer künstlichen Last. Um den Betriebslastgrad des Speichersystems relativ zum maximalen Durchsatz einzustellen, kann der charakterisierte maximal aufrechtzuerhaltende Durchsatz durch den primären Absenkungsparameter abgesenkt werden. Der primäre Absenkungsparameter ist konfigurierbar und kann eingestellt werden während der Systemkonfiguration. Warteschlangen, wie z.B. die Deadlinewarteschlangen, die oben beschrieben wurden, können dimensioniert werden basierend auf dem abgesenkten maximalen Durchsatz, so wie er durch den primären Absenkungsparameter abgesenkt wurde. Der resultierende Durchsatz kann der primäre Durchsatz genannt werden. Der primäre Durchsatz kann verwendet werden für das Dimensionieren der Pufferringe, wie oben beschrieben. Der primäre Absenkungsparameter stellt eine Sicherheitsmarge für das Betriebslastniveau des Speichersystems auf Kosten der Absenkung des verfügbaren maximalen Durchsatzes bereit. Durch Einstellung des primären Absenkungsparameters während der Systemkonfiguration kann der Benutzer diesen Kompromiß einstellen, wie er für irgendeine bestimmte Anwendung des Speichersystems benötigt wird.
  • Der verfügbare I/O-Geschwindigkeitsparameter spezifiziert die Speicherbandbreite, die für die nicht-geschwindigkeitsgarantierten Anforderungen reserviert ist, wie oben in Bezug auf den D Bandbreitenzuweiser erörtert wurde. Die Größe der für nicht-geschwindigkeitsgarantierte Anforderungen reservierten Bandbreite gegenüber den geschwindigkeitsgarantierten Anforderungen kann unter Verwendung dieses Parameters konfiguriert werden. Abhängig von den Anforderungen eines Systems kann der Benutzer das Verhältnis zwischen nicht-geschwindigkeitsgarantierten und geschwindigkeitsgarantierten Anforderungen einstellen durch Einstellen dieses verfügbaren Geschwindigkeitsparameters.
  • Der sekundäre Absenkungsparameter reduziert die für geschwindigkeitsgarantierte Ströme verfügbare Bandbreite. Der primäre Durchsatz wird aufgeteilt gemäß dem verfügbaren Geschwindigkeitsparameter und der Anteil, der für geschwindigkeitsgarantierte Ströme zugewiesen ist, wird durch den sekundären Absenkungsparameter weiter reduziert, um eine zusätzliche Deadlinesicherheitsmarge bereitzustellen. Während des Betriebs können zusätzliche Ströme bis zu dem Punkt zugelassen werden, daß die Summe aller Strömungsraten vollständig den Teil des primären Durchsatzes verbrauchen, der den geschwindigkeitsgarantierten Strömen zugewiesen ist, so wie er durch den sekundären Absenkungsparameter abgesenkt wurde.
  • Der Vorfüllmargenparameter spezifiziert eine Deadlinesicherheitsmarge, die während der Berechnung der Puffergrößen verwendet wird. Während der Systemkonfiguration können die Pufferringgrößen für verschiedene Stromraten berechnet werden, wie in Bezug auf 13 beschrieben wurde. Der Vorfüllmargenparameter spezifiziert eine Marge, in der die Deadlines eingehalten werden müssen während dieses Pufferringgrößenberechnungsprozesses, z.B. stellt die Vorfüllmarge eine Marge bereit, durch die ein Pufferunterlauf vermieden werden muß, wenn die Pufferringgrößen bestimmt werden. Es sei bemerkt, daß der Vorfüllmargenparameter einen zusätzlichen Unterlaufschutz aufweist auf Kosten von zusätzlichem Speicher, der für größere Ringpuffer verwendet wird. Eine größere Vorfüllmarge führt zu größeren Ringpuffergrößen, da, für bestimmte Stromgeschwindigkeiten, zusätzliche Puffer in dem Pufferring erforderlich sein werden, um ein Verpassen der Deadlines der Anforderungen durch die spezifizierte Vorfüllmarge zu vermeiden. Im Gegensatz dazu erzielt der sekundäre Absenkungsparameter einen zusätzlichen Unterlaufschutz auf Kosten einer möglichen Bandbreite für geschwindigkeitsgarantierte Ströme. Somit stellt der sekundäre Absenkungsparameter und der Vorfüllmargenparameter einem Benutzer des Speichersystems die Fähigkeit zur Verfügung, die Systemleistung einzustellen durch Eingehen verschiedener unterschiedlicher Kompromisse, so wie es für eine bestimmte Anwendung optimal ist. Wenn beispielsweise nicht ausreichend Speicher verfügbar ist, jedoch zusätzliche Bandbreite benötigt wird, dann kann die sekundäre Absenkung verringert werden und die Vorfüllmarge erhöht werden. Falls jedoch der Speicher an seiner Höchstleistung ist, kann die Vorfüllmarge verringert werden und der sekundäre Absenkungsparameter erhöht werden.
  • Der I/O-Überlapparameter (ebenso als der Suchneuordnungspufferlängenparameter bezeichnet) spezifiziert die Anzahl von Speicheranforderungen, die in dem Betriebssystem für eine Speichereinheit in einer Warteschlange stehen. Beispielsweise wird in dem oben beschriebenen System eine Suchneuordnungswarteschlange verwendet, um Anforderungen auf die Speichereinheiten in einer Ordnung entsprechend der physikalischen Plattenadresse der Speicheranforderungen in eine Warteschlange zu stellen. Die Länge solch einer Warteschlange kann konfiguriert werden durch den I/O-Überlapparameter. Dieser Parameter führt einen Kompromiß zwischen der Sucheffizienz gegenüber der Dienstzeitverfügbarkeit durch. Beispielsweise, je größer die Suchneuord nungswarteschlange gemacht wird, umso mehr Anforderungen können der Speichereinheit in einer linearen Ordnung angeboten werden, was somit die Plattensucheffizienz erhöht. Da die Anforderungen jedoch von ihrer Deadline- und Prioritätsordnung neu geordnet werden, wird eine längere Suchneuordnungswarteschlangenlänge die Variabilität in dem Erfüllen von Anforderungsdeadlines erhöhen. Dieser Parameter kann in Betracht gezogen werden, wenn die Pufferringe dimensioniert werden, so daß größere Suchneuordnungswarteschlangengrößen zu größeren Pufferringgrößen führen, um die Variabilität bei dem Erfüllen von Anforderungsdeadlines in Betracht zu ziehen. Somit kann der I/O-Überlapparameter dem Benutzer gestatten, einen Kompromiß zwischen dem Speicher, der für die Puffer verfügbar gemacht werden muß, und einer höheren Plattensucheffizienz einzugehen.
  • In einer Ausführungsform kann die Blockgröße, mit der auf Mediadaten auf den Speichereinheiten zugegriffen wird, gemäß einem Blockgrößenparameter konfiguriert sein. Das Konfigurieren der Blockgröße kann einen Kompromiß gestatten zwischen der Suchamortisierung und der Pufferfragmentierung bei niedrigeren Stromgeschwindigkeiten. Eine größere Blockgröße kann eine größere Sucheffizienz erlauben, eine größere Blockgröße kann jedoch zu einer größeren Fragmentierung und einer weniger effizienten Verwendung der Speicherkapazität für bestimmte Dateigrößen führen.
  • Verschiedene Modifikationen und Veränderungen können durchgeführt werden, wie es für einen Fachmann offensichtlich ist, mit dem Nutzen dieser Beschreibung. Es ist beabsichtigt, daß die folgenden Ansprüche derart interpretiert werden, daß sie alle solche Modifikationen und Veränderungen umfassen, und folglich werden die Beschreibungen und Zeichnungen in einer anschaulichen Art und Weise statt in einem beschränkenden Sinn verstanden.

Claims (45)

  1. System für die Verwaltung von Speicherzugriffen für geschwindigkeitsgarantierte, konti nuierliche Multimediadatenströme und nicht-geschwindigkeitsgarantierte Speicheranfragen, das aufweist: eine Mehrzahl von geschwindigkeitsgarantierten Anfragern für Multimediadatenströme, einen oder mehrere nicht-geschwindigkeitsgarantierte Anfrager, ein Plattensteuerprogramm, das aufweist: eine geschwindigkeitsgarantierte Warteschlange für das in-eine-Warteschlange-Stellen von Speicheranfragen von den geschwindigkeitsgarantierten Anfragern, eine nicht-geschwindigkeitsgarantierte Warteschlange für das in-eine-Warteschlange-Stellen von Anfragen von den nicht-geschwindigkeitsgarantierten Anfragern, und einen Bandbreitenzuweiser, der mit der geschwindigkeitsgarantierten Warteschlange und der nicht-geschwindigkeitsgarantierten Warteschlange, und der weiterhin mit einem Speichersystem verbunden ist, wobei der Bandbreitenzuweiser derart konfiguriert ist, daß er Bandbreiten des Speichersystems zwischen der geschwindigkeitsgarantierten Warteschlange und der nicht-geschwindigkeitsgarantierten Warteschlange gemäß einem vorbestimmten Verhältnis zuweist, wobei der Bandbreitenzuweiser Anfragen bzw. Anforderungen von der geschwindigkeitsgarantierten Warteschlange und der nicht-geschwindigkeitsgarantierten Warteschlange entsprechend einem Zyklus zu dem Speichersystem migriert, wobei der Zyklus eine Mehrzahl von Positionen bzw. Plätzen hat, wobei jeder Platz anzeigt, ob eine gegenwärtige Anfrage von der geschwindigkeitsgarantierten Warteschlange oder der nicht-geschwindigkeitsgarantierten Warteschlange migriert werden sollte, wobei die Plätze entsprechend dem vorbestimmten Verhältnis gleichmäßig über den Zyklus verteilt sind.
  2. System nach Anspruch 1, wobei die Mehrzahl von geschwindigkeitsgarantierten Anfragern, die Ströme von dem Speichersystem anfragen, begrenzt ist, so daß eine Gesamtsumme von maximalen Stromgeschwindigkeiten, die für jeden geschwindigkeitsgarantierten Anfrager garantiert sind, den Teil der Bandbreite des Speichersystems, der dieser geschwindigkeitsgarantierten Warteschlange zugewiesen ist, nicht überschreitet.
  3. System nach Anspruch 1 oder 2, wobei der Bandbreitenzuweiser derart konfiguriert ist, daß er die Anfragen von der geschwindigkeitsgarantierten Warteschlange und der nicht-geschwindigkeitsgarantierten Warteschlange zu dem Speichersystem entsprechend einem vorbestimmten Verhältnis migriert, wobei die Bandbreite, die nicht von der geschwindigkeitsgarantierten Warteschlange verwendet wird, der geschwindigkeitsgarantierten Warteschlange zugänglich gemacht wird.
  4. System nach einem der vorherigen Ansprüche, wobei der Bandbreitenzuweiser derart konfiguriert ist, daß er Anfragen von der geschwindigkeitsgarantierten Warteschlange und der nicht-geschwindigkeitsgarantierten Warteschlange zu dem Speichersystem entsprechend einem vorbestimmten Verhältnis migriert, wobei die Bandbreite, die nicht von der nicht-geschwindigkeitsgarantierten Warteschlange verwendet wird, der geschwindigkeitsgarantierten Warteschlange verfügbar gemacht wird.
  5. System nach einem der vorherigen Ansprüche, wobei der Bandbreitenzuweiser derart konfiguriert ist, daß er wiederholt den Zyklus durchläuft, um zu bestimmen, von welcher Warteschlange eine Anfrage zu dem Speichersystem migriert wird, wobei, wenn der gegenwärtige Platz des Zyklus die geschwindigkeitsgarantierte Warteschlange anzeigt, eine Anfrage von der geschwindigkeitsgarantierten Warteschlange migriert wird, wenn diese nicht leer ist und anderenfalls von der nicht-geschwindigkeitsgarantierten Warteschlange migriert wird, wenn diese Warteschlange nicht leer ist, und wobei, wenn der gegenwärtige Platz des Zyklus die nicht-geschwindigkeitsgarantierte Warteschlange anzeigt, eine Anforderung von der nicht-geschwindigkeitsgarantierten Warteschlange, wenn diese nicht leer ist, und anderenfalls von der geschwindigkeitsgarantierten Warteschlange, falls diese Warteschlange nicht leer ist, migriert wird.
  6. System nach einem der vorherigen Ansprüche, wobei die Anfragen in der geschwindigkeitsgarantierten Warteschlange gemäß einem Termin geordnet werden, wobei der Termin für jede Anfrage eine späteste Zeit anzeigt, zu der diese Anfrage erfüllt sein muß, um eine garantierte maximale Stromgeschwindigkeit für den entsprechenden Multimediadatenstrom zu erfüllen.
  7. System nach Anspruch 6, wobei der Bandbreitenzuweiser derart konfiguriert ist, daß er die Anfrage mit dem frühesten Termin von der geschwindigkeitsgarantierten Warteschlange migriert.
  8. System nach einem der vorherigen Ansprüche, wobei die Anfragen in der nicht-geschwindigkeitsgarantierten Warteschlange entsprechend einer Priorität geordnet werden, wobei der Bandbreitenzuweiser derart konfiguriert ist, daß er die Anfragen mit der höchsten Priorität von der nicht-geschwindigkeitsgarantierten Warteschlange migriert.
  9. System nach einem der vorherigen Ansprüche, wobei das Plattenverwaltungsprogramm weiterhin eine Suchneuordnungswarteschlange aufweist, die mit dem Bandbreitenzuweiser und dem Speichersystem verbunden ist, wobei der Bandbreitenzuweiser derart konfiguriert ist, daß er Anfragen von der geschwindigkeits- und nicht-geschwindigkeitsgarantierten Warteschlange zu der Neuordnungswarteschlange gemäß einem vorbestimmten Verhältnis migriert, und wobei die Anfragen in der Neuordnungswarteschlange gemäß ihrem physikalischen Ort innerhalb des Speichersystems umgeordnet werden.
  10. System nach Anspruch 9, wobei das Plattenplanungsprogramm derart konfiguriert ist, daß es die Suchneuordnungswarteschlange in einer Richtung durchläuft und die nächste Anfrage zu dem Speichersystem ausgibt, wobei, wenn ein Ende der Suchneuordnungswarteschlange erreicht wird, das Plattenplanungsprogramm die Durchlaufrichtung umkehrt.
  11. System nach einem der vorherigen Ansprüche, wobei das Plattenplanungsprogramm für jedes der Mehrzahl von Speichersystemen wiederholt wird.
  12. System nach Anspruch 11, das weiterhin ein Dateisystem aufweist für das Abbilden von jeder Anfrage von den geschwindigkeitsgarantierten Anfragern und den nicht-geschwindigkeitsgarantierten Anfragern auf eines der Speichersysteme, das einen Ort der Anfrage enthält.
  13. System nach Anspruch 12, wobei das Dateisystem Anfragen von den geschwindigkeitsgarantierten Anfragen und den nicht-geschwindigkeitsgarantierten Anfragern zu der geschwindigkeitsgarantierten Warteschlange oder der nicht-geschwindigkeitsgarantierten Warteschlange des geeigneten Plattenplanungsprogramms leitet, und wobei das Dateisystem ebenso Dateisystemanfragen an das geeignete Plattenplanungsprogramm erzeugt.
  14. System nach Anspruch 13, wobei die Dateisystemanfragen zeitkritische Dateisystemanfragen und nicht-zeitkritische Dateisystemanfragen aufweisen.
  15. System nach Anspruch 14, wobei die Anfragen in der geschwindigkeitsgarantierten Warteschlange entsprechend einem Termin geordnet sind, wobei der Termin für jede Anfrage von einem der geschwindigkeitsgarantierten Anfrager den spätesten Zeitpunkt anzeigt, zu dem diese Anfrage erfüllt sein muß, um eine garantierte maximale Stromgeschwindigkeit für den korrespondierenden Multimediadatenstrom zu erfüllen, und wobei die Anfragen in der nicht-geschwindigkeitsgarantierten Warteschlange entsprechend einer Priorität geordnet sind, wobei der Bandbreitenzuweiser derart konfiguriert ist, daß er die Anfragen mit der höchsten Priorität von der nicht-geschwindigkeitsgarantierten Warteschlange migriert.
  16. System nach Anspruch 15, in dem zeitkritische Dateisystemanfragen zu der geschwindigkeitsgarantierten Warteschlange mit einem entsprechenden Termin gesendet werden, und wobei die nicht-zeitkritischen Dateisystemanfragen zu der nicht-geschwindigkeitsgarantierten Warteschlange mit einer entsprechenden Priorität gesendet werden.
  17. System nach Anspruch 16, wobei die nicht-zeitkritischen Dateisystemanfragen einer höheren Priorität zugewiesen werden als Anforderungen von nicht-geschwindigkeitsgarantierten Anforderern.
  18. System nach einem der vorherigen Ansprüche, wobei Anforderungen von nicht-geschwindigkeitsgarantierten Anforderern FTP- oder NFS-Dateiübertragungsanforderungen beinhalten.
  19. System nach einem der vorherigen Ansprüche, das weiterhin einen Pufferring für jeden Multimediadatenstrom von einem der geschwindigkeitsgarantierten Anfrager aufweist, wobei der Pufferring die Multimediastromdaten zwischen einem verknüpften geschwindigkeitsgarantierten Anfrager und dem Plattenplanungsprogramm puffert.
  20. System nach Anspruch 19, wobei der Pufferring eine Anzahl von Puffern aufweist, die ausgewählt sind, um einen Pufferunterlauf bei einer garantierten maximalen Stromgeschwindigkeit zu verhindern, wobei jeder Puffer in der Größe dimensioniert ist, um einen Block von Multimediadaten zu halten.
  21. System nach Anspruch 20, wobei die Puffer von jedem Pufferring von dem verknüpften geschwindigkeitsgarantierten Anfrager nacheinander in einer periodischen Ordnung verbraucht werden, wobei, wenn jeder Puffer verbraucht wird, eine Anforderung und ein Termin für den gerade verbrauchten Puffer zu der geschwindigkeitsgarantierten Warteschlange ausgegeben wird, wobei der Termin eine Zeit anzeigt, zu der die Anforderung erfüllt sein muß, um einen Unterlauf zu verhindern.
  22. System nach Anspruch 21, wobei jeder Termin berechnet wird zu: current_time + (N – 1) * buf_time,wobei current_time eine Zeitreferenz für das System ist, N die Anzahl von Puffern in dem entsprechenden Pufferring ist, und buf_time die minimale Zeit ist, in der der Medienstromclient einen der Puffer verbrauchen kann, ohne die garantierte maximale Stromgeschwindigkeit zu überschreiten.
  23. Verfahren für das Verwalten von Speicherzugriffen für geschwindigkeitsgarantierte, kontinuierliche Multimediadatenströme und nicht-geschwindigkeitsgarantierte Speicheranfragen, wobei das Verfahren aufweist: Zuweisen eines Abschnitts bzw. Teils einer Bandbreite eines Speichersystems zu Stromanforderungen zu geschwindigkeitsgarantierten Anforderern und Zuweisen des verbleibenden Teils der Bandbreite des Speichersystems zu Anforderungen von nicht-geschwindigkeitsgarantierten Anforderern, das in-eine-Warteschlange-Stellen von Speicheranfragen von geschwindigkeitsgarantierten Anforderern in eine geschwindigkeitsgarantierte Warteschlange, das in-eine-Warteschlange-Stellen von Speicheranforderungen von nicht-geschwindigkeitsgarantierten Anforderern in eine nicht-geschwindigkeitsgarantierte Warteschlange, und Auswählen entweder der geschwindigkeitsgarantierten Warteschlange oder nicht-geschwindigkeitsgarantierten Warteschlange gemäß der Bandbreitenzuweisung, um eine der Anforderungen zu dem Speichersystem zu migrieren, wobei das Auswählen das Migrieren von Anforderungen von der geschwindigkeitsgarantierten Warteschlange und der nicht-geschwindigkeitsgarantierten Warteschlange zu dem Speichersystem entsprechend einem Zyklus aufweist, wobei der Zyklus eine Mehrzahl von Plätzen aufweist, wobei jeder Platz anzeigt, ob eine gegenwärtige Anforderung von der geschwindigkeitsgarantierten Warteschlange oder nicht-geschwindigkeitsgarantierten Warteschlange migriert werden soll, wobei die Plätze gleichmäßig über den Zyklus entsprechend einem Verhältnis der Bandbreite verteilt sind, die zwischen den geschwindigkeitsgarantierten Anforderungen und den nicht-geschwindigkeitsgarantierten Anforderungen zugewiesen ist.
  24. Verfahren nach Anspruch 23, das weiterhin aufweist das Errichten einer maximalen garantierten Geschwindigkeit für jeden der Mehrzahl von Multimediaströmen, wobei Anforderungen von den geschwindigkeitsgarantierten Anforderern für einen der Multimediaströme sind.
  25. Verfahren nach Anspruch 24, das weiterhin aufweist das Beschränken der Anzahl von Multimediaströmen, so daß die Summe der maximal garantierten Geschwindigkeit für jeden Strom die Bandbreite nicht überschreitet, die Stromanforderungen von den geschwindigkeitsgarantierten Anforderern zugewiesen ist.
  26. Verfahren nach einem der Ansprüche 23 bis 25, das weiterhin aufweist das dynamische erneute Zuweisen von nicht verwendeter Bandbreite für geschwindigkeitsgarantierte Anforderungen zu nicht-geschwindigkeitsgarantierten Anforderungen.
  27. Verfahren nach einem der Ansprüche 23 bis 26, das weiterhin aufweist das dynamische Neuzuweisen nicht verwendeter Bandbreite für nicht-geschwindigkeitsgarantierte Anforderungen zu geschwindigkeitsgarantierten Anforderungen.
  28. Verfahren nach einem der Ansprüche 23 bis 27, wobei das Auswählen weiterhin aufweist das wiederholte Durchlaufen des Zyklusses, um zu bestimmen, von welcher Warteschlange eine Anforderung auf das Speichersystem zu migrieren ist, wobei, wenn der gegenwärtige Platz des Zyklusses die geschwindigkeitsgarantierte Warteschlange anzeigt, eine Anforderung von der geschwindigkeitsgarantierten Warteschlange migriert wird, wenn diese nicht leer ist, und anderenfalls von der nicht-geschwindigkeitsgarantierten Warteschlange migriert wird, wenn diese Warteschlange nicht leer ist, und wobei, wenn der gegenwärtige Platz des Zyklusses die nicht-geschwindigkeitsgarantierte Warteschlange anzeigt, eine Anforderung von der nicht-geschwindigkeitsgarantierten Warteschlange migriert, wenn diese nicht leer ist, und anderenfalls von der geschwindigkeitsgarantierten Warteschlange migriert, falls diese Warteschlange nicht leer ist.
  29. Verfahren nach einem der Ansprüche 23 bis 28, das weiterhin aufweist das Ordnen der Anforderungen in der geschwindigkeitsgarantierten Warteschlange gemäß einem Termin, wobei der Termin für jede Anfrage den spätesten Zeitpunkt anzeigt, zu dem diese Anfrage erfüllt sein muß, um eine garantierte maximale Stromgeschwindigkeit für ein entsprechendes Multimediadatensystem zu erfüllen.
  30. Verfahren nach Anspruch 29, wobei das Auswählen das Migrieren der Anforderung mit dem frühesten Termin von der geschwindigkeitsgarantierten Warteschlange zu dem Speichersystem aufweist.
  31. Verfahren nach einem der Ansprüche 23 bis 30, das weiterhin aufweist das Ordnen der Anforderungen in der nicht-geschwindigkeitsgarantierten Warteschlange gemäß einer Priorität, wobei das Auswählen das Migrieren der Anforderung mit der höchsten Priorität von der nicht-geschwindigkeitsgarantierten Warteschlange zu dem Speichersystem aufweist.
  32. Verfahren nach einem der Ansprüche 23 bis 31, wobei das Auswählen aufweist: das Migrieren der Anforderungen von der geschwindigkeitsgarantierten und der nicht-geschwindigkeitsgarantierten Warteschlange zu einer Suchneuordnungswarteschlange entsprechend einer Bandbreitenzuweisung und Neuordnen der migrierten Anforderungen in der Suchneuordnungswarteschlange gemäß ihrem physikalischen Ort innerhalb des Speichersystems.
  33. Verfahren nach Anspruch 32, das weiterhin aufweist: Durchlaufen der Suchneuordnungswarteschlange in einer Richtung, Ausgeben der nächsten Anforderung in der Suchneuordnungswarteschlange zu dem Speichersystem und Umkehren der Durchlaufrichtung, wenn ein Ende der Suchneuordnungswarteschlange erreicht wird.
  34. Verfahren nach einem der Ansprüche 23 bis 33, das weiterhin aufweist das Wiederholen der Zuweisung der Warteschlangenspeicheranforderungen von den geschwindigkeitsgarantierten Anforderern, das in-eine-Warteschlange-Stellen der Speicheranforderungen von den nicht-geschwindigkeitsgarantierten Anforderern und das Auswählen für jedes einer Mehrzahl von Speichersystemen.
  35. Verfahren nach Anspruch 34, das weiterhin aufweist das Abbilden jeder Anfrage von den geschwindigkeitsgarantierten Anforderern und den nicht-geschwindigkeitsgarantierten Anforderern zu einem der Speichersysteme, die einen Ort der Anfrage enthalten.
  36. Verfahren nach Anspruch 35, wobei das Abbilden aufweist: Leiten der Anfragen von den geschwindigkeitsgarantierten Anforderern und den nicht-geschwindigkeitsgarantierten Anforderern zu der geschwindigkeitsgarantierten Warteschlange oder der nicht-geschwindigkeitsgarantierten Warteschlange des geeigneten Speichersystems, und Erzeugen von Dateisystemanfragen zu dem geeigneten Speichersystem.
  37. Verfahren nach Anspruch 36, wobei die Dateisystemanfragen zeitkritische Dateisystemanfragen und nicht-zeitkritische Dateisystemanfragen aufweisen.
  38. Verfahren nach Anspruch 37, das weiterhin aufweist: das Ordnen der Anfragen in der geschwindigkeitsgarantierten Warteschlange entsprechend einem Termin, wobei der Termin für jede Anfrage von einem der geschwindigkeitsgarantierten Anforderer einen spätesten Zeitpunkt anzeigt, zu dem diese Anfrage erfüllt sein muß, um eine garantierte maximale Stromgeschwindigkeit für den entsprechenden Multimediadatenstrom zu erfüllen, und Anordnen der Anfragen in der nicht-geschwindigkeitsgarantierten Warteschlange entsprechend einer Priorität, wobei das Auswählen das Migrieren der Anforderung mit der höchsten Priorität von der nicht-geschwindigkeitsgarantierten Warteschlange aufweist.
  39. Verfahren nach Anspruch 38, das weiterhin aufweist: Senden von zeitkritischen Dateisystemanfragen zu der geschwindigkeitsgarantierten Warteschlange mit einem entsprechenden Termin, und Senden von nicht-zeitkritischen Dateisystemanfragen zu der nicht-geschwindigkeitsgarantierten Warteschlange mit einer entsprechenden Priorität.
  40. Verfahren nach Anspruch 39, das weiterhin aufweist das Zuweisen von nicht-zeitkritischen Dateisystemanfragen einer höheren Priorität als Anfragen von nicht-geschwindigkeitsgarantierten Anforderern.
  41. Verfahren nach einem der Ansprüche 23 bis 40, wobei die Anforderungen von nicht-geschwindigkeitsgarantierten Anforderern FTP- oder NFS-Dateitransferanfragen beinhalten.
  42. Verfahren nach einem der Ansprüche 23 bis 41, das weiterhin aufweist das Errichten eines Pufferrings für jeden Multimediadatenstrom von einem der geschwindigkeitsgarantierten Anforderer, wobei der Pufferring Multimediastromdaten zwischen einem verknüpften geschwindigkeitsgarantierten Anforderer und dem Speichersystem puffert.
  43. Verfahren nach Anspruch 42, das weiterhin aufweist das in-der-Größe-Dimensionieren des Pufferrings, um eine Anzahl von Puffern zu enthalten, die ausgewählt werden, um einen Pufferunterlauf bei einer garantierten maximalen Stromgeschwindigkeit zu verhindern, wobei jeder Puffer in der Größe dimensioniert ist, um einen Multimediadatenblock aufzunehmen.
  44. Verfahren nach Anspruch 43, das weiterhin aufweist: Verbrauchen der Puffer von jedem Pufferring durch den verknüpften geschwindigkeitsgarantierten Anforderer, und zwar einer nach dem anderen in einer periodischen Reihenfolge, und wenn jeder Puffer verbraucht ist, Ausgeben einer Anforderung und eines Termins für den gerade verbrauchten Puffer zu der geschwindigkeitsgarantierten Warteschlange, wobei der Termin eine Zeit anzeigt, zu der die Anforderung erfüllt sein muß, um den Unterlauf zu verhindern.
  45. Verfahren nach Anspruch 44, das weiterhin aufweist das Berechnen jedes Termins zu: current_time + (N – 1) * buf_time,wobei current_time eine Zeitreferenz für das System ist, N die Anzahl von Puffern in dem entsprechenden Pufferring ist und buf_time die Minimalzeit ist, in der der Medienstromclient einen der Puffer verbrauchen kann, ohne die garantierte maximale Stromgeschwindigkeit zu überschreiten.
DE60016784T 1999-10-06 2000-10-02 Planung von speicherzugriffen für raten-garantierte und nicht-raten-garantierte anforderungen Expired - Lifetime DE60016784T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US413043 1982-08-30
US09/413,043 US6721789B1 (en) 1999-10-06 1999-10-06 Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
PCT/US2000/027179 WO2001025892A1 (en) 1999-10-06 2000-10-02 Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests

Publications (2)

Publication Number Publication Date
DE60016784D1 DE60016784D1 (de) 2005-01-20
DE60016784T2 true DE60016784T2 (de) 2005-12-01

Family

ID=23635577

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60016784T Expired - Lifetime DE60016784T2 (de) 1999-10-06 2000-10-02 Planung von speicherzugriffen für raten-garantierte und nicht-raten-garantierte anforderungen

Country Status (6)

Country Link
US (2) US6721789B1 (de)
EP (1) EP1224527B1 (de)
AT (1) ATE285088T1 (de)
AU (1) AU1072601A (de)
DE (1) DE60016784T2 (de)
WO (1) WO2001025892A1 (de)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE39094E1 (en) 1988-07-20 2006-05-09 Health Research, Inc. Pyropheophorbides and their use in photodynamic therapy
US6850965B2 (en) * 1998-11-17 2005-02-01 Arthur Douglas Allen Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
US7334044B1 (en) 1998-11-17 2008-02-19 Burst.Com Method for connection acceptance control and optimal multi-media content delivery over networks
US6691208B2 (en) * 1999-03-12 2004-02-10 Diva Systems Corp. Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content
WO2001055912A1 (en) * 2000-01-28 2001-08-02 Ibeam Broadcasting Corporation Method and apparatus for client-side authentication and stream selection in a content distribution system
EP1134942A1 (de) * 2000-03-15 2001-09-19 Telefonaktiebolaget L M Ericsson (Publ) Verfahren und Anordnung zur Steuerung von Nicht-Echtzeit-Anwendung Flüssen
US7631080B2 (en) * 2000-06-20 2009-12-08 Nds Limited Unicast/multicast architecture
US7599753B2 (en) * 2000-09-23 2009-10-06 Microsoft Corporation Systems and methods for running priority-based application threads on a realtime component
WO2002037790A2 (en) * 2000-11-01 2002-05-10 Eyeball Networks Inc. Method and apparatus for improving interactive animation over a computer network
JP2002199023A (ja) * 2000-12-25 2002-07-12 Ibm Japan Ltd ファクシミリ通信手順を用いたメール通信方法、メール送信装置、メール受信装置、およびメール通信システム
US8271672B1 (en) * 2001-08-31 2012-09-18 Juniper Networks, Inc. Guaranteed bandwidth memory apparatus and method
US7904931B2 (en) * 2001-09-12 2011-03-08 Cox Communications, Inc. Efficient software bitstream rate generator for video server
US20030097443A1 (en) * 2001-11-21 2003-05-22 Richard Gillett Systems and methods for delivering content over a network
US7698454B1 (en) * 2001-11-26 2010-04-13 Juniper Networks, Inc. Interfacing with streams of differing speeds
FI116167B (fi) * 2001-12-18 2005-09-30 Valtion Teknillinen Arkistoiva tiedostopalvelin
US7596627B2 (en) * 2001-12-18 2009-09-29 Cisco Technology, Inc. Methods and apparatus for network congestion control
US7734808B1 (en) 2001-12-18 2010-06-08 Cisco Technology, Inc. End-to-end congestion control in a Fibre Channel network
CN1653776A (zh) * 2002-05-17 2005-08-10 皇家飞利浦电子股份有限公司 质量驱动流的方法和设备
US20030223013A1 (en) * 2002-06-04 2003-12-04 Sami Laakso Method and arrangement for forming application specific presentation
AU2003291193A1 (en) * 2002-11-27 2004-06-23 Rgb Media, Inc. Apparatus and method for dynamic channel mapping and optimized scheduling of data packets
US7421502B2 (en) * 2002-12-06 2008-09-02 International Business Machines Corporation Method and system for storage-aware flow resource management
US7536708B2 (en) 2003-03-07 2009-05-19 Siemens Communications, Inc. System and method for context-based searching and control of an integrated communications center
US7787749B2 (en) 2003-03-07 2010-08-31 Siemens Enterprise Communications, Inc. System and method for voice portal control of an integrated communications center
US7519073B2 (en) 2003-03-07 2009-04-14 Siemens Communications, Inc. System and method for instant messaging control of an integrated communications center
US8539533B2 (en) 2003-03-07 2013-09-17 Siemens Enterprise Communications, Inc. System and method for digital personal video stream manager
US7761898B2 (en) 2003-03-07 2010-07-20 Siemens Enterprise Communications, Inc. System and method for e-mail control of an integrated communications center
US7525975B2 (en) * 2003-03-07 2009-04-28 Rami Caspi System and method for integrated audio stream manager
US7093274B2 (en) * 2003-07-29 2006-08-15 Sony Corporation Apparatus and method for accommodating fast change of digital streaming sources and formats
US8104065B2 (en) * 2003-11-13 2012-01-24 Arris Group, Inc. System to provide markers to affect rendering and navigation of content on demand
US8483227B2 (en) * 2003-11-20 2013-07-09 International Business Machines Corporation Controlling bandwidth reservations method and apparatus
US20050111478A1 (en) * 2003-11-20 2005-05-26 International Business Machines Corporation Distributed control load shaping method and apparatus
US7433364B2 (en) * 2003-12-24 2008-10-07 Intel Corporation Method for optimizing queuing performance
US7254685B1 (en) 2004-06-15 2007-08-07 Emc Corporation Method for maintaining high performance while preserving relative write I/O ordering for a semi-synchronous remote replication solution
WO2006007415A2 (en) * 2004-06-16 2006-01-19 Regents Of The University Of Colorado Nonlinear adaptive control of resource-distribution dynamics
US7260703B1 (en) * 2004-08-20 2007-08-21 Sun Microsystems, Inc. Method and apparatus for I/O scheduling
KR100539886B1 (ko) * 2004-09-10 2005-12-28 삼성전자주식회사 디지털 방송 수신 장치 및 그 방법
US20060072596A1 (en) * 2004-10-05 2006-04-06 Skipjam Corp. Method for minimizing buffer delay effects in streaming digital content
JP4305378B2 (ja) * 2004-12-13 2009-07-29 ソニー株式会社 データ処理システム、アクセス制御方法、その装置およびそのプログラム
US7340478B2 (en) * 2005-01-07 2008-03-04 International Business Machines Corporation Method and apparatus for implementing container managed uses, ownerships, and references in an enterprise JavaBean environment
US20060156313A1 (en) * 2005-01-07 2006-07-13 Hambrick Geoffrey M Method and apparatus for implementing container managed batch jobs in an enterprise java bean environment
US20060155745A1 (en) * 2005-01-07 2006-07-13 Hambrick Geoffrey M System and method to implement container managed streams in J2EE environments
US7281086B1 (en) 2005-06-02 2007-10-09 Emc Corporation Disk queue management for quality of service
US7293136B1 (en) 2005-08-19 2007-11-06 Emc Corporation Management of two-queue request structure for quality of service in disk storage systems
US8457007B2 (en) 2006-02-24 2013-06-04 Marvell World Trade Ltd. Global switch resource manager
US7668186B1 (en) * 2006-03-07 2010-02-23 Xilinx, Inc. Token ecosystem for buffer management
JP2007323284A (ja) * 2006-05-31 2007-12-13 Hitachi Ltd 計算機システム、ストレージシステム及び帯域管理方法
US20080077702A1 (en) * 2006-09-27 2008-03-27 Joshua Posamentier Dynamic server stream allocation
US8750115B2 (en) * 2006-11-21 2014-06-10 Verizon Patent And Licensing Inc. Priority-based buffer management
US7640412B2 (en) * 2007-01-04 2009-12-29 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for improving the reliability of file systems
US8566695B2 (en) * 2007-03-30 2013-10-22 Sandisk Technologies Inc. Controlling access to digital content
US20080276041A1 (en) * 2007-05-01 2008-11-06 International Business Machines Corporation Data storage array scaling method and system with minimal data movement
KR100927190B1 (ko) * 2007-10-12 2009-11-18 한국전자통신연구원 디스크 스케줄링 방법 및 장치
US8887218B2 (en) * 2007-11-29 2014-11-11 Jan Maurits Nicolaas Fielibert Systems and methods of adjusting bandwidth among multiple media streams
US8949840B1 (en) 2007-12-06 2015-02-03 West Corporation Method, system and computer-readable medium for message notification delivery
US8090903B2 (en) * 2008-01-18 2012-01-03 Microsoft Corporation Fair and dynamic disk input/output bandwidth distribution
US9071524B2 (en) * 2008-03-31 2015-06-30 Lenovo (Singapore) Pte, Ltd. Network bandwidth control for network storage
JP4600513B2 (ja) * 2008-04-25 2010-12-15 ソニー株式会社 データ送信装置、送信レート制御方法およびプログラム
JP4577406B2 (ja) * 2008-05-19 2010-11-10 ソニー株式会社 管理装置、情報処理装置、プログラム、および情報処理システム
KR101566250B1 (ko) * 2009-01-13 2015-11-05 삼성전자주식회사 휴대용 단말기에서 멀티미디어 파일 스트리밍을 위한 장치 및 방법
US11076189B2 (en) 2009-03-30 2021-07-27 Time Warner Cable Enterprises Llc Personal media channel apparatus and methods
US9215423B2 (en) 2009-03-30 2015-12-15 Time Warner Cable Enterprises Llc Recommendation engine apparatus and methods
US8396055B2 (en) 2009-10-20 2013-03-12 Time Warner Cable Inc. Methods and apparatus for enabling media functionality in a content-based network
US20110119412A1 (en) * 2009-11-13 2011-05-19 Orfitelli William A Port-splitter providing a guaranteed playout rate
US10298977B2 (en) 2009-11-20 2019-05-21 Time Warner Cable Enterprises Llc Policy management arbitration by service group
US8285298B2 (en) * 2009-12-23 2012-10-09 At&T Mobility Ii Llc Chromatic scheduler for network traffic with disparate service requirements
US20110179248A1 (en) * 2010-01-18 2011-07-21 Zoran Corporation Adaptive bandwidth allocation for memory
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9015783B2 (en) * 2010-03-05 2015-04-21 Time Warner Cable Enterprises Llc Bandwidth conservation
US8677431B2 (en) * 2010-05-06 2014-03-18 Time Warner Cable Enterprises Llc Technique for providing uninterrupted switched digital video service
US8997136B2 (en) 2010-07-22 2015-03-31 Time Warner Cable Enterprises Llc Apparatus and methods for packetized content delivery over a bandwidth-efficient network
US20120079486A1 (en) * 2010-09-23 2012-03-29 International Business Machines Corporation Integration of dissimilar job types into an earliest deadline first (edf) schedule
US9026748B2 (en) 2011-01-11 2015-05-05 Hewlett-Packard Development Company, L.P. Concurrent request scheduling
US8549113B2 (en) 2011-01-27 2013-10-01 International Business Machines Corporation Transactional independent persister cloning system
US9069473B2 (en) 2011-01-27 2015-06-30 International Business Machines Corporation Wait-free stream oriented migration based storage
US9602414B2 (en) 2011-02-09 2017-03-21 Time Warner Cable Enterprises Llc Apparatus and methods for controlled bandwidth reclamation
TWI448125B (zh) * 2011-11-25 2014-08-01 Ind Tech Res Inst 多媒體檔案分享方法及系統
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9467723B2 (en) 2012-04-04 2016-10-11 Time Warner Cable Enterprises Llc Apparatus and methods for automated highlight reel creation in a content delivery network
US20140082645A1 (en) 2012-09-14 2014-03-20 Peter Stern Apparatus and methods for providing enhanced or interactive features
US9083724B2 (en) * 2013-05-30 2015-07-14 Netapp, Inc. System iteratively reducing I/O requests during migration of virtual storage system
US9621616B2 (en) * 2013-09-16 2017-04-11 Sony Corporation Method of smooth transition between advertisement stream and main stream
US20150154132A1 (en) * 2013-12-02 2015-06-04 Sandisk Technologies Inc. System and method of arbitration associated with a multi-threaded system
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US10824952B2 (en) 2014-09-22 2020-11-03 International Business Machines Corporation Reconfigurable array processor for pattern matching
US9891912B2 (en) * 2014-10-31 2018-02-13 International Business Machines Corporation Comparison-based sort in a reconfigurable array processor having multiple processing elements for sorting array elements
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9767119B2 (en) 2014-12-31 2017-09-19 Netapp, Inc. System and method for monitoring hosts and storage devices in a storage system
US10116676B2 (en) 2015-02-13 2018-10-30 Time Warner Cable Enterprises Llc Apparatus and methods for data collection, analysis and service modification based on online activity
US9787772B2 (en) 2015-05-19 2017-10-10 Netapp, Inc. Policy based alerts for networked storage systems
US9513968B1 (en) * 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
FR3082029B1 (fr) * 2018-06-05 2020-07-10 Thales Controleur de partage de ressources d'une plate-forme informatique et procede associe de partage des ressources
US11146663B2 (en) * 2019-07-18 2021-10-12 EMC IP Holding Company LLC Facilitating improved overall performance of remote data facility replication systems
US11709626B2 (en) * 2021-01-14 2023-07-25 EMC IP Holding Company LLC Scheduling storage system tasks to promote low latency and sustainability

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628051B2 (ja) * 1986-04-25 1994-04-13 株式会社日立製作所 記憶制御方式
US5644786A (en) 1990-11-08 1997-07-01 At&T Global Information Solutions Company Method for scheduling the execution of disk I/O operations
US5303347A (en) 1991-12-27 1994-04-12 Digital Equipment Corporation Attribute based multiple data structures in host for network received traffic
US6026452A (en) 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
CA2104753C (en) * 1992-10-29 1999-02-16 Kotikalapudi Sriram Bandwidth allocation, transmission scheduling, and congestion avoidance in broadband atm networks
US5581784A (en) * 1992-11-17 1996-12-03 Starlight Networks Method for performing I/O's in a storage system to maintain the continuity of a plurality of video streams
EP0625858B1 (de) 1993-05-19 1998-06-24 Alcatel Verfahren zur Speicherverwaltung eines Videoservers
KR960015601B1 (ko) 1994-02-08 1996-11-18 조백제 버퍼를 갖는 링 통신망 노드 장치 및 그 제어 방법
US5802394A (en) 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
CA2153445C (en) 1994-09-08 2002-05-21 Ashok Raj Saxena Video optimized media streamer user interface
US5530557A (en) 1994-09-12 1996-06-25 International Business Machines Corporation Online placement of video files determined by a function of the bandwidth to space ratio of each of the storage devices in a server environment
US5708796A (en) * 1994-11-18 1998-01-13 Lucent Technologies Inc. Method of retrieving continuous and non-continuous media data from a file system
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
US6085234A (en) 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
EP0716370A3 (de) 1994-12-06 2005-02-16 International Business Machines Corporation Ein Plattenzugangsverfahren, um Multimedia- und Videoinformation auf Wunsch über Grossraumnetze zu liefern
US5832304A (en) * 1995-03-15 1998-11-03 Unisys Corporation Memory queue with adjustable priority and conflict detection
US5721956A (en) 1995-05-15 1998-02-24 Lucent Technologies Inc. Method and apparatus for selective buffering of pages to provide continuous media data to multiple users
US5758076A (en) 1995-07-19 1998-05-26 International Business Machines Corporation Multimedia server system having rate adjustable data retrieval based on buffer capacity
US5787482A (en) 1995-07-31 1998-07-28 Hewlett-Packard Company Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
US5815662A (en) * 1995-08-15 1998-09-29 Ong; Lance Predictive memory caching for media-on-demand systems
US5721823A (en) 1995-09-29 1998-02-24 Hewlett-Packard Co. Digital layout method suitable for near video on demand system
US6061504A (en) * 1995-10-27 2000-05-09 Emc Corporation Video file server using an integrated cached disk array and stream server computers
US5933603A (en) 1995-10-27 1999-08-03 Emc Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
TW332284B (en) 1995-10-30 1998-05-21 Sony Co Ltd Method and apparatus for controlling access to a recording disk
US6317775B1 (en) 1995-11-03 2001-11-13 Cisco Technology, Inc. System for distributing load over multiple servers at an internet site
US5757771A (en) * 1995-11-14 1998-05-26 Yurie Systems, Inc. Queue management to serve variable and constant bit rate traffic at multiple quality of service levels in a ATM switch
US5917822A (en) * 1995-11-15 1999-06-29 Xerox Corporation Method for providing integrated packet services over a shared-media network
JP2950223B2 (ja) 1996-01-12 1999-09-20 日本電気株式会社 データ読出装置
US5928327A (en) 1996-08-08 1999-07-27 Wang; Pong-Sheng System and process for delivering digital data on demand
US6067557A (en) * 1996-09-06 2000-05-23 Cabletron Systems, Inc. Method and system for allocating CPU bandwidth by prioritizing competing processes
US5881245A (en) 1996-09-10 1999-03-09 Digital Video Systems, Inc. Method and apparatus for transmitting MPEG data at an adaptive data rate
JP3563541B2 (ja) 1996-09-13 2004-09-08 株式会社東芝 データ格納装置及びデータ格納方法
US5926649A (en) 1996-10-23 1999-07-20 Industrial Technology Research Institute Media server for storage and retrieval of voluminous multimedia data
EP0886971B1 (de) 1996-12-23 2004-10-27 Koninklijke Philips Electronics N.V. Verfahren und system zur bereitstellung von datenströmen
US6292834B1 (en) 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US5892915A (en) * 1997-04-25 1999-04-06 Emc Corporation System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list
US6968379B2 (en) * 1997-05-30 2005-11-22 Sun Microsystems, Inc. Latency-reducing bandwidth-prioritization for network servers and clients
US6041359A (en) * 1997-06-09 2000-03-21 Microsoft Corporation Data delivery system and method for delivering computer data over a broadcast network
JPH113307A (ja) 1997-06-13 1999-01-06 Canon Inc 情報処理装置および方法
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
JP2978844B2 (ja) * 1997-07-01 1999-11-15 日本電気株式会社 バックプレッシャ型atmスイッチ
US6408005B1 (en) * 1997-09-05 2002-06-18 Nec Usa, Inc. Dynamic rate control scheduler for ATM networks
WO1999015953A1 (en) 1997-09-24 1999-04-01 Sony Pictures Entertainment, Inc. Optimizing scheduler for read/write operations in a disk file system
CA2223118A1 (en) * 1997-11-28 1999-05-28 Newbridge Networks Corporation Virtual path level fairness
US6240094B1 (en) 1997-12-22 2001-05-29 Bell Atlantic Network Services, Inc. Statistical time division multiplexer for a wireless asymmetric local loop communication system
US6374336B1 (en) * 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
JP3075248B2 (ja) * 1998-01-19 2000-08-14 日本電気株式会社 非同期転送モードスイッチ
US6192029B1 (en) 1998-01-29 2001-02-20 Motorola, Inc. Method and apparatus for performing flow control in a wireless communications system
US6023720A (en) 1998-02-09 2000-02-08 Matsushita Electric Industrial Co., Ltd. Simultaneous processing of read and write requests using optimized storage partitions for read and write request deadlines
JP3075251B2 (ja) * 1998-03-05 2000-08-14 日本電気株式会社 非同期転送モード交換網における仮想パス帯域分配システム
US6157963A (en) 1998-03-24 2000-12-05 Lsi Logic Corp. System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients
US6243761B1 (en) 1998-03-26 2001-06-05 Digital Equipment Corporation Method for dynamically adjusting multimedia content of a web page by a server in accordance to network path characteristics between client and server
US6359900B1 (en) * 1998-04-09 2002-03-19 Novell, Inc. Method and system for controlling access to a resource
US6560628B1 (en) * 1998-04-27 2003-05-06 Sony Corporation Apparatus, method, and recording medium for scheduling execution using time slot data
US6067107A (en) 1998-04-30 2000-05-23 Wink Communications, Inc. Response capacity management in interactive broadcast systems by periodic reconfiguration of response priorities
US6067301A (en) * 1998-05-29 2000-05-23 Cabletron Systems, Inc. Method and apparatus for forwarding packets from a plurality of contending queues to an output
US6304297B1 (en) 1998-07-21 2001-10-16 Ati Technologies, Inc. Method and apparatus for manipulating display of update rate
US6085241A (en) * 1998-07-22 2000-07-04 Amplify. Net, Inc. Internet user-bandwidth management and control tool
DE69924057T2 (de) * 1998-07-31 2006-04-13 Alcatel Verfahren, Ablauffolgesteuerung, intelligenter Pufferspeicher, Prozessor und Telekommunikationssystem zum Verteilen verfügbahrer Bandbreite
US6304906B1 (en) * 1998-08-06 2001-10-16 Hewlett-Packard Company Method and systems for allowing data service system to provide class-based services to its users
CA2245367A1 (en) * 1998-08-19 2000-02-19 Newbridge Networks Corporation Two-component bandwidth scheduler having application in multi-class digital communication systems
US6765868B1 (en) * 1998-09-22 2004-07-20 International Business Machines Corp. System and method for large file transfers in packet networks
US6243778B1 (en) * 1998-10-13 2001-06-05 Stmicroelectronics, Inc. Transaction interface for a data communication system
US7046631B1 (en) * 1999-01-22 2006-05-16 Alcatel Canada Inc. Method and apparatus for provisioning traffic dedicated cores in a connection oriented network
US6470016B1 (en) * 1999-02-09 2002-10-22 Nortel Networks Limited Servicing output queues dynamically according to bandwidth allocation in a frame environment
US6378036B2 (en) * 1999-03-12 2002-04-23 Diva Systems Corporation Queuing architecture including a plurality of queues and associated method for scheduling disk access requests for video content
ES2557892T3 (es) * 1999-07-15 2016-01-29 Telefonaktiebolaget Lm Ericsson (Publ) Control de admisión y planificación de tráfico de datos por paquetes
US6385673B1 (en) * 1999-10-06 2002-05-07 Sun Microsystems, Inc. System and method for adjusting performance of a media storage by decreasing a maximum throughput by a primary derate parameter to specify available & guaranteed rate parameters and determining ring buffer sizes for streams
US7096269B2 (en) * 2001-03-30 2006-08-22 Hitachi, Ltd. Path selection methods for storage based remote copy

Also Published As

Publication number Publication date
US20040205166A1 (en) 2004-10-14
ATE285088T1 (de) 2005-01-15
WO2001025892A1 (en) 2001-04-12
AU1072601A (en) 2001-05-10
DE60016784D1 (de) 2005-01-20
EP1224527A1 (de) 2002-07-24
EP1224527B1 (de) 2004-12-15
US6721789B1 (en) 2004-04-13
US8566432B2 (en) 2013-10-22

Similar Documents

Publication Publication Date Title
DE60016784T2 (de) Planung von speicherzugriffen für raten-garantierte und nicht-raten-garantierte anforderungen
DE60005205T2 (de) Vorrichtung und verfahren zur zusammensetzung eines mediaspeichersystems
DE60123396T2 (de) Diskzuordnungssystem mit umordnung einer begrenzten anzahl von anforderungen
EP1222812A1 (de) Plannung von speicherzugriffen für eine mehrzahl von kontinuierlichen mediaströmen
US5854887A (en) System for the management of multiple time-critical data streams
US7103595B2 (en) Streaming server
US5935206A (en) Automatic replication of digital video as needed for video-on-demand
US5815662A (en) Predictive memory caching for media-on-demand systems
DE69930127T2 (de) Kostengünstiger, skalierbarer medienserver mit offener architektur
DE60316141T2 (de) Echtzeit-speicherbereichsnetzwerk
CA2142380C (en) Buffer management policy for an on-demand video server
DE60209123T2 (de) Verfahren zur annahmesteuerung von verbindungen und schnelle bestimmung der lieferung von multimedia-inhalten in netzen
Ghandeharizadeh et al. Design and implementation of scalable continuous media servers
DE10062063A1 (de) Verfahren, System, Programm und Datenstruktur zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität
DE102006018959B4 (de) Videoaufzeichnungssystem, Verfahren und Computerprogramm zur Speicherplatzverteilung in einem Videoaufzeichnungssystem
Steinmetz Multimedia file systems survey: approaches for continuous media disk scheduling
Wijayaratne et al. Providing QOS guarantees for disk I/O
Anastasiadis et al. Modular and efficient resource management in the exedra media server
Tsai et al. Wrr-scan: a rate-based real-time disk-scheduling algorithm
Santos et al. Scheduling heterogeneous multimedia servers: different QoS for hard, soft and non real-time clients
Hollfelder et al. An admission control framework for applications with variable consumption rates in client-pull architectures
Rangan Architectures and algorithms for digital multimedia on-demand servers
Hollfelder Admission control for multimedia applications in client-pull architectures
Little et al. Real-time scheduling for multimedia services
Philip et al. Look-ahead scheduling to support pause-resume for video-on-demand applications

Legal Events

Date Code Title Description
8364 No opposition during term of opposition