DE60131900T2 - Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten - Google Patents
Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten Download PDFInfo
- Publication number
- DE60131900T2 DE60131900T2 DE60131900T DE60131900T DE60131900T2 DE 60131900 T2 DE60131900 T2 DE 60131900T2 DE 60131900 T DE60131900 T DE 60131900T DE 60131900 T DE60131900 T DE 60131900T DE 60131900 T2 DE60131900 T2 DE 60131900T2
- Authority
- DE
- Germany
- Prior art keywords
- file
- vfcs
- server
- content
- files
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Description
- Stand der Technik
- Gebiet der Erfindung
- Die vorliegende Erfindung betrifft das Speichern und die Verteilung von Inhalten bzw. Content über ein Netzwerk.
- Beschreibung des Stands der Technik
- Die Fortschritte im Bereich der Kommunikation und des Switching in Telelcommunikationsnetzwerken schreiten mit enormer Geschwindigkeit voran. Die Verteilung von Dateien zwischen Netzwerkpositionen bzw. Netzwerkstandorten kann unter Verwendung herkömmlicher Techniken jedoch ziemlich lange dauern. Der Übertragungs- bzw. Übermittlungsfluss kann uneinheitlich sein. Wenn zum Beispiel große bzw. umfangreiche Inhalte, wie etwa eine Mediendatei eines Films zu einem Benutzer übertragen wird bzw. werden, können während der Übermittlung unzulässige bzw. nicht akzeptierbare Verzögerungen auftreten.
- Bei einer herkömmlichen Technik zur Vermeidung von Verzögerungen bei der Präsentation von Inhalten an einen Benutzer handelt es sich um die Replikation von Kopien des Inhalts an verschiedenen Positionen bzw. Stellen in dem Netzwerk. Eine derartige Replikation kann die Verzögerung für einen Benutzer in der Nähe einer verfügbaren Kopie reduzieren, jedoch erfordert sie eine übermäßige Menge an Speicherplatz. Der Overhead der Verwaltung steigt ebenfalls an. Eine Management- bzw. Verwaltungsanwendung wird benötigt, so dass Administratoren und/oder Benutzer die replizierten Kopien des Inhalts verwalten können. Die Speicheradministratoren müssen ferner konstant wachsam sein, da für den Fall, dass an einem Ort bzw. Standort der Speicherplatz ausgeht, eine neue Replikation des Contents bzw. des Innalts fehlschlägt.
- Zu weiteren Techniken zählt das Proxy Caching auf Anwendungsebene, wie etwa das Web bzw. Internet Caching und das Streaming Caching. Ein derartiges Caching erfordert nicht den Einsatz nicht verwaltbarer Mengen von Speicherkapazität, sondern löst das Problem nur für eine begrenzte Anzahl von Fällen, wo der Content bzw. die Inhalte bereits an den anfordernden Positionen im Cache gespeichert worden sind. Wenn ein Benutzer Inhalte anfordert, die noch nicht im Cache gespeichert worden sind, wo müssen die Inhalte bzw. der Content vom Kern abgerufen werden, und wobei die Verzögerung nicht akzeptabel sein kann. Eine weitere große Einschränkung des Caching-Ansatzes ist es, dass er auf eine bestimmte Anwendung beschränkt ist.
- In "Enhancement and validation of Squid's cache replacement policy" von J. Dilley et al., HP Labs 1999 Technical Report, 31. Mai 1999, Seiten 1 bis 17, beschreibt ein Internet Caching System und im Besonderen einen Cache Replacement-Ansatz (Cache-Auswechselungsansatz). Eine Heap- bzw. Halden-basierte Implementierung fügt einem Referenzzählwert in einem LFU (Least Frequently Used) Cache Replacement-Ansatz ein Alter hinzu. Die Altersimplementierung neigt dazu, unter den am wenigsten genutzten Objekten die am längsten nicht verwendeten (least recently used) Objekte zu bevorzugen. Zwischen einem Höchst- und Niedrigststand wurde durch einen einfachen Mechanismus Raum erhalten, wobei Objekte unabhängig von ihrem Alter ausgestoßen werden, wobei nur der Altersschlüssel (Heap Key) berücksichtigt wird. Objekte werden entfernt, bis eine Begrenzung max_scan oder max_remove bzw. die Untergrenze erreicht wird.
- Benötigt werden ein Verfahren und ein System zum Speichern und für die Verteilung von Inhalten bzw. Content über ein Netzwerk, wobei das Verfahren und das System eine Latenz über lange Übertragungsstrecken eliminieren können, und wobei keine Replikation in Höhe von 100% an alle Standorte bzw. Positionen erforderlich ist. Benötigt werden ein Verfahren und ein System zum Speichern und zur Verteilung von Inhalten bzw. Content, wobei eine intelligente Speicherverwaltung bereitgestellt wird auf der Basis der Nutzung und des Standort-transparenten Zugriffs, und wobei die Verwaltung Anwendungs-agnostisch ist, das heißt, sie kann mit anderen Anwendungsarten eingesetzt werden.
- Zusammenfassung der Erfindung
- Vorgesehen ist gemäß der vorliegenden Erfindung ein Verfahren zur effizienten Speicherverwaltung in einem verteilten Netzwerk nach Anspruch 1.
- Weitere Ausführungsbeispiele der Erfindung sind in den Unteransprüchen enthalten.
- Beschreiben werden ein Verfahren und ein System zur Erzeugung eines innovativen Dateisystems, das dessen Verzeichnisdarstellung von dessen Datenspeicher trennt. Dies erreicht ein angemessenes Gleichgewicht zwischen der Anforderung für eine einheitliche schnelle Zustellung sowie der Reduzierung der Speicheranforderungen. Das Verfahren und das System umfassen die Aufteilung, Verteilung und Wiedervereinigung/neues Zusammensetzen von Dateien, wobei die Präsentation bzw. Darstellung des Inhalts bzw. des Contents an den Benutzer nicht verzögert wird, wobei aber auch eine reduzierte Speicherraumgröße im Vergleich zu herkömmlichen Techniken eingesetzt wird. Das Verfahren und das System verwenden auch die Erzeugung eines integrierten Lese-Schreibfähigen Dateisystems sowie die Verteilung von Dateisystemobjekten, die Volumina, Verzeichnisse und Dateien enthalten. Das Verfahren und das System sind in der Lage, die Integrität der Dateisystemobjekte zu verwalten und zu steuern, die über das Netzwerk verteilt sind, und zwar unter Verwendung der Metadaten- und Metadateisystemarchitektur, und wobei das Verfahren und das System ferner unter Verwendung eines VFCS (Virtual File Control System) oder eines VFCS-Clusters Dateien in Echtzeit serven und rekonstruieren können. Die Metadaten- und Metadateisystemarchitektur stellt Mittel für Verteilungs-Server (DS als englische Abkürzung von Distribution Server) und das VFCS bereit, um die verteilten Informationen im Netzwerk zu überwachen, während das VFCS die organisierte bzw. strukturierte Wiederzusammensetzung der Informationen für die Übertragung bzw. Zustellung an den Benutzer vornimmt.
- Ebenso beschrieben wird ein verbesserter Mechanismus für die Erzeugung eines integrierten Lese-Schreib-fähigen Dateisystems zur Verteilung großer Dateien über ein Computernetzwerk sowie für die Übertragung derartiger Dateien an Endbenutzersysteme oder Anwendungsserver. Bei einer Implementierung stellt der Mechanismus mehreren Benutzern von vielen verschiedenen Standorten eine Möglichkeit bereit, Zugriff auf Dateisystemobjekte zu erhalten, ohne dabei die Netzwerkressourcen übermäßig zu belasten. Wenn ein Benutzer zum Beispiel eine große Datei downloaden möchte, wie etwa eine Videodatei, so stellt der Mechanismus eine Möglichkeit bereit, diese Videodatei zu dem anfordernden Benutzer zu übertragen, ohne dabei das Netzwerk zu stark zu belasten. Das System erreicht dies durch ein Aufteilen der Datei in mehrere Abschnitte (Segmente oder Blockdateien) sowie durch das Speichern dieser Abschnitte an Stellen (z. B. Knoten), die über das Netzwerk verteilt sind. Beschreiben wird eine Technik zur Erzeugung eines Lese-Schreib-fähigen integrierten Dateisystems. Ebenso beschrieben wird eine Technik zur Aufteilung der Datei sowie zur Rekonstruktion dieser für die Verteilung sowie eine Technik zur Verteilung von Dateisystemobjekten.
- Beschrieben wird ein Verfahren zur Erzeugung einer integrierten Dateisystemdarstellung auf der Basis einer Metadateisystemstruktur und der Objektmetadaten selbst, welche die Trennung der Dateisystemdarstellung und dessen Daten unterstützt, während die Daten über ein Netzwerk von Knoten lokalisiert werden und danach zeitgerecht und transparent für die Benutzer des Systems wieder zusammengesetzt werden können.
- Ferner beschrieben wird die Aufteilung der Dateien in verwaltbare, nicht zusammenhängende Dateisegmente, die neue Anordnung der Dateisegmente und die Verteilung dieser nicht zusammenhängenden Dateisegmente für eine optimale Performance der Netzwerkknoten. Die nicht zusammenhängenden Dateisegmente werden wieder zusammengesetzt für eine Verteilung an einen Client, der die große Nutzlastdatei anfordert. Der Prozess des Wiederzusammenbaus ist für den Benutzer transparent und stellt die Dateidaten an den Benutzer mit minimaler Latenz bereit.
- Beschrieben wird ein weiteres Verfahren für die Verteilung, Replikation und Synchronisation von Dateisystemobjekten unter einem Netzwerk aus Knoten.
- Ein weiterer Teil der Beschreibung richtet sich an die Bereitstellung von nicht zusammenhängenden Dateisegmenten durch die globale Dateisystemdarstellung, während der ursprüngliche, nicht in Chunks aufgeteilte Inhalt Benutzern als ein Verzeichnis dargestellt wird.
- Ferner beschrieben wird die Anwendung von Verteilungs- und Behandlungsrichtlinienn, um eine garantierte Dienst- bzw. Servicequalität zu ermöglichen.
- Ebenfalls beschrieben wird, wie mehrere VFCS als ein Virtual File System Gateway Cluster gruppiert werden können, welcher die E/A-Bandbreite erhöht, während gleichzeitig Lastausgleich (Load Balancing) und Fehlertoleranz bereitgestellt werden.
- Zu den Vorteilen des beschriebenen Systems und Verfahrens zählt die Fähigkeit, große Nutzlastdateien zu speichern, zu überwachen bzw. zu verfolgen, zu erteilen und wieder zusammenzusetzen, ohne die Präsentation bzw. die Darstellung von Inhalten an den Benutzer zu verzögern, wobei ferner auch nur ein minimaler Speicherraum erforderlich ist.
- Beschrieben werden ein Verfahren und eine Vorrichtung zum effizienten Speichern großer Dateien. Ein Content-Netzwerk zur Übertragung von Dateien zu einem Benutzer umfasst eine Mehrzahl von Speicherelementen, die sich in einer Reihe geografisch verteilter Netzwerkknoten befinden und so konfiguriert sind, dass sie Abschnitte einer Datei speichern. Eine Software-Managementstruktur speichert Informationen über den Inhalt und die Position bzw. den Ort jedes der Speicherelemente in Bezug auf die Datei. Eine Software-Inhalts-Pruning-Struktur ist mit der Software-Managementstruktur gekoppelt und so konfiguriert, dass die in den Speicherelementen gespeicherten Inhaltsblöcke selektiv beschnitten werden, um sicherzustellen, dass die Datei in dem Netzwerk effizient gespeichert wird.
- Die Abschnitte und die Größe einer an jedem Knoten gespeicherten Datei sind abhängig von dem verfügbaren Speicher, der Popularität des Inhalts, der Verteilungskriterien des Eigentümers der Inhalte, etc. Somit können die Blöcke einer Datei, deren Verwendung am wenigsten wahrscheinlich ist, beschnitten werden (d. h. aus dem lokalen Speicher gelöscht werden), um Platz für Inhalte zu schaffen, die mehr nachgefragt werden. Obgleich jedoch die Blöcke einer Datei beschnitten werden, die mit der geringsten Wahrscheinlichkeit verwendet werden, kann der ganze Inhalt einer Datei an einem Knoten in dem skalierbaren Netzwerk für die Lieferung von Inhalten (Content Delivery Network) verwaltet werden, solange der Eigentümer bzw. der Besitzer des Inhalts möchte, dass der Content in dem Netzwerk verbleibt. Auf diese Weise können sehr große Dateien effizient gespeichert werden.
- Weitere Merkmale und Vorteile der vorliegenden Erfindung sowie der Aufbau und der Betrieb verschiedener Ausführungsbeispiele der vorliegenden Erfindung werden nachstehend in Bezug auf die beigefügten Zeichnungen näher beschrieben.
- Kurze Beschreibung der Zeichnungen
- Die beigefügten Zeichnungen, die hierin enthalten sind und einen Bestandteil der Patentschrift bilden, veranschaulichen die vorliegende Erfindung und dienen in Verbindung mit der Beschreibung der Erläuterung der Grundsätze der Erfindung sowie dazu, es einem Fachmann auf dem Gebiet zu ermöglichen, die Erfindung nachzuvollziehen und zu nutzen. In den beigefügten Zeichnungen zeigen:
-
1 eine Darstellung eines skalierbaren Content Delivery Networks für die Zustellung bzw. Übertragung von Dateisystemobjekten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
2 eine Darstellung einer virtuellen Baumanordnung der Knoten für die Steuerinformationskommunikation gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
3 eine Darstellung einer Attribut-Bitmail und einer Rolled Up-Bitmap gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; - die
4A –4C vereinfachte Layouts eines Verteilungszentrums gemäß Ausführungsbeispielen der vorliegenden Erfindung; - die
5A –5C drei veranschaulichende Ausführungsbeispiele der Anwendungsserver-Cluster gemäß der vorliegenden Erfindung; -
6 ein Layout eines Virtual File Control System-Clusters gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; - die
7A –B den Prozess des Einführens eines neuen Dateisystemobjekts in einen SCDN oder des Aktualisierens oder Löschens eines bestehenden Dateisystemobjekts aus dem SCD gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
7C die Anwendung von Richtlinien für die Service- bzw. Dienstqualität auf der Basis des Dateisystemobjekts und des Objekttyps gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
8 eine Darstellung linearer und nicht-linearer Strukturen, wie diese in der vorliegenden Erfindung eingesetzt werden; -
9 den Prozess der Zerlegung einer Datei in Blockdateien zur Speicherung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; - die Figuren
10A –B zwei Darstellungen der zerlegten Datei gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; - die
11A –B veranschaulichende Ausführungsbeispiele der Verteilung eines Dateisystemobjekts und der Metadaten in dem Netzwerk gemäß der vorliegenden Erfindung; -
11C die Art und Weise, wie Verteilungsserver zusammenarbeiten, um Metainformationen und Inhalte dynamisch zu verteilen und zu replizieren, so dass jeder Server eine globale Dateisystemansicht darstellt, die eine aggregierte Ansicht des ganzen Netzwerks darstellt; - die
12A –C veranschaulichende Ausführungsbeispiele der Metadateisystemstruktur, der Blockdateistruktur eines zugrunde liegenden Dateisystems und von Metadatenbeispielen gemäß der vorliegenden Erfindung; - die
13A –C veranschaulichende Ausführungsbeispiele der Datenträger-, Verzeichnis- und Datei-Metadaten gemäß der vorliegenden Erfindung; -
13D ein veranschaulichendes Ausführungsbeispiel von Blockindexanordnungs-Metadaten gemäß der vorliegenden Erfindung; -
14A ein Diagramm des Prozesses der Rekonstruktion einer Datei aus einer oder mehreren Blockdateien gemäß der vorliegenden Erfindung; -
14B ein Diagramm des Algorithmus zum Lokalisieren von Daten in dem Prozess der Rekonstruktion einer Datei in Echtzeit gemäß der vorliegenden Erfindung; - die
15A –C drei veranschaulichende Ausführungsbeispiele eines VFCS gemäß der vorliegenden Erfindung; -
16 ein Flussdiagramm der Operationen eines VFCS-Servers, die während dem VFCS-Initialisierungsprozess ausgeführt werden, um eine globale Dateisystemdarstellung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zu erzeugen; -
17A die VFCS-Server-Operationen, die während Laufzeit gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden; -
17B die Anwendung von Richtlinien für die Service- bzw. Dienstqualität auf der Basis des Benutzers und des Dateisystemobjekttyps gemäß der vorliegenden Erfindung; -
18 eine Darstellung der VFCS-Module gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
19 ein Flussdiagramm der Operationen eines VFCS-Servers, der eine Leseanforderung gemäß einem Ausführungsbeispiels der vorliegenden Erfindung bearbeitet; -
20 ein Diagramm einer Server-Anforderungsverteilungsfähigkeit einer SCDN Lastverteilungseinrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
21 ein Diagramm einer Server-Redundanzfunktion, die durch eine SCDN Lastverteilungseinrichtung gemäß einem Ausführungsbeispiel der vorliegenden erfindung bereitgestellt wird; -
22 ein Diagramm einer Instant-Failover-Funktion einer SCDN Lastverteilungseinrichtung als zustandslose Lastverteilungseinrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
23 ein Diagramm einer SCDN Lastverteilungseinrichtung, welche in Paket neu leitet, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
24 ein veranschaulichendes Ausführungsbeispiel einer SCDN Lastverteilungseinrichtung, die Pakete mit direkter Serverrückführung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung umleitet; -
25 ein Flussdiagramm eines eingehend gerichteten Paketumleitungsprozesses, der von einer SCDN Lastverteilungseinrichtung ausgeführt wird, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
26 ein Flussdiagramm eines Gesundheitsprüfungsprozesses, der von einer SCDN Lastverteilungseinrichtung ausgeführt wird, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
27 eine Darstellung einer Station, welche eine exemplarische Steuereinheit und Datendepots darstellt; -
28 ein Zustandsdiagramm der Speicherverwaltungsschritte, die gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden; - die
29A –E eine Unterteilung der Operationen aus28 in kleinere Teilaufgaben; -
30 die Speicherverwaltungs-Wissensbasistabellen; und -
31 ein beispielhaftes Computersystem- und Computerprogrammprodukt, in dem die vorliegende Erfindung überwiegend in Software implementiert wird. - Genaue Beschreibung der bevorzugten Ausführungsbeispiele
- Die folgende Beschreibung betrifft die besten Ausführungsmodi, die gegenwärtig für die Ausführung der Erfindung in Erwägung gezogen werden. Diese Beschreibung ist nicht einschränkend auszulegen, vielmehr dient sie lediglich dem Zweck der Beschreibung der allgemeinen Grundsätze der Erfindung. Der Umfang der Erfindung ist in Bezug auf die Ansprüche zu bestimmen.
- Die vorliegende Erfindung betrifft ein Verfahren und ein System zum Speichern und Verteilen von Inhalten bzw. Content. Im Besonderen stellt die vorliegende Erfindung eine in hohem Maße effiziente Architektur und Technik bereit, um Inhalte zu verarbeiten, zu speichern und um Inhalte an einen Benutzer für Schulungszwecke, zur Unterhaltung, für geschäftliche Zwecke oder für jeden anderen gewünschten Zweck bereitzustellen. Bei einem Verfahren und System gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird ein hoch entwickeltes Lese-Schreib-fähiges integriertes Netzwerkdateisystem erzeugt, bei dem die Verzeichnispräsentation und die Datenspeicherung getrennt werden. Das Verfahren und das System umfassen die Aufteilung, die Verteilung und das Wiederzusammensetzen der Dateien, wobei die Präsentation von Inhalten an den Benutzer nicht verzögert werden, wobei aber auch kein unangemessen hoher Speicherplatz benötigt wird. Das Verfahren und das System umfassen ferner die Erzeugung eines integrierten Dateisystems und die Verteilung von Dateisystemobjekten, einschließlich Volumina, Verzeichnissen und Dateien.
- Die Erfindung wird beschrieben in Bezug auf spezifische Architekturen und Protokolle. Der Fachmann auf dem Gebiet wird erkennen, dass die Beschreibung der Veranschaulichung dient sowie zur Bereitstellung der besten Ausführungsart der Erfindung. Ein Ausführungsbeispiel der vorliegenden Erfindung stellt einen verbesserten Mechanismus zur Aufteilung und Verteilung von Dateien (bezeichnet als Nutzlast bzw. Payload oder Inhalt bzw. Content) in einem Computernetzwerk bereit. Ein weiteres Ausführungsbeispiel der vorliegenden Erfindung stellt ein Verfahren zur Erzeugung einer integrierten Dateisystemansicht mit mehreren Inhaltsknoten bzw. Content-Knoten bereit. Vorgesehen ist gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung ein Verfahren zum Verteilen, Replizieren und Synchronisieren der Aktualisierung von Dateisystemobjekten, wie etwa von Volumina, Verzeichnissen und Dateien. In der folgenden Beschreibung sind zahlreiche besondere Einzelheiten ausgeführt, um eine umfassendere Beschreibung der Ausführungsbeispiele der Erfindung zu vermitteln. Die Beschreibung ist nicht einschränkend auszulegen. Zum Beispiel wird auf das Internet Protocol und UNIX verwiesen, wobei jedoch jedes Paketprotokoll und jedes Betriebssystem eingesetzt werden können.
- Wenn die Erfindung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung implementiert wird, so wird Endbenutzersystemen eine Möglichkeit bereitgestellt, auf Dateisystemobjekte zuzugreifen, ohne das Netzwerk zu stark zu belasten, welches das Endbenutzersystem jeweils für die Datenübermittlung verwendet. In einem Ausführungsbeispiel der vorliegenden Erfindung erreicht das System dies, indem die Datei in mehrere Abschnitte bzw. Teilstücke (Segmente oder Spuren) aufgeteilt wird, und wobei diese Abschnitte und andere Dateisystemobjekte an Orten bzw. Stellen (z. B. Knoten) gespeichert werden, die über das Netzwerk verteilt sind. Die Abschnitte und sonstigen Dateisystemobjekte, die im Netzwerk gespeichert sind werden unter Verwendung einer Flussoptimierungstechnik verteilt, die eine intelligente Verwaltung aller Dateisystemobjekte und Datenabschnitte bereitstellt. Somit werden Dateisystemobjekte und Abschnitte der Datei an Stellen bzw. Orten gespeichert, welche die benötigte Zeit minimieren, um den Abschnitt an das Endbenutzersystem zu liefern bzw. zu übertragen. Die Orte bzw. Stellen minimieren die Latenz, die der Zustellung der Daten an das Endbenutzersystem zugeordnet ist, und wobei diese Stellen hierin als der Rand des Netzwerks bezeichnet werden.
- Jeder Knoten am Rand des Netzwerks, der die Aspekte der Erfindung ausführt bzw. aufweist, ist so konfiguriert, dass er so erscheint, als ob die Datei lokal gespeichert wäre, wenn Abschnitte der Datei tatsächlich an anderen Knoten gespeichert sind, die in dem Netzwerk verteilt angeordnet sind. Dies erhöht erheblich die virtuelle Speicherkapazität jedes Netzwerkknotens, ohne Systemressourcen zu verbrauchen. Die Knoten verteilen und replizieren Datenblöcke und andere Dateisystemobjekte in einer Art und Weise, welche die Datenübertragungseffizienz maximiert, während der Bandbreitenverbrauch minimiert wird. Wenn das Endbenutzersystem eine Anforderung von Inhalten bzw. Content ausgibt (z. B. für eine Datei), so wird die Anforderung zu dem am nächsten gelegenen Knoten geleitet, und der Knoten importiert nicht-residente Daten des angeforderten Inhalts von anderen Knoten auf eine Art und Weise, welche die geringste Zeit und die niedrigsten Kosten erfordert. Das Endergebnis ist es, dass jeder Netzwerkknoten auf zahlreiche oder alle Dateisystemobjekte (Volumina, Verzeichnisse und Dateien) zugreifen kann bzw. Zugriff hat, ohne dass der ganze Inhalt bzw. Content jedes dieser Objekte lokal gespeichert und verwaltet werden muss.
- Vorgesehen sind gemäß einem oder mehreren Ausführungsbeispielen der vorliegenden Erfindung effiziente Verfahren und Systeme zur Aufteilung bzw. Zerlegung einer Datei zum Speichern und zur Rekonstruktion der Datei für die Zustellung bzw. Übertragung. Der Prozess der Aufteilung einer großen Nutzlastdatei wird als "Chunking" oder Zerlegung bezeichnet und wird nachstehend im Text näher beschrieben. Vorgesehen ist gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung ein Verfahren zur Erzeugung eines integrierten Dateisystems aus mehreren Knoten. Vorgesehen ist gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung ein Verfahren zum Verteilen, Replizieren und Synchronisieren von Dateisystemobjekten unter einem Netzwerk von Knoten. Vorgesehen sind gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung ein Verfahren und ein System zum Anordnen einer Gruppe von virtuellen Dateisystemen in Clustern. Diese Anordnung in Clustern einer Gruppe von virtuellen Dateisystemen erhöht die Zuverlässigkeit und die Verfügbarkeit und steigert gleichzeitig die E/A-Bandbreite durch Lastverteilung bzw. Lastausgleich. Diese Ausführungsbeispiele werden nachstehend im Text näher beschrieben.
- A. Netzwerkarchitektur
- 1. Skalierbares Content Delivery Network
- Die Abbildung aus
1 zeigt eine Ansicht eines skalierbaren Netzwerks für die Lieferung von Inhalten (Scalable Content Delivery Network bzw. SCDN)100 für die Zustellung bzw. Übertragung großer Nutzlasten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Bei dem SCDN100 kann es sich um ein Netzwerk wie das Internet handeln, das konzeptuell einen Netzwerkkern105 (d. h. den Backbone), intermediäre Netzwerksegmente110 , die von "nah an" und "weit von" dem Kern angeordnet reichen, und Netzwerksegmente, die "fern" von dem Kern angeordnet sind120-A bis120-C (gemeinsam520 ). "Nah" bzw. "nah an" und "weit" bzw. "weit von" beziehen sich auf die Entfernung bzw. den Abstand und sollen die relativen Weg- bzw. Pfadlatenzen (kurz bzw. lang) zu dem Kern anzeigen, wobei diese Latenzen allgemein abhängig sind von der Anzahl der intermediären Hubs (z. B. Switches, Router und dergleichen), die gekreuzt bzw. passiert werden, um die Hochgeschwindigkeits-Backbones zu erreichen, welche den Kern des Netzwerks bilden, und durch welche der Netzwerkverkehr geleitet wird. Hiermit wird festgestellt, dass jeder intermediäre Hub eine gewisse beschränkte Verarbeitung ausführen kann, welche Latenz hinzufügt, bevor der Verkehr zu dem nächsten Hub weitergeleitet wird. - Die Abbildung aus
1 zeigt eine Mehrzahl von Content Provider Clients (CPCs)130 , eine Mehzahl von Endbenutzer-Clients (EUCs als englische Abkürzung von End-User Clients)150 und einen oder mehrere Content Management Server (CMS)170 , die alle jenseits des Netzwerkrands101 angeordnet sind. Diese Anordnung dient der Veranschaulichung und schränkt die Erfindung nicht ein. Zum Beispiel können sich ein CPC130 , EUC150 und/oder CMS170 an jeder Stelle in einem Netzwerk befinden, auch jenseits des Netzwerkrands, an einem Netzwerkrand oder an einer beliebigen Stelle innerhalb eines Netzwerks, wie zum Beispiel in einem Netzwerksegment oder Kern. - Im Allgemeinen kann der Content Provider Client
130 mit einem Content Management Server170 verbunden (oder diesem zugeordnet) werden, der wiederum mit dem ihm zugeordneten Verteilungszentrum140 verbunden ist, oder der Content Provider Client130 kann mit jedem beliebigen Verteilungszentrum140 verbunden werden (oder diesem zugeordnet sein). In dieser Umgebung kann jeder Anschluss bzw. jede Verbindung eingesetzt werden, die durch das SCDN100 unterstützt werden. Zu den Beispielen für derartige Verbindungen zählen unter anderem ein physikalischer Übermittlungsabschnitt bzw. Link, (über jedes kabelgebundene oder kabellose Medium), ein Datenübermittlungsabschnitt, ein logischer Übermittlungsabschnitt, eine permanente virtuelle Schaltung, eine geschaltete virtuelle Schaltung, ein verbindungsorientiertes Protokoll, ein verbindungsloses Protokoll sowie jede andere direkte oder indirekte Netzwerkverbindung und/oder jedes Protokoll und Kombinationen dieser. - Ein Content Provider Client kann eine Anwendung zur Verwaltung von Inhalten in dem Netzwerk darstellen, wobei es sich dabei aber auch um einen allgemeinen Dateisystem-Client handeln kann, der eine Verbindung mit einem Virtual File Control System (nicht abgebildet) in einem Verteilungszentrum
140 aufweist. Ein Content Owner (Inhaltseigentümer) erstellt, benennt um, verschiebt, löscht und verwaltet Datenträger bzw. Volumen und Verzeichnisse über einen entsprechenden CPC130 . Ein Content Owner lädt ferner Dateien über seinen bzw. ihren CPC130 in das SCDN100 hoch, aktualisiert und verwaltet diese Dateien. Der EUC150 ermöglicht einem Endbenutzer des Inhalts Zugriff auf die Dateien in den SCDN100 . Zum Beispiel kann es sich bei dem EUC150 um jede Art von Browser (insbesondere einen Web-Browser oder jeden Dateisystem-Browser) handeln, der auf der lokalen Vorrichtung des Endbenutzers läuft. Dabei kann jede Art von Endbenutzervorrichtung eingesetzt werden, die einen Endbenutzer-Client150 unterstützen kann, insbesondere ein Computer (z. B. ein Personalcomputer, eine Workstation oder ein Server), eine Set-Top-Box, ein Fernseher, ein Telefon oder eine Handheld-Computervorrichtung (z. B. Organizer, Palm-Top-Geräte). - Der Netzwerkrand
101 kann weit von dem Netzwerkkern105 entfernt sein. Der Abstand bzw. die Entfernung (d. h. die Strecken- bzw. Pfadlatenz) zwischen dem Kern und dem Rand kann jedoch uneinheitlich sein und in Bezug auf einen bestimmten CPC oder EUC erheblich variieren. In einem Ausführungsbeispiel der vorliegenden Erfindung wird eine Mehrzahl von Verteilungszentren (DC)140A –140I zur Nutzlastverwaltung am Rand des Netzwerks platziert, wodurch die Latenz für entsprechende Endbenutzer-Clients150 reduziert oder eliminiert wird. Der Nutzlastinhalt von einem Content Owner wird von einem Verteilungszentrum zu anderen Verteilungszentren am Rand des Netzwerks übertragen. Ein Endbenutzer, der auf einen bestimmten Nutzlastinhalt zugreifen möchte, wird von dem am nächsten gelegenen Verteilungszentrum bedient (über einen Netzwerkdateisystem-Client oder einen Anwendungsserver), welches den gewünschten Inhalt aufweist. Die Latenz aufgrund von Streckenaspekten wird minimiert, da Inhalte bzw. Content über eine Mehrzahl von Anwendungsservern (AS)160 und Verteilungszentren140 , die an dem Netzwerkrand101 angeordnet sind, an die Endbenutzer (z. B. einen entsprechenden EUC150 ) verteilt werden. Die Verteilung umfasst somit das Erhalten von etwaigen Dateisystemobjekten von einem Content Provider sowie das geografische Platzieren dieser Objekte oder Abschnitte jedes Objekts an den Verteilungszentren, die allgemein nah an dem Rand des Netzwerks angeordnet sind. - Die Verteilungszentren
140A –140I in dem SCDN100 aus der Abbildung aus1 sind zum Beispiel virtuell in Form eines Baums200 angeordnet, wie dies in der Abbildung aus2 dargestellt ist. Diese virtuelle Baumanordnung wird primär eingesetzt für die Kommunikation bzw. Übertragung von Steuerinformationen und Signalen zwischen den Knoten des skalierbaren Content Delivery Networks100 . Daten-Downloads können von jedem Knoten in dem Netzwerk ausgeführt werden, der die gewünschten Daten aufweist, vorzugsweise von dem am nächsten gelegenen Knoten (in Bezug auf die Netzwerkentfernung). Die Knoten A bis I aus der Abbildung aus2 stellen die entsprechenden DCs140A bis140I dar. Die Knoten sind in einer logischen Reihenfolge bzw. Anordnung angeordnet. Wenn zum Beispiel angenommen wird, dass der Knoten B Europa-England darstellt, so kann es sich bei den logischen Tochter- bzw. Kindknoten in Europa um Europa-Frankreich (z. B. Knoten D) und Europa-Deutschland (z. B. Knoten E) handeln, und wobei es sich um einen Tochterknoten von Europa-Frankreich zum Beispiel um Europa-Italien (z. B. Knoten H) handeln kann. In diesem Beispiel stellt die linke Seite des Baums Europa dar, so dass die rechte Seite Asien darstellen kann. - Der Knoten A stellt den Wurzelknoten dar und kann zum Beispiel eine zentrale Steuerstation darstellen. In einem oder mehreren Ausführungsbeispielen weist jeder Knoten A bis I in dem Baum
200 eine eindeutige Attributanordnung auf, welche den Namen des Knoten darstellt. Die Attributanordnung für einen Knoten wird an einem entsprechenden DC140A –140I gespeichert und kann in jeder geeigneten Datenstruktur dargestellt werden. Die Attributanordnung kann zum Beispiel als eine Variablen-Bitmap dargestellt werden (eine Bitmap ist die binäre Darstellung eines Objekts, wie zum Beispiel einer Zahl). Jeder Knoten weist ferner eine Darstellung der Attributanordnung jedes Kinds, Enkelkinds oder Urenkelkinds, etc. des Knotens auf (d. h. aller Knoten die von dem Knoten als Wurzelknoten abstammen – Abkömmlinge in gerader Linie). Diese Darstellung wird in englischer Sprache als "Rolled Up Set of Attributes" (aufgerollte Attributanordnung) bezeichnet, und wobei diesbezüglich jede geeignete Datenstruktur verwendet werden kann. Somit ist das "aufgerollte" Attribut eines Knotens die Darstellung des aufgerollten Attributs dessen Kindern bzw. Abkömmlingen. Zum Beispiel kann eine "Rolled Up Bitmap", bei der es sich um eine Kombination aus aufgerollten Attribut-Bitmaps aller Kinder des Knotens handelt, verwendet werden. Eine "Rolled Up Bitmap" kann definiert werden als ein "binäres ODER" (auch als "bitweises ODER" bezeichnet) der aufgerollten Attribute der Kindern des Knoten. - Die Abbildung aus
3 zeigt eine Darstellung beispielhafter Attribut-Bitmaps300 ,310 ,320 ,330 und aufgerollter bzw. Rolled Up Bitmaps340 ,350 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Jede Bitmap300 bis350 verwendet zu Veranschaulichungszwecken16 Bits, aber da die Bitmaps variabel sind, können sie nach Bedarf variieren, um jeden Knoten zu identifizieren und um andere Informationen bereitzustellen. - Die Bitmap
300 stellt die Attributanordnung für den Knoten B aus der Abbildung aus2 dar und weist als Identifikation die Bits 1, 4 und 13 auf 1 gesetzt und alle anderen Bits auf 0 gesetzt auf. Das Bit 1 kann gesetzt werden, da der Knoten B zum Beispiel ein Tochterknoten von A ist, wobei as Bit 4 gesetzt werden kann, um Europa darzustellen, und wobei das Bit 13 gesetzt werden kann, um England darzustellen. Die Bitmap310 stellt die Attributanordnung für den Knoten D aus der Abbildung aus2 dar, einen Tochterknoten von B, und wobei die Bits 1, 4 und 14 auf 1 und alle anderen Bits auf 0 gesetzt sind. Das Bit 14 kann zum Beispiel für Frankreich stehen. Die Bitmap320 stellt die Attributanordnung für den Knoten E aus2 dar, ebenfalls ein Tochterknoten von B, und wobei die Bits 1, 4 und 15 auf 1 und alle anderen Bits auf 0 gesetzt sind. Das Bit 15 kann zum Beispiel Deutschland darstellen. Das Bitmap330 stellt die Attributanordnung für den Knoten H aus der Abbildung aus2 dar, einen Tochterknoten von D, und die Bits 1, 4 und 16 sind auf 1 und alle anderen Bits auf 0 gesetzt. Das Bit 16 kann zum Beispiel für Italien stehen. Aufgerollte Bitmaps werden ebenfalls für jeden Knoten gespeichert, der Abkömmlinge aufweist. Die Rolled Up Bitmap340 stellt die aufgerollte Anordnung von Attributen für den Knoten D dar. In diesem Fall entspricht die aufgerollte Bitmap340 für den Knoten D der Attribut-Bitmap des Knoten H, da H keine Kinder bzw. Abkömmlinge aufweist. Die aufgerollte Bitmap350 stellt die aufgerollte Anordnung von Attributen für den Knoten B dar. In diesem Fall handelt es sich bei der aufgerollten Bitmap350 für den Knoten B um das binäre ODER der Attribut-Bitmaps310 ,320 und330 . Das Ergebnis des binären ODER ist es, dass alle gesetzten Bits in den Bitmaps310 ,320 und330 auch in der aufgerollten Bitmap350 gesetzt sind bzw. werden (d. h. die Bits 1, 4, 14, 15 und 16). - Der Content Management Server
170 kann mit jedem Knoten A bis I des Baums200 verbunden werden. Selbst in Beispielen, bei denen der Content Management Server170 und das Verteilungszentrum140A –140I sich nicht an dem gleichen Ort befinden, kann der Content Management Server170 somit einem Content Owner bzw. Inhaltseigentümer ein Mittel zur Verfügung stellen, Dateisystemobjekte den Verteilungszentren140A bis140I zuzuführen und um die Dateisystemobjekte in dem Netzwerk100 zu verwalten. Der Content Management Client130 kann direkt mit einem Verteilungszentrum140A bis140I verbunden werden, um ähnliche Funktionen auszuführen, wie diese durch einen Content Management Server170 bereitgestellt werden. In einem Ausführungsbeispiel handelt es sich bei dem Content Management Server170 um einen Computer, der die Dateisystemobjekte des Content Owners zur Verteilung in dem Netzwerk100 verarbeitet. In einem anderen Ausführungsbeispiel handelt es sich bei dem Content Management Server170 um eine Untergruppe von Werkzeugen bzw. Tools (z. B. maschinenunabhängigen Objekten), welche die Verwaltung, Verteilung, den Zugriff auf und die Steuerung von Dateisystemobjekten in dem Netzwerk100 ermöglicht. Die Tools können in dem Computer des Inhalteeigentümers eingebettet sein, für eine Verarbeitung und Verteilung einer großen Nutzlastdatei in dem Netzwerk100 . In einem anderen Ausführungsbeispiel handelt es sich bei dem Content Provider Client130 um einen Standarddateisystem-Client, der eine direkte Verbindung zu dem Virtual File Control System (virtuelles Dateisteuersystem) eines Verteilungszentrums140A bis140I aufweist, während die Verarbeitungs-Tools in dem Virtual File Control System eingebettet sein können. Nachdem ein Content Provider ein Dateisystemobjekt in den Content Management Server170 geladen hat, kann der CMS170 das Objekt verarbeiten und es an ein Verteilungszentrum140A bis140I weiterleiten. - 2. Verteilungszentrum
- Die Verteilungszentren (DC)
400A –400C werden in Bezug auf die in den Abbildungen der4A bis4C dargestellten Ausführungsbeispiele beschrieben. Ein Verteilungszentrum wird auch als eine Station oder ein Datenzentrum bezeichnet. Die Funktionsweise bzw. der Betrieb von Verteilungszentren und deren Komponenten gemäß der vorliegenden erfindung wird danach ebenfalls in näheren Einzelheiten beschrieben. - Die Abbildung aus
4A zeigt ein Diagramm eines Verteilungszentrums400A gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Das Verteilungszentrum400A weist einen Verteilungsserver-Cluster (DSC)410 , einen Anwendungsserver-Cluster (ASC)420A , eine Steuereinheit (CU)450 , ein gemeinsam genutztes Speichersystem430 , einen Speicher-Switch440 und einen steuerungsbezogenen Intrastations-Switch415 auf. Der Verteilungsserver-Cluster410 kommuniziert mit dem Speichersystem430 über den Speicher-Switch440 unter Verwendung der Übermittlungsabschnitte443 und445 . Der Anwendungsserver-Cluster420A kommuniziert mit dem Speichersystem430 über den Speicher-Switch440 unter Verwendung der Übermittlungsabschnitte441 und444 . Der Anwendungsserver-Cluster420A weist ferner ein Virtual File Control System470 gemäß der vorliegenden Erfindung auf. Die Steuereinheit450 , der Verteilungsserver-Cluster410 und der Anwendungsserver-Cluster420A kommunizieren alle über den steuerbezogenen Intrastations-Switch415 (Intra-Station Control Related Switch), der mit dem Speicher-Switch440 kommuniziert. Die Steuereinheit450 weist ihr eigenes lokales Speichersystem460 auf. - Das Verteilungszentrum
400A kommuniziert mit mehreren EUCs150 über den Anwendungsserver-Cluster420A . Der ankommende ASC-Verkehr402 kommt an dem Anwendungsserver-Cluster420A von einem oder mehreren EUCs150 in dem Netzwerk100 an. Der abgehende ASC-Verkehr404 wird von dem Anwendungsserver-Cluster420A in dem Netzwerk an einen oder mehrere EUCs150 in dem Netzwerk gesendet. Das Verteilungszentrum400A kommuniziert ferner mit anderen Verteilungszentren140 und CMS170 in dem Netzwerk100 über den Verteilungsserver-Cluster410 . Der ankommende DS-Verkehr412 kommt an dem Verteilungsserver-Cluster410 von einem oder mehreren Verteilungszentren140 und/oder CMS170 in dem Netzwerk100 an. Der abgehende DS-Verkehr414 wird von dem Verteilungsserver-Cluster410 an ein oder mehrere Verteilungszentren140 und/oder CMS170 in dem Netzwerk100 gesendet. Die Steuereinheit450 sendet und empfängt Steuerverkehr416 an und von einem oder mehreren Verteilungszentren140 und/oder CMS170 in dem Netzwerk100 . - Die Abbildung aus
4B zeigt ein Diagramm des Verteilungszentrums400B gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung. Das Verteilungszentrum400B weist eine Steuereinheit450 auf, ein oder mehrer Virtual File Control Systeme (VFCS)470 , einen oder mehrere Verteilungsserver in einem Verteilungsserver-Cluster410 und eine Mehrzahl von Speichervorrichtungen430<1> 430<3> . Der Anwendungsserver-Cluster420B weist einen oder mehrere Anwendungsserver420<1> –420<M> und jedes VFCS470 auf. Die Steuereinheit450 ist der Netzwerkmanager für das Verteilungszentrum400B und ist mit jedem VFCS470 und DSC410 gekoppelt. Bei den Anwendungsservern420<1...N> kann es sich um jede Art von Anwendungsserver handeln, einschließlich und nicht beschränkt auf Streaming-Server, FTP-Server und Media Player. Die Anwendungsserver420<1...N> sind kein Teil des Verteilungszentrums400B , wobei sie jedoch mit dem Virtual File Control System470 verbunden dargestellt sind, um zu veranschaulichen, wie Endbenutzer-Clients150 auf Dateien zugreifen, die in dem SCDN100 gespeichert sind. Die Speichervorrichtungen430<1...3> sind zwischen dem410 und jedem VFCS470 gekoppelt. - Die Komponenten des Verteilungsserver-Clusters
410 müssen sich nicht an dem gleichen Knoten befinden wie die VFCS470 und die Steuereinheit450 . Zum Beispiel kann jedes VFCS470 mit den Anwendungsservern420 angeordnet sein, und die Steuereinheit450 kann sich an anderer Stelle befinden, wie zum Beispiel bei den VFCS470 . Somit ist es nicht erforderlich, dass sich alle Komponenten des Verteilungszentrums400B gemeinsam an einem SCDN-Knoten befinden. - Die Abbildung aus
4C zeigt ein Verteilungszentrum400C gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung. Die Abbildung aus4C veranschaulicht, wie Verteilungsserver über Cluster miteinander verbunden sind, mit einem Load Balancer bzw. einer Lastverteilungseinrichtung als Schnittstelle zu dem Rest des Netzwerks100 . Das Verteilungszentrum400C ist dem Verteilungszentrum400A ähnlich, wobei es jedoch einen Verteilungszentrum-Cluster (DSC)410 aufweist, der eine Lastverteilungseinrichtung411 aufweist, die mit einer Mehrzahl von Verteilungsservern413 DS<1...N> gekoppelt ist. Die Verteilungsserver413 sind in der Station400C in Cluster angeordnet, um deren Arbeitslast zu verteilen. Der DSC410 stellt unter anderem Systemfehlertoleranz und Skalierbarkeit bereit. In einer Station befinden sich zwar mehrere Verteilungsserver413 , allerdings erscheinen sie als eine Schnittstelle zu den externen Stationen. Die Lastverteilungseinrichtung411 ist deren Schnittstelle zu der äußeren Umgebung, wobei die Einrichtung Anforderungen an jeden DS<1..N> ausgibt, unter Berücksichtigung deren aktuellen Arbeitslast bzw. Workload. - Das Verteilungszentrum
400C weist ferner einen Anwendungsserver-Cluster420C auf. Der Anwendungsserver-Cluster420C weist ein Lastverteilungs- und/oder Routing-System422 , die Anwendungsserver425 AS<1...M>, ein Lastverteilungs- und/oder Routing-System424 und ein oder mehrere Virtual File Control Systeme (VFCS)470 auf. Der ankommende ASC-Verkehr402 kommt an dem Lastverteilungs- und/oder Routing-System422 an, welches den Verkehr über die Anwendungsserver425 AS<1...M> verteilt. Der Verkehr von den Anwendungsservern425 wird zu dem Lastverteilungs- und/oder Routing-System424 gesendet, welches den Verkehr über die Virtual File Control Systeme470 VFCS<1...L> verteilt. Der abgehende ASC-Verkehr404 wird von dem Switch415 über die Virtual File Control Systeme470 VFCS<1...L> zu den Anwendungsservern425 geleitet und danach zu dem Lastverteilungs- und/oder Routing-System422 . Ausführungsbeispiele von Anwendungsserver-Clustern werden ferner in Bezug auf die Abbildungen der5A bis5C beschrieben. Ein Ausführungsbeispiel eines Virtual File Control System-Clusters mit einer Lastverteilungseinrichtung und mehrfachen virtuellen Dateisteuerung wird in Bezug auf die Abbildung aus6 näher beschrieben. - Ein Content Owner erstellt, bewegt, löscht, benennt um, aktualisiert und verwaltet Dateisystemobjekte direkt über ein oder mehrere Verteilungszentren
140 ,400 oder direkt über einen oder mehrere Content Management Server170 . Ein Content Owner kann ferner eine Datei oder Dateiverzeichnisse in einen oder mehrere Content Management Server170 hochladen, unter Verwendung von Content Publishing und Management Tools, die auf einem Client-System130 des Content Owners laufen bzw. ausgeführt werden. Nach dem Empfang der Dateisystemobjekte verarbeiten CMS170 oder ein VFCS470 die Dateisystemobjekte und erzeugen Objekt-Metadaten, wobei die diesbezüglichen Einzelheiten nachstehend in Bezug auf die Abbildungen der7A bis7C und andere Figuren beschrieben werden. Für die Verarbeitung eines Dateiobjekts bestimmen CMS170 oder VFCS470 Track- bzw. Verfolgungsdateien (auch als lineare Dateien bekannt) in der ursprünglichen Datei, sofern dies erforderlich ist. Eine lineare Datei ist eine Datei, die die Anordnung beibehält, welche der Substanz (d. h. dem substantiven Inhalt) der Datei zugeordnet ist. In einem Beispiel für die vorliegende Erfindung handelt es sich bei einer linearen Datei um eine Datei, bei der die ersten 10% des Inhalts der Anwendung ungefähr innerhalb der ersten 10% der ganzen Datei liegen müssen, beginnend am Anfang der Datei. In einer nicht linearen Datei können die ersten 10% des Inhalts über mehrere Standorte bzw. Positionen in der Datei verstreut sein. Wenn die lineare Datei zum Beispiel einen Film aufweist, so weist der Anfang der Datei die Anfangsabschnitte des Films auf. In ähnlicher Weise würden sich die mittleren Abschnitte und die Endabschnitte des Films in der Mitte und am Ende der linearen Datei befinden. Lineare Dateien sind wünschenswert, da diese Dateien leichter wieder zusammengesetzt werden können unter Verwendung von beispielsweise der linearen Überlagerung. Bestimmte Dateien sind nicht linear, das heißt, sie weisen mehrere Spuren oder Segmente auf, so dass der erste Teil des Inhalts zum Beispiel nicht am Anfang der Datei gespeichert wird. - Nach der Verarbeitung eines Dateisystemobjekts überträgt der CMS
170 oder das VFCS470 das Dateisystemobjekt an einen Verteilungsserver140 ,400 , mit dem eine Verbindung oder eine Zuordnung gegeben ist. Wenn es sich bei dem Objekt um eine Datei handelt, teilt der Verteilungsserver140 ,400 die ganze Datei (alle Track-Dateien) in Blockdateien auf, wie dies für die Speicherung gewünscht wird. Die Blockdateien können später an lokalen Speicherplätzen, wie zum Beispiel430<1...n> gespeichert werden. Ein Teil der Metadaten wird während der Verarbeitung des Dateisystemobjekts erzeugt. Zum Beispiel wird in Bezug auf eine Datei ein "Chunking" Prozess eingesetzt, um die Track-Dateien zu lokalisieren und die Datei in Blockdateien zu zerlegen, welche den Großteil der Metadaten erzeugen. Die Metadaten einer Datei werden eingesetzt, um die Datei aus einer Gruppe von Blockdateien zu rekonstruieren. - Ein Dateiverteilungsprotokollbefehl (z. B. FDP-Befehl) wird in der Folge verwendet, um die Metadaten und die Dateisystemobjekte oder ausgewählte Teile dieser zu verteilen (d. h. zu replizieren), und zwar an andere Verteilungsserver-Knoten in dem skalierbaren Content Delivery Network
100 . Für die erste Replikation einer Datei müssen nicht alle Blockdateien (die Chunks, die aus einer ursprünglichen Datei aufgeteilt worden sind) in allen Knoten gespeichert werden, wobei jedoch eine Masterkopie in bestimmten Knoten vollständig gespeichert werden kann (für gewöhnlich in bzw. an dem Ursprungsknoten). Das FDP weist Befehle auf, welche Dateiübertragungen und Manipulationen in dem SCDN100 erleichtert. Die Größe der Blöcke beeinflusst die Leistung sowohl der Verteilung von Inhalten als auch der Zustellung bzw. der Übertragung von Inhalten und wird nachstehend im Text näher beschrieben. - a. Virtual File Control System:
- Jedes Virtual File Control System (VFCS)
470 erzeugt eine integrierte Dateisystemverzeichnisdarstellung von Netzwerkknoten der Metadateisystemstruktur und Objektmetadaten. Die Metadateisystemstruktur und die Objektmetadaten werden anhand der Verarbeitung und des Speicherns von Dateisystemobjekten erzeugt; in Bezug auf ein Dateiobjekt handelt es sich bei diesem Prozess um den "Chunking" Prozes. Die Datenblöcke jeder durch ein VFCS470 dargestellten Datei werden nicht unbedingt in lokalen Speichervorrichtungen eines einzelnen Knoten gespeichert. Das VFCS470 kann die ursprüngliche Datei wieder in Echtzeit zusammenzusetzen, während eine Endbenutzeranforderung bearbeitet wird und die nicht-residenten Blöcke von anderen Knoten in die lokalen Speichervorrichtungen importiert werden. Wie dies nachstehend beschrieben wird, müssen nicht alle Blöcke der Datei an einem Verteilungszentrum gespeichert werden; wobei jedoch die ganze Datei in dem SCDN100 zur Verfügung steht. Wenn ein Endbenutzer eine Verbindung mit einem Anwendungsserver herstellt, erzeugt das VFCS470 ein virtuelles Erscheinungsbild, dass das ganze Dateisystemverzeichnis und alle Dateien bzw. die vollständigen Dateien an diesem Knoten zur Verfügung stehen. Wenn zum Beispiel angenommen wird, dass nur fünfzehn Prozent einer Datei von zwei Gigabyte in dem Speicher430<1...3> gespeichert werden, so sorgt das VFCS470 dafür, dass ein Anwendungsserver meint, dass die ganze Bibliothek und die ganze Datei von zwei Gigabyte an dem Ort zur Verfügung steht. Somit kann ein Anwendungsserver, wie zum Beispiel ein Streaming Server, die Wiedergabe einer Datei starten. Wenn die Datei wiedergegeben bzw. abgespielt wird, kommuniziert das VFCS470 mit einem DS, um die restlichen Abschnitte der Datei an anderen Knoten in dem Netzwerk zu lokalisieren und abzurufen. - b. Anwendungsserver-Cluster:
- Ein Anwendungsserver-Cluster (ASC) gemäß der vorliegenden Erfindung weist eine Gruppe von Anwendungsservern und eine Gruppe von Virtual File Control Systemen auf. Ein ASC stellt Unter anderem Dienste an einen Endbenutzer bereit (z. B. das Streaming eines Spielfilms bzw. Films in voller Länge an ein Client-System eines Endbenutzers). Wie dies vorstehend im Text bereits beschrieben worden ist, stellt das VFCS eine Management-Schnittstelle an den Content Owner bereit, während gleichzeitig Systemfehlertoleranz und Skalierbarkeit vorgesehen werden.
- Die Abbildungen der
5A –5C zeigen Ausführungsbeispiele von drei entsprechenden Anwendungsserver-Clustern500 ,502 ,504 gemäß der vorlegenden Erfindung. Jeder Anwendungsserver-Cluster500 ,502 ,504 weist Lastverteilungseinrichtungen520 und530 auf, eine Mehrzahl von Anwendungsservern425<1> bis425<M> (gemeinsam425 ) und eine Mehrzahl von Virtual File Control Systemen470-1 bis470-L (gemeinsam470 ). In einem Beispiel wird jedes Virtual File Control System470-1 bis470-L an einem entsprechenden Server (als Virtual File Control System Server bezeichnet) implementiert. Die Anwendungsserver-Cluster500 ,502 ,504 sorgen für fehlertolerante und skalierbare Systemleistung. Wenn zum Beispiel einer der Anwendungsserver425<1> bis425<M> ausfällt oder wenn einer der VFCS Server Systeme470-1 bis470-L ausfällt, verarbeitet einer der anderen vorhandenen Anwendungsserver425 oder VFCS-Server470 entsprechend die Anforderungen. Wenn in ähnlicher Weise mehr Systemleistung erforderlich ist, kann die Anzahl der Anwendungsserver, der VFCS-Server oder die Speicherkapazität des Speichersystems430 nach Bedarf erhöht werden. - Die Abbildung aus
5A zeigt ein veranschaulichendes Ausführungsbeispiel eines Anwendungsserver-Clusters500 . Jeder Anwendungsserver425 greift auf Daten (z. B. große Nutzlastdateien) über einen der VFCS-Server470 der Station zu, wobei die Server wiederum über den Switch440 auf Daten in dem Speichersystem430 zugreifen. Obgleich die Lastverteilungseinrichtung520 und die Lastverteilungseinrichtung530 in der Abbildung aus5A logisch als separate Einheiten dargestellt sind, können sie auch die gleiche physische Einheit darstellen. Ferner können sich der Anwendungsserver425 und der VFCS-Server470 in der gleichen physischen Einheit befinden, wodurch eine der Lastverteilungseinrichtungen520 oder530 eliminiert wird. - Ein Endbenutzer greift auf ein Dateisystemobjekt zu, erzeugt oder verwaltet ein Dateisystemobjekt unter Verwendung einer Standardschnittstelle (wie etwa eines Web-Browsers oder eines Dateisystem-Clients), die auf der Vorrichtung bzw. dem Gerät des Endbenutzer-Clients läuft. Wenn als Folge dessen der Benutzer über einen Anwendungsserver auf ein Dateisystemobjekt zugreift, wird eine Behandlungsanforderung für die Datei an den ASC
500 gesendet und erreicht die Lastverteilungseinrichtung520 . Die ankommenden Datenpakete für die Behandlungsanforderung werden durch die Lastverteilungseinrichtung520 an einen der Anwendungsserver425 weitergeleitet, wie zum Beispiel den Anwendungsserver425-1 (ein willkürlicher, beispielhafter Server der Server425-1 bis425-M ). Der Anwendungsserver425-1 gibt eine Anforderung für die erforderlichen Daten an die Lastverteilungseinrichtung530 aus. Die Lastverteilungseinrichtung530 wählt einen der VFCS-Server470 der Station aus, wie zum Beispiel VFCS470-3 (ein willkürlicher, beispielhafter Server der Server470-1 bis470-L ), um die Anforderung zu bearbeiten, und wobei die Datenpakete von dem Anwendungsserver425-1 zu dem VFCS470-3 weitergeleitet werden. Wenn angenommen wird, dass alle angeforderten Daten in dem Speichersystem430 vorhanden sind, verarbeitet das VFCS470-3 die Anforderung, indem die Daten in dem Speichersystem430 über den Switch440 gespeichert werden oder auf diese zugegriffen wird, und wobei die Daten und eine Antwort über die Lastverteilungseinrichtung530 an den Anwendungsserver425-1 zurückgesendet werden. Eine Endbenutzeranforderung kann danach direkt zu der Lastverteilungseinrichtung530 verlaufen und direkt und danach zu einem ausgewählten VFCS-Server470 . - Wenn der Anwendungsserver
425-1 oder ein Dateisystem-Browser des Endbenutzer-Client-Systems CPC (130 aus1 ) eine Sitzung mit einem VFCS470-3 erzeugt, leitet die Lastverteilungseinrichtung530 weiter Daten zwischen dem Anwendungsserver425-1 und dem VFCS470-3 oder zwischen dem CPC130 und dem VFCS470-3 weiter hin und her. Wenn die Lastverteilungseinrichtung530 eine "sticky" Funktion unterstützt, und wenn die "sticky" Funktion "eingeschaltet" ist, können Daten von dem Anwendungsserver425-1 oder dem CPC130 über die aktuelle Sitzung hinaus weiter zu dem VFCS470-3 geleitet werden, wenn das VFCS470-3 weiter verfügbar bleibt (d. h. wenn die Lastverteilungseinrichtung530 das VFCS470-3 keinem anderen Anwendungsserver zuweist). Wenn das VFCS470-3 nicht mehr verfügbar wird, leitet die Lastverteilungseinrichtung530 die Datenpakete von dem Anwendungsserver425-1 oder CPC130 zu einem anderen VFCS-Server, wie zum Beispiel470-1 (ein weiteres willkürliches Beispiel für einen der Server470-1 bis470-M ). Das VFCS470-1 verarbeitet die Anforderung von dem Anwendungsserver425-1 oder CPC130 und sendet Antwortdatenpakete über die Lastverteilungseinrichtung530 an den Anwendungsserver425-1 oder CPC130 . Datenpakete von dem Anwendungsserver425-1 werden über die Lastverteilungseinrichtung520 zurück zu dem Client übertragen. Wie die Lastverteilungseinrichtung530 erhält die Lastverteilungseinrichtung520 eine anhaltende Sitzung zwischen dem Client-System des Endbenutzers und dem Anwendungsserver425-1 bei. Die Lastverteilungseinrichtung520 kann ebenfalls eine "sticky" Funktion bereitstellen. In einem anderen Beispiel kann die Lastverteilungseinrichtung520 Sitzungen aufbauen und wieder aufbauen, die nicht dauerhaft bzw. anhaltend sind. - Wenn eine neue Anforderung von einem anderen Endbenutzer-Client-System die Lastverteilungseinrichtung
520 des ASC500 erreicht, leitet die Lastverteilungseinrichtung520 die neue Anforderung an einen verfügbaren Anwendungsserver weiter, wie zum Beispiel den Anwendungsserver425-3 (ein weiteres willkürliches Beispiel für einen der Server425-1 bis425-M ). Der Anwendungsserver425-3 verarbeitet die Anforderung und stellt in Folge dessen eine Datenanforderung an einen der VFCS-Server der Station über die Lastverteilungseinrichtung530 , wie z. B. VFCS470-2 (ein weiteres willkürliches Beispiel für eines der Systeme470-1 bis470-L ). Die Lastverteilungseinrichtung530 leitet danach die Datenpakete von dem Anwendungsserver425-3 zu dem VFCS470-2 weiter. Das VFCS470-2 verarbeitet die Anforderung von dem Anwendungsserver425-3 und sendet Antworten über die Lastverteilungseinrichtung530 zurück zu dem Anwendungsserver425-3 . Der Anwendungsserver425-3 sendet Antworten über die Lastverteilungseinrichtung520 zu dem neuen Endbenutzer-Client-System. - Die Abbildung aus
5B zeigt ein weiteres Ausführungsbeispiel eines Anwendungsserver-Clusters502 . Der ASC502 weist einen oder mehrere Anwendungsserver425-1 bis425-M (gemeinsam425 ) auf, eine Lastverteilungseinrichtung520 mit niedriger Bandbreitenfähigkeit, einen Router525 mit hohem Netzwerkdurchsatz, eine Lastverteilungseinrichtung530 (ebenfalls mit niedriger Bandbreitenfähigkeit), einen Router535 und einen oder mehrere VFCS-Server470-1 bis470-L (gemeinsam470 ) auf. Jeder Anwendungsserver greift auf Daten (z. B. große Nutzlastdateien) über einen VFCS-Server470 der Station zu, der wiederum über den Switch440 auf Daten in dem Speichersystem430 zugreift. Die Lastverteilungseinrichtung520 und die Lastverteilungseinrichtung530 sind in der Abbildung aus5B zwar logisch als zwei separate Einheiten dargestellt, allerdings kann es sich dabei um die gleiche physikalische bzw. physische Einheit handeln. Ferner können sich der bzw. die Anwendungsserver425 und der bzw. die VFCS-Server470 in der gleichen physischen Einheit befinden, wodurch eine der Lastverteilungseinrichtungen520 und530 und einer der Router525 und535 eliminiert wird. Somit eliminiert eine Konfiguration gemäß einem Ausführungsbeispiel der vorliegenden Erfindung die Lastverteilungseinrichtung530 und den Router535 und kombiniert den bzw. die Anwendungsserver425 mit dem bzw. den VFCS-Server(n)470 . - Die vorliegende Erfindung nutzt die Tatsache, dass der abgehende Verkehr von den VFCS-Servern
470 und den Anwendungsservern425 des Anwendungsserver-Clusters deutlich höher sein kann als der ankommende Verkehr. Wie dies in der Abbildung aus5B dargestellt ist, wird der abgehende Verkehr zu dem Router525 und dem Router535 übermittelt, während der ankommende Verkehr zu den Lastverteilungseinrichtungen530 ,530 gesendet wird, jedoch nicht zu den Routern525 ,535 . Durch das Trennen von ankommendem und abgehendem Verkehr trägt dieses Ausführungsbeispiel zur Verbesserung der Netzwerkleistung bei. - Ein Endbenutzer fordert ein Dateisystemobjekt unter Verwendung einer Standardschnittstelle (wie etwa eines Web-Browsers) an, welche auf dem Client-Gerät des Endbenutzers ausgeführt wird. Als Folge dessen wird eine Behandlungs- bzw. Serviceanforderung für das Dateisystemobjekt zu dem ASC
502 übermittelt und erreicht die Lastverteilungseinrichtung520 bzw.530 . Die ankommenden Datenpakete der Behandlungsanforderung werden durch die Lastverteilungseinrichtung520 zu einem der Anwendungsserver425 weitergeleitet, wie z. B. zu dem Anwendungsserver425-1 (ein willkürliches veranschaulichendes Beispiel für einen der Server425-1 bis1810-M ). Der Anwendungsserver425-1 gibt eine Anforderung für die erforderlichen Daten an die Lastverteilungseinrichtung530 aus. Die Lastverteilungseinrichtung530 wählt einen der VFCS-Server1470 , wie zum Beispiel VFCS470-1 (ein willkürliches veranschaulichendes Beispiel von470-1 bis470-L ), für die Behandlung bzw. die Bearbeitung der Anforderung aus und leitet die Datenpakete von dem Anwendungsserver425-1 zu VFCS470-L weiter. VFCS470-1 verarbeitet die Anforderung, indem über den Switch440 in die Daten in dem Speichersystem430 geschrieben wird oder auf diese Daten zugegriffen wird, und wobei die Daten und eine Antwort über den Router535 zurück zu dem Anwendungsserver425-1 oder direkt zurück zu dem Client oder über eine Lastverteilungseinrichtung gesendet wird, wie dies in einer Anordnung in der Abbildung aus6 dargestellt ist. - Wenn der Anwendungsserver
425-1 eine Sitzung mit VFCS470-1 aufbaut, sendet die Lastverteilungseinrichtung530 weiter Daten von dem Anwendungsserver425-1 an VFCS470-1 . Wenn die Lastverteilungseinrichtung530 die "sticky" Funktion unterstützt und diese Funktion "eingeschaltet" ist, können Daten von dem Anwendungsserver425-1 weiter zu VFCS470-1 über die aktuelle Sitzung hinaus gesendet werden, solange VFCS470-1 verfügbar bleibt (d. h. wenn die Lastverteilungseinrichtung530 VFCS470-1 keinem anderen Anwendungsserver zuweist). Die Daten von VFCS470-1 zu dem Anwendungsserver425-1 fließen durch den Router535 . Der Router535 leitet Datenpakete, die von VFCS470-1 empfangen werden, zu dem Anwendungsserver425-1 weiter. Der Anwendungsserver425-1 sendet Datenpakete über den Router525 zu dem Endbenutzer-Client-System. - Wenn eine neue Anforderung von einem anderen Endbenutzer-Client an der Lastverteilungseinrichtung
520 des ASC502 ankommt, leitet die Lastverteilungseinrichtung520 die neue Anforderung an einen verfügbaren Anwendungsserver weiter, wie z. B. den Anwendungsserver425-3 (ein weiteres willkürliches veranschaulichendes Beispiel für die Server425-1 bis425-M ). Der Anwendungsserver425-3 verarbeitet die Anforderung und gibt in der Folge eine Datenanforderung an einen der VFCS-Server über die Lastverteilungseinrichtung530 aus, wie etwa über VFCS470-3 (ein weiteres willkürliches veranschaulichendes Beispiel für470-1 bis470-L ). VFCS470-3 verarbeitet die Anforderung von dem Anwendungsserver425-3 und sendet Daten über den Router535 zurück zu dem Anwendungsserver425-3 . Der Anwendungsserver425-3 sendet Antwortdaten über den Router525 zurück zu dem Endbenutzer-Client-System. - Die Abbildung aus
5C zeigt ein drittes veranschaulichendes Ausführungsbeispiel eines Anwendungsserver-Clusters504 . Dieses Ausführungsbeispiel ist dem Ausführungsbeispiel aus der Abbildung aus5B ähnlich, unterscheidet sich jedoch in zwei Aspekten: (1) sämtlicher EUC-bezogener Datenverkehr402 ,404 in und aus dem ASC verläuft durch den Router525 ; und (2) sämtlicher Datenverkehr zwischen den Anwendungsservern425 und den VFCS-Servern470 verläuft durch den Router535 . Ankommende Client-Datenpakete fließen durch den Router525 zu der Lastverteilungseinrichtung520 . Die Lastverteilungseinrichtung520 gibt den ankommenden Verkehr danach über den Router525 an die Anwendungsserver ab. Der komplette abgehende Verkehr fließt durch den Router525 zu dem Endbenutzer-Client-System. Der Ankommende Verkehr zu den VFCS-Servern470 fließt von dem Router535 zu der Lastverteilungseinrichtung530 . Die Lastverteilungseinrichtung530 gibt den ankommenden Verkehr über den Router535 an die VFCS-Server470 ab. Der abgehende Verkehr des VFCS-Servers fließt durch den Router535 zu den entsprechenden Anwendungsservern425 . Wiederum kann es sich bei der Lastverteilungseinrichtung520 und der Lastverteilungseinrichtung530 um die gleiche physische Einheit handeln. Ferner können sich der Anwendungsserver425 und der VFCS-Server470 in der gleichen physischen Einheit befinden, wodurch eine der Lastverteilungseinrichtungen520 und530 und einer der Router525 und535 eliminiert wird. Somit eliminiert eine Konfiguration gemäß einem Ausführungsbeispiel der vorliegenden Erfindung die Lastverteilungseinrichtung530 und den Router535 und kombiniert den bzw. die Anwendungsserver425 mit dem bzw. den VFCS-Server(n)470 . - Das Ausführungsbeispiel aus der Abbildung aus
5A setzt eine Lastverteilungseinrichtung mit ausreichender Kapazität ein, um sowohl ankommende als auch abgehende Verkehrs-Cluster zu bearbeiten bzw. zu behandeln. Die Ausführungsbeispiele aus den Abbildungen der5B und5C weisen Vorteile für Cluster mit starkem abgehenden Verkehr und geringerem ankommenden Verkehr auf. Beide nutzen zwei Lastverteilungseinrichtungen mit geringer Kapazität. In dem Ausführungsbeispiel aus der Abbildung aus5B wird der ankommende und der abgehende Verkehr zwischen den Lastverteilungseinrichtungen und den Routern aufgeteilt, während in dem Ausführungsbeispiel aus der Abbildung aus5C der ankommende und der abgehende Verkehr durch die Router verläuft, wobei die Lastverteilungseinrichtungen als eine Ressource verwendet werden. Für Anwendungsserver-Cluster mit starker Verkehr in zwei Richtungen sind Lastverteilungseinrichtungen mit geringerer Kapazität und Router wünschenswert, wie dies in den Ausführungsbeispielen der Abbildungen der5B und5C der Fall ist. Die Ausführungsbeispiele aus den Abbildungen der5B und5C können unter Verwendung von Lastverteilungseinrichtungen konfiguriert werden, die in einem transparenten Modus arbeiten können. - c. Virtual File Control System Cluster:
- Die Abbildung aus
6 zeigt ein veranschaulichendes Ausführungsbeispiel eines Virtual File Control System Clusters600 . Der VFCS Cluster600 weist eine oder mehrere VFCS-Einheiten470<1...L> auf, die kombiniert werden, um ein virtuelles VFCS durch ein Lastverteilungs-Cluster-Manager630 zu erzeugen (auch als Lastverteilungseinrichtung bezeichnet). Die Anforderungen von Daten625 werden durch die Lastverteilungseinrichtung630 zu einer am besten verfügbaren VFCS-Einheit470<1...L> geleitet, während die zurückgeführten Daten direkt zu dem Aufrufer übermittelt werden. Bei diesem VFCS-Cluster600 kommuniziert jede VFCS-Einheit470<1...L> direkt mit einem lokalen Verteilungsserver, wie dies durch den Verkehr648 dargestellt ist. - B. Content Publishing und Management
- Das Content Publishing und Management umfasst das Erstellen, das Aktualisieren von Content, das Aktualisieren von Attributen, die neue Positionsanordnung, das Löschen und die sonstige Verwaltung von Dateisystemobjekten. Ein Dateisystemobjekt umfasst einen Datenträger, ein Verzeichnis und/oder eine Datei.
- 1. Erzeugung, Aktualisierung, Umbenennung, Neuzuweisung, Löschen von Dateisystemobjekten
- Die Abbildungen der
7A –B zeigen Flussdiagramme des Publishing (Veröffentlichung), Verteilung und des Managements von Dateisystemobjekten gemäß Ausführungsbeispielen der vorliegenden Erfindung. Im Besonderen ist eine Routine700 abgebildet, welche Schritte (702 bis799 ) aufweist. Die Publikation, Verteilung und das Management von Dateisystemobjekten umfasst das Einführen eines neuen Dateisystemobjekts in das SCDN100 entweder über CMS170 oder VFCS470 oder das Ändern von Inhalt und Informationen eines bestehenden Dateisystemobjekts in dem SCDN100 oder das Löschen eines bestehenden Dateisystemobjekts. Zur Vereinfachung wird die Routine700 in Bezug auf ein beliebiges der Verteilungszentren400A bis400C beschrieben; wobei diese Beschreibung veranschaulichend ist und die Routine700 nicht unbedingt einschränken soll. - Wie dies in der Abbildung aus
7A dargestellt ist, wird eine Anforderung für Content Publishing und Management durch CPC130 erzeugt bzw. gestellt. Der CPC130 kann eine Anwendung darstellen, die durch CMS170 unterstützt wird, oder es kann sich um einen Dateisystem-Client handeln, der durch VFCS470 oder den VFCS-Cluster600 unterstützt wird. Nachdem eine CPC-Client-Anforderung in dem Schritt702 erzeugt worden ist, authentifiziert CMS170 oder VFCS470 den Benutzer und prüft den Anforderungstyp (Schritt710 ). Wenn die Anforderungsarten eine neue Anordnung bzw. Neupositionierung oder Aktualisierung des Attributwertes des Dateisystemobjekts anzeigen (Attribute wie Name, Daten, Zugriffskontrolllisten, etc.), erzeugt CMS170 oder VFCS470 einen FDP-INFO-Befehl (FDP als englische Abkürzung von File Distribution Protocol) mit den relevanten Objektmetadaten und sendet den erzeugten INFO-Befehl an den Verteilungsserver-Cluster410 in einem Verteilungszentrum (Schritt730 ). Wenn der Anforderungstyp das Löschen des Dateisystemobjekts darstellt, erzeugt CMS170 oder VFCS470 einen FDE-CLEAN-Befehl (FDP Löschbefehl) mit den relevanten Objektmetadaten und sendet den erzeugten CLEAN-Befehl zur Anweisung an einen Verteilungsserver-Cluster410 in einem Verteilungszentrum (Schritte740 und750 ). - Wenn in dem Schritt
760 die Anforderung lautet, ein neues Dateisystemobjekt zu erzeugen oder Dateiinhalt zu aktualisieren, so bearbeiten VFCS470 und CMS170 die Anforderung unterschiedlich. Wenn die Anforderung von einem VFCS470 bearbeitet wird, fährt die Steuerung mit dem Schritt770 fort. Wenn die Anforderung von einem CMS170 bearbeitet wird, fährt die Steuerung mit dem Schritt786 fort. - Wenn es sich in dem Schritt
770 bei dem Dateisystemobjekt um einen Datenträger oder ein Verzeichnis handelt, fährt die Steuerung mit dem Schritt780 fort. Wenn es sich bei dem Dateisystemobjekt um eine Datei handelt, fährt die Steuerung mit dem Schritt782 fort. In dem Schritt780 ruft VFCS470 einen Analyseprozess auf, um Datenträger- oder Verzeichnismetadaten zu erzeugen, wobei es ein Objekt in dessen Metadateisystemstruktur erzeugt, wobei es ferner die relevanten Objektmetadaten erzeugt. In dem Schritt782 (wobei es sich bei dem Dateisystemobjekt um eine Datei handelt) wird ein "Chunking" Prozess eingesetzt, um die Datei zu zerlegen und eine Blockindexanordnung als Teil der Metadaten zu erzeugen. Wenn das Dateisystemobjekt neu ist, weist VFCS470 eine neue eindeutige Objekt-ID der Datei zu, wobei ansonsten die bestehende bzw. vorhandene ID für die Datei verwendet wird. Nach dem Schritte780 oder782 fährt die Steuerung mit dem Schritt784 fort. - Nach der Erzeugung oder Aktualisierung der Dateisystemobjekte und deren Metadaten in dem lokalen Speicher gibt VFCS
470 in dem Schritt784 einen Befehl FDP DIST an den Verteilungsserver-Cluster410 aus, um die Replikation der Veränderungen gemäß einer Reihe von Verteilungsregeln einzuleiten. - In dem Schritten
786 bis788 wird die Anforderung durch CMS170 behandelt bzw. bearbeitet. Wenn in dem Schritt786 das Dateisystemobjekt einen Datenträger, ein Verzeichnis oder eine Datei darstellt, wendet CMS170 einen Analyseprozess an, um die erforderlichen Objektmetadaten zu erzeugen (Datenträger, Verzeichnis und/oder Dateimetadaten) und gibt einen Befehl FDP PUT aus, um das Objekt in einen Verteilungsserver-Cluster410 hochzuladen. Wenn das Dateisystemobjekt ein Dateiobjekt darstellt, wird in dem Schritt786 ferner ein "Chunking" Prozess angewandt, um die Datei zu zerlegen und um Dateimetadaten zu erzeugen. In einem Ausführungsbeispiel wird dieser Chunking Prozess in CMS170 und teilweise in dem Verteilungsserver-Cluster410 ausgeführt. Nach dem Empfang eines Befehls FDP PUT speichert der Verteilungsserver-Cluster410 die Objektmetadaten und das Dateisystemobjekt in dem lokalen Speicher (Schritt787 ). Der Verteilungsserver-Cluster410 erstellt ferner eine Metadateisystemstruktur, wenn das Dateisystemobjekt einen Datenträger oder ein Verzeichnis darstellt und erstellt eine Blockindexanordnung bzw. Block Index Array für ein Dateiobjekt als zusätzlichen Teil der Dateimetadaten (Schritt787 ). CMS170 folgt mit der Ausgabe eines Befehls FDP DIST an den Verteilungsserver-Cluster410 , um die Verteilung des Dateisystemobjekts gemäß einer Reihe von Verteilungsregeln einzuleiten (Schritt788 ). Nach dem Schritt784 oder dem Schritt788 fährt die Steuerung mit dem Schritt790 aus der Abbildung aus7B fort. - Wenn, wie dies in der Abbildung aus
7B dargestellt ist, der Verteilungsserver-Cluster410 die FDP-Befehle INFO, CLEAN oder DIST empfängt, so startet er einen Multicast-Signalgebungsprozess unter allen Verteilungsserver-Clustern in dem Netzwerk100 (Schritte790 –791 ). Zur Unterstützung der Beschreibung aus der Abbildung aus7B ist der Verteilungsserver-Cluster, der die Schritte790 und791 ausführt, auch mit "DSx" bezeichnet. Ein benachbarter oder anderer Verteilungsserver-Cluster ist in der Abbildung aus7B mit "DSy" bezeichnet. - In einem Ausführungsbeispiel erfolgt das Signal-Multicasting nur innerhalb einer qualifizierten Gruppe von Verteilungsserver-Clustern auf der Basis von Verteilungsregeln und/oder -kriterien, die nachstehend im Text näher beschrieben werden. Die Multicast-Signalisierung bzw. Signalgebung für den Befehl INFO und für den Befehl CLEAN bleibt unverändert; das Multicast-Signal für einen Befehl DIST ist ein Replikatbefehl REPL. Indem Schritt
791 sendet der Verteilungsserver-Cluster DSx (bezeichnet als signalisierender Verteilungsserver-Cluster) das Signal an alle seine Nachbarn, welche mit den Verteilungskriterien/-regeln übereinstimmen, mit Ausnahme des signalisierenden DSx. Der Verteilungsserver-Cluster DSx kann das Signal beenden, wenn kein benachbarter Verteilungszentrum-Cluster den Verteilungskriterien/-regeln entspricht. - Es wird folgendes Beispiel angeführt. Wenn der Verteilungsserver-Cluster DSx (oder einfach A) einem benachbarten Verteilungsserver-Cluster DSy (oder einfach B) signalisiert, und wenn B temporär nicht verfügbar ist, wird das Signal für B bei A gespeichert, während A mit der Signalisierung aller benachbarten Verteilungsserver-Clients von B fortfuhr. Wenn B wieder verfügbar wird, nimmt A das Signal an B wieder auf. Nähere Einzelheiten zu der FDP-Signalisierung werden weiter unten im Text beschrieben.
- In den Schritten
792 –798 empfängt DSy das Signal und behandelt das Signal entsprechend. Wenn es sich bei dem Signal um den Befehl INFO handelt (Schritt793 ), so validiert DSy die enisprechenden Zeitstempel (Erzeugungszeitstempel des Objekts und Aktualisierungszeitstempel) und verändert die Objektmetadaten und/oder die Metadateisystemstruktur entsprechend (Schritt794 ). Die Metadateisystemstruktur wird aktualisiert, wenn ein Objekt in einem anderen Verzeichnis neu angeordnet wird. Wenn es sich bei dem Signal um den Befehl CLEAN handelt (Schritt796 ), so entfernt DSy die Daten, Objektmetadaten und Metadateisystemstruktur, die dem Objekt zugeordnet sind (Schritt797 ). Wenn es sich bei dem Objekt um einen Datenträger oder ein Verzeichnis handelt, so werden alle eingebetteten Unterverzeichnisse und Dateien entfernt. Wenn es sich bei dem Signal um einen Befehl REPL handelt (Schritt798 ), so gibt DSy einen Befehl FDP GET an den bzw. die am nächsten liegenden Knoten aus, um die Objektmetadaten und bestimmte Datenblöcke herunterzuladen, wenn es sich bei dem Objekt um eine Datei handelt (Schritt799 ). DSy erzeugt einen Verzeichnisknoten in der Metadateisystemstruktur, wenn der Befehl REPL bestimmt ist für einen neuen Datenträger oder ein Verzeichnis (Schritt799 ). DSy speichert dann die Objektmetadaten in dem entsprechenden Verzeichnis in der Metadateisystemstruktur (Schritt799 ). Wenn das Ziel von REPL ein Dateiobjekt ist und die Anzahl der herunterzuladenden Datenblocke konfiguriert werden kann oder auf einer Kostenfunktion basiert. DSy erzeugt ferner einen. Blockindexanordnung als Teil der Dateimetadaten (Schritt799 ). In jedem der Schritte794 ,797 und799 fährt der jeweilige Verteilungsserver-Cluser DSy mit dem Multicasting fort, indem er zu einem signalisierenden Verteilungsserver-Cluster wird (z. B. wird DSx auf DSy gesetzt). Die Steuerung kehrt danach zu dem Schritt791 zurück. Auf diese Weise fahren die an dem Multicasting beteiligten Verteilungsserver-Cluster mit dem Multicasting des Signals fort, bis alle abschließenden Knoten in dem erreicht werden, Schritt791 , und Metadaten werden integriert. - Die Abbildung aus
7C veranschaulicht Prozesse in CMS170 , VFCS470 und dem Verteilungsserver-Cluster410 (z. B. DSx oder DSy), wobei die Dienstgüterichtlinien abgerufen (Schritt704 ) und angewandt (Schritt706 ) werden können, während Dateisystemobjekte gemäß den konfigurierten Parametern verteilt und gespeichert werden. Zum Beispiel kann eine Richtlinie so konfiguriert werden, dass sie eine bestimmte Qualitätsklasse der Behandlung (Service) für das Speichern und die Verteilung einer MPEG-Datei garantiert. Eine andere Richtlinie wiederum kann so konfiguriert werden, dass sie eine Servicequalität für eine bestimmte Benutzergruppe garantiert. CMS170 , VFCS470 und der Verteilungsserver-Cluster410 können Netzwerk- oder Speicherressourcen von Switches, Routern oder Server in dem Netzwerk100 abrufen. Die Schritte704 und706 können als Teil eines oder mehrerer der Schritte784 ,730 ,750 ,788 und791 ausgeführt werden. - 2. Zerlegung großer Dateien-Chunking Prozess
- a. Zerlegung linearer und nicht linearer Dateien
- Die vorliegende Erfindung kann in Verbindung mit jeder Art von Datei verwendet werden. Eine Datei kann digitale Daten in jedem Dateiformat aufweisen. Derartige digitale Daten können jede Art von Daten darstellen, insbesondere Audio-Daten, Video-Daten, Grafikdaten, Textdaten, Steuerinformationen, Indexinformationen und Kombinationen dieser. Wenn eine Datei über CMS
170 oder VFCS470 in das SCDN100 eingeführt wird, wird die Datei in einer Reihe von Schritten in Blöcke aufgeteilt, und der Prozess kann davon abhängig sein, ob es sich um eine lineare Datei oder um eine nicht lineare Datei handelt. Wenn gemäß einem Aspekt der vorliegenden Erfindung zum Beispiel eine Filmdatei verwendet wird, so ist die Datei linear, wenn die ersten 10% des Films sich ungefähr innerhalb den ersten 10% der Datei befinden, wobei sich die nächsten 10% innerhalb der nächsten 10% der Datei befinden, usw. Im Gegensatz dazu gilt eine Filmdatei dann als eine nicht lineare Datei, wenn sich die ersten 10% des Films an anderer Stelle als ungefähr innerhalb den ersten 10% der Datei befinden. - Beispielhafte lineare und nicht lineare Dateistrukturen sind in der Abbildung aus
8 veranschaulicht. Das Format800 kann zum Beispiel das mpeg-Format darstellen, das linear ist, da es in der Datei in einer einzigen Spur bzw. einem Track multiplexierte Audio-/Videodaten aufweist, beginnend am Anfang. Hiermit wird festgestellt, dass jeder Unterbereich in den verschiedenen Formaten eine Spur bzw. einen Track darstellt. Die Formate810 –830 weisen mehrere Tracks auf. Wie dies abgebildet ist, ist das Format810 nicht linear, da es Header-Informationen in der ersten Spur der Datei aufweist, gefolgt von Metadaten in der nächsten Spur, von Videoinformationen in der dritten Spur, von Metadaten in der vierten Spur, von einem ersten Audiokanal in der fünften Spur, von einem zweiten Audiokanal in der sechsten Spur und von gewissen Steuerungsinformationen am Ende. Der Anfang eines für das Format810 formatierten Films würde sich somit nicht am Anfang der Datei befinden. Die Formate820 und830 sind Darstellungen anderer möglicher nicht linearer Mediendatenformate. Zum Beispiel kann das Format820 Daten aufweisen, die so formatiert sind, dass die Datei Header-Informationen am Anfang aufweist, wobei darauf eine bestimmte 56K Codierung für Formate wie z. B. MPEG folgt, gefolgt von 128 K Codierungsinformationen. Andere Formate830 können Header-Informationen, gefolgt von Indexinformationen, gefolgt von Video- und schließlich von Audiodaten aufweisen. All diese und andere nicht lineare Dateien müssen zuerst unterteilt werden und auf lineare Weise neu angeordnet werden für eine Kompatibilität mit dem nachstehend beschriebenen Replikationsalgorithmus. - Die Abbildung aus
9 zeigt den Prozess der Zerlegung bzw. Aufteilung einer Datei in Blockdateien für die Speicherung. Dieser Prozess wird als "Chunking" bezeichnet und kann auf regelmäßige oder unregelmäßige Art und Weise erfolgen, wie dies nachstehend in Bezug auf die Abbildungen der10A –B beschrieben ist. - Beim unregelmäßigen Chunking wird Medieninhalt in zwei Phasen in Chunks bzw. Stücke aufgeteilt. In der ersten Phase wird ein nicht linearer Medienanteil in mehrere lineare physikalische Spurdateien aufgeteilt. Mehrere Spurdateien werden durch Multiplexing zu einer Mediendatei zusammengesetzt. In der zweiten Phase wird eine lineare Spurdatei in Blockdateien aufgeteilt. Wie dies in der Abbildung aus
10A dargestellt ist, wird beim unregelmäßigen Chunking nicht mehr als eine Blockdatei vollständig populiert, da die große Nutzlastdatei in Spurdateien aufgeteilt wird und die Spurdateien danach weiter in Blockdateien aufgeteilt werden. Wenn somit eine Spurdatei sich nicht vollständig in Vielfache der ausgewählten Blockgröße aufteilen lässt, können Dateien mit mehreren Spuren einen oder mehrere Blöcke aufweisen, die nicht vollständig belegt sind. - Beim regelmäßigen Chunking wird der Demultiplexierungsprozess
910 eingesetzt, um die physischen Spurleitungen zu bestimmen, ohne die Datei tatsächlich in Spuren aufzuteilen. Der Inhalt wird danach in gleiche Stück- bzw. Chunk-Größen aufgeteilt, mit Ausnahme des letzten Blocks. Der Blocking Prozess überprüft bzw. untersucht danach jeden Block: der Block, der mindestens eine Spurleitung aufweist, wird zum Anfang einer logischen Spur- bzw. Track-Datei, und alle auf diesen Block folgenden Blöcke bilden die logische Spurdatei. Wie dies in der Abbildung aus10B dargestellt ist, kann die letzte Blockdatei teilweise belegt werden durch das regelmäßige Chunking-Verfahren, da die große Nutzlastdatei nicht zuerst in Spurdateien aufgeteilt wird, sondern die Spurleitungen bestimmt und aus anderen Gründen eingesetzt werden, wie etwa zum Lokalisieren des Anfangs einer Spur zu Wiedergabezwecken. Danach wird die ganze Datei in Blockdateien aufgeteilt, wobei der letzte Block das Potenzial aufweist, nicht voll besetzt bzw. populiert zu sein. - Zum Beispiel unter Verwendung der in der Abbildung aus
10A zur Veranschaulichung dargestellten Daten weist die große Nutzlastdatei1000 den Header in der ersten Spur auf, Video in der zweiten Spur, den ersten Audiokanal in der dritten Spur, den zweiten Audiokanal in der vierten Spur und schließlich Steuerungsinformationen in der fünften Spur. Der Content Management Server170 (oder CPC130 ) unterteilt die große Nutzlastdatei1000 in fünf lineare Spurdateien1010 , so dass eine Datei den Header aufweist, eine zweite Datei Videodaten, eine dritte Datei den ersten Audiokanal und so weiter. - In erneutem Bezug auf die Abbildung aus
9 werden die linearen Spurdateien920 oder die lineare große Nutzlastdatei950 (die ebenfalls eine lineare Spurdatei darstellt) durch den CMS über das Netzwerk zu einem DS übertragen, mit dem er verbunden ist. Alternativ kann der ganze Chunking-Prozess in ein VFCS integriert werden, wobei das VFCS die Daten und die Metadaten in dem Speicher speichern, ohne durch einen DS zu verlaufen. Die Dateien können gemäß einem File Distribution Protocol (FDP) von dem CMS zu DS übertragen werden, wie dies nachstehend im Text beschrieben wird. Die Dateien von dem CMS werden in einen DS-basierten Blockbildungsprozess930 eingegeben, der Blockdateien940 erzeugt. Die Blockdateien940 werden in der Folge in dem lokalen Speicher des DS gespeichert. Nach der Verarbeitung kann der Inhalt durch andere Verteilungsserver in dem Netzwerk heruntergeladen werden. Im Allgemeinen muss keine direkte Beziehung gegeben sein zwischen der Größe der über das Netzwerk übertragenen Dateien und den in dem lokalen Speichersystem des DS gespeicherten Blockdateien. - Der Blockbildungsprozess
930 unterteilt Spurdateien in kleinere, verwaltbare Einheiten, wie dies in dem Block1020 aus der Abbildung aus10A dargestellt ist. Der Blockbildungsprozess erzeugt die Mehrzahl von Blockdateien H, V1-4, A1,1-1,2, A2,1-2,2 und C (gemeinsam in der Abbildung aus10A als1020 bezeichnet). Blockdateien können Datenüberschneidungen oder Versätze (z. B. Verschiebung) aufweisen. Zum Beispiel kann die Blockdatei V1 einen bestimmten Teil der Header-Spur aufweisen und so weiter. In den Blockdateien ist der Anfang jeder Spur in der ersten für diese Spur erzeugten Blockdatei enthalten, zum Beispiel ist der Anfang von Audiokanal Ch1 in A1,1 enthalten und wobei der Anfang von Audiokanal CH2 in A2,1 enthalten ist, etc. In anderen Ausführungsbeispielen kann die Datei (d. h. nicht linear) direkt in Blockdateien aufgeteilt werden, ohne zuerst den Demultiplexierungsprozess zu durchlaufen (z. B. Block910 ), so dass jede Blockdatei sich überlappende Spuren aufweisen kann. Der Blockbildungsprozess hat Metadaten erzeugt, die dazu verwendet werden die Datei zu einem späteren Zeitpunkt wieder zusammenzusetzen. Das Aufteilen der Datei in Blöcke macht es möglich, die Blockdateien in verschiedene Speichervorrichtungen zu verteilen und mehr Speichervorrichtungen hinzuzufügen, wenn dies erforderlich wird, ohne dabei die Systemleistung zu beeinträchtigen. Die Skalierbarkeit ermöglicht es unter anderem der vorliegenden Erfindung, einen effektiven Ansatz für die Globalisierung des Speicherns darzustellen. Zum Beispiel können mehr Speichervorrichtungen einem Verteilungszentrum400A –C hinzugefügt werden, ohne dass Dateien verschoben oder andere Knoten neu konfiguriert werden müssen. Ferner können verschiedene Blöcke an verschiedenen Knoten des SCDN angeordnet werden. Die kleineren Blockdateien ermöglichen es, mehrere Anwendungsserver (z. B. Streaming Server) gleichzeitig zu unterstützen, mit erhöhter Speicherzugriffsbandbreite. Ferner können mehrere Blockdateien einer Datei parallel auf nicht zusammenhängende Art und Weise von verschiedenen Knoten in dem Netzwerk heruntergeladen werden. Des weiteren ist das schnelle Vorspielen und das schnelle Zurückspielen über einen Streaming Server durch einen Benutzer ebenfalls möglich, ohne dass die ganze Datei zuerst auf den Knoten heruntergeladen wird, der den Streaming Server unterstützt. - b. Leistungsaspekte in Bezug auf die Blockgröße und die Dateiverteilung
- Das Aufteilen von Dateien in Blockdateien ist mit bestimmten Vorteilen verbunden. Zu den Vorteilen des Aufteilens von Dateien in Blockdateien zählen: (a) das parallele Herunterladen bzw. Downloaden einer einzelnen Datei durch mehrere lokale Verteilungsserver zu ermöglichen, um die Download-Performance zu verbessern; (b) das Downloaden einer Datei von mehreren Positionen bzw. Standorten zu ermöglichen; (c) das Verteilen eines Speicherzugriffsladens zu ermöglichen durch Speichern der Blöcke der gleichen Datei in mehreren Disks bzw. Plattenspeichern (dadurch wird die E/A-Bandbreite einer einzelnen Datei erhöht); (d) das Ermöglichen von Effekten des "schnellen Vorspulens" und "Zurückspulens", ohne alle Daten zwischen den Punkten herunterzuladen, wo das "schnelle Vorspulen" oder "Zurückspulen" beginnt und dem Zielpunkt. Das schnelle Vorspulen kann erreicht werden, indem die Download-Köpfe nach vorne bewegt werden – zu Blöcken, die näher an dem Ende der Datei liegen. Dadurch werden "Löcher" in dem mittleren Teil der Datei erzeugt, wo das Downloaden unvollständig ist. Das "Zurückspielen" bzw. "Zurückspulen" durch ein derartiges "Loch" bringt es mit sich, dass sich die Download-"Köpfe" über das "Loch" hinaus bewegen und die fehlenden Blöcke herunterladen; und (e) das Verbessern der Skalierbarkeit und den Verzicht auf die Notwendigkeit der Migration im großen Maßstab, wenn Speicherbegrenzungen erreicht werden. Wenn Hunderte von Blöcken in einem einzigen Speicherdatenträger angeordnet sind und der Datenträger voll ist, können zusätzliche Blöcke einer einzelnen Datei in einem neu hinzugefügten Speicherträger gespeichert werden und vollständig funktionstüchtig sein, ohne dass eine umfassende Migration der ganzen Datei auf den neuen Datenträger erforderlich ist.
- Die Größe der Blöcke beeinflusst die Performance sowohl der Verteilung von Inhalten (Content Distribution) als auch der Zustellung von Inhalten (Content Delivery). Gemäß einem Merkmal von Ausführungsbeispielen der vorliegenden Erfindung werden bei der Bestimmung der Blockgröße mehrere Faktoren berücksichtigt:
- 1) die Ethernet MTU (Maximum Transmission Unit) Größe;
- 2) die Größe der physischen Speichereinheiten;
- 3) die erforderliche Zeit für die Übertragung eines Blocks (steht im Verhältnis zu der Netzwerkbandbreite); und
- 4) die kürzeste zulässige Dauer, die übersprungen werden kann als Reaktion auf einen Befehl zum schnellen Vorspulen oder Zurückspulen während der Zustellung von Inhalten (dies wird als minimales Flash-Intervall bezeichnet).
- Die Erfinder haben erkannt, dass verschiedene Aufgaben bzw. Ziele bei der Bestimmung der Blockgröße berücksichtigt werden müssen. Eine Aufgabe ist es, die Raumnutzung in einer MTU zu maximieren, was die Verteilung von Inhalten effizienter gestalten würde. Eine weitere Aufgabe ist es, eine Überlastung an den Verteilungsknoten so gering wie möglich zu halten. Eine weitere wichtige Aufgabe zur Bestimmung der Blockgröße ist es, eine Speicherfragmentierung zu verhindern, da die Fragmentierung die Performance des Dateisystems verschlechtert, wiederum im Einklang mit dem Erreichen der anderen Ziele bzw. der Umsetzung der weiteren Aufgaben.
- Blockgrößen, die zu groß oder zu klein sind, können die Performance bzw. die Leistung beeinflussen. Zum Beispiel ist dies in Bezug auf den Befehl zum schnellen Vorspulen bzw. Vorspielen möglich. Wenn die Blockgröße zu groß ist, kann die Serverantwort auf Anforderungen des schnellen Vorspulens während einem Download schwergängig sein, da der Server das Herunterladen der jeweiligen Blockdatei abschließen muss, bevor er derartige Anforderungen verarbeiten kann. Wenn die Blockgröße hingegen zu klein ist, ist das schnelle Vorspulen zu dem Ende des Blocks sehr schnell. Wenn die Blockgröße sich innerhalb des Mindest-Flash-Intervalls befindet, kann ein anderer Verteilungsserver auf Anforderungen zum schnellen Vorspulen ansprechen bzw. antworten, indem der Block abgerufen wird, der den Zielinhalt aufweist.
- Auf der Basis der oben genannten Kriterien beträgt unter bedachten Annahmen zu den Betriebsparametern des physischen Netzwerks und dem Netzwerk an sic, welches das SCDN
100 unterstützt, und entsprechender Annahmen in Bezug auf die Größe des Flash-Intervalls sowie zur Minimierung der Netzwerküberlastung, kann die Blockgröße gemäß einem Aspekt der vorliegenden Erfindung 256 kBytes betragen. Für den Durchschnittsfachmann auf dem Gebiet ist es in Anbetracht der vorliegenden Beschreibung ersichtlich, dass sich die Blockgröße ändern kann, wenn ein oder mehrere Netzwerkparameter oder sonstige Annahmen sich ändern, und dass die optimale Blockgröße abhängig sein kann von der jeweiligen Implementierung und Anwendung. Im Allgemeinen können auch andere Blockgrößen (größer und kleiner als 256 kBytes) verwendet werden. - Darüber hinaus muss die Blockgröße in dem Speicher eines übertragenden oder Zustellnetzwerks nicht konstant sein. Jeder DS in dem Netzwerk kann eigene Einstellungen aufeisen abhängig von der jeweiligen Beschaffenheit der Speichervorrichtungen und dem jeweiligen Netzwerkzustand. Ferner kann jede Datei eine unterschiedliche Blockgröße aufweisen, abhängig von einer Reihe möglicher Parameter, wie zum Beispiel der Art der Datei (z. B. ob es sich um eine Textdatei, eine Audiodatei oder eine Videodatei handelt). Diese Blockgrößen können zum Beispiel von Zeit zu Zeit nach Bedarf verändert werden oder durch Messen der Netzwerkparameter und die dynamische Veränderung der Blockgröße.
- Die Anzahl der an einen qualifizierten Knoten verteilten Blöcke während der anfänglichen Dateiverteilungsphase wird durch eine Reihe von Faktoren bestimmt, einschließlich der Entfernung von dem Ursprungs-DS (d. h. wo die Datei hochgeladen wurde) zu dem Knoten, der Bandbreite des vorderen und des hinteren Endes des Knotens (den aktuellen Netzwerkbedingungen), den prädizierten Netzwerkbedingungen, den Nutzungsinformationen aus der Vergangenheit zu dem Knoten, einem "Popularitätsindex", der durch den Inhalteanbieter festgelegt wird, sowie den Speicher, der dem Inhalteanbieter an diesem Knoten zur Verfügung steht. Ein Content Owner bzw. Inhalteeigentümer kann die prognostizierte Popularität eines Films während dessen ersten Distribution angeben. Die Popularität dient als Referenz, die Verteilungsserver dabei unterstützt zu bestimmen, wie viele Blöcke einer Datei zuerst bzw. anfänglich herunterzuladen sind. Im Zeitverlauf passt ein Speichermanager (Storage Manager), der in einer Steuereinheit
450 enthalten ist, auf der Basis der gesammelten Nutzungsinformationen die tatsächliche lokalisierte Popularität einer Datei, um die entsprechende Pruning-Fähigkeit zu bestimmen. Die Popularität einer Datei kann direkt proportional sein zu der Anzahl der Blockdateien, welche sie aufweist, oder die minimale Speichergröße kann konfiguriert werden. - Inhalteeigentümer können einen bestimmten Speicherplatz an jedem Knoten reservieren. An jedem Knoten zeichnen die Verteilungsserver die ankommende Übertragungsrate für jeden Inhalteeigentümer bzw. Content Owner auf. Ein Speichermanager legt einen Sicherheitsspeichergrenzwert für jeden Content Owner auf der Basis des Netzwerkzustands und der ankommenden Übertragungsrate fest. Der Speichermanager löscht regelmäßig einige der Blöcke der Dateien, die in der Zukunft mit der geringsten Wahrscheinlichkeit verwendet werden. Ein Parameter der Pruning-Rate kann festgelegt werden, um es zu verhindern, dass die Speichernutzung einen Sicherheitsschwellenwert überschreitet. Wenn die Pruning-Rate die vordefinierte Schwelle erreicht, wahrscheinlich aufgrund von übermäßigem Inhalt, so wird die Content Management-Anwendung an der Basisstation des Content Providers davon benachrichtigt. Wenn dies erfolgt, kann der Content Owner keine Inhalte zu der überlasteten Station übertragen, ohne den reservierten Speicher zu vergrößern bzw. zu erweitern. Es gibt zahlreiche Optionen zum Speichern von Blockdateien in dem Netzwerk. Mehrere der Optionen umfassen eine Kostenfunktion, wobei versucht wird, die Kosten für den Abruf so gering wie möglich zu halten, wie zum Beispiel durch Replikation zusätzlicher Blockdateien mit stark nachgefragtem Inhalt und weniger Blockdateien mit kaum nachgefragtem Inhalt, wobei Blockdateien an Speicherplätzen nahe der Nachfrage anstatt weit davon entfernt gespeichert werden, wobei Blockdateien dort gespeichert werden, wo auf sie durch Hochgeschwindigkeits-Übermittlungsstrecken anstatt durch langsame Übermittlungsstrecken zugegriffen wird, und wobei auch andere ähnliche Techniken möglich sind. Eine dynamische Kostenfunktionsoption ist eine Option, die dynamisch auf das Netzwerk zugreift und Blöcke gemäß einer neu berechneten Kostenfunktion lokalisiert bzw. anordnet und neu anordnet. Zusätzliche Optionen können auf durch einen Benutzer definierten Kriterien oder auf durch Richtlinien geregelten Kriterien basieren, wobei die Bedienungspersonen an jedem Knoten die Anzahl der Blöcke je Datei definieren, oder durch Inhalteeigentümer, welche die Anzahl der Blöcke definieren, die an jeden Knoten verteilt werden sollen. Eine Kombination aus diesen Optionen ist ebenfalls möglich.
- Es gibt zahlreiche unterschiedliche Möglichkeiten, wie eine Datei an das SCDN
100 verteilt werden kann. Dazu zählen insbesondere die folgenden Möglichkeiten: - 1) hierarchisch – wobei ein näher an dem Quellknoten bzw. Ursprungsknoten gelegener Knoten mehr Inhalt speichert als ein weiter von dem Ursprungsknoten entfernter Knoten in dem Steuerungsweg;
- 2) benutzerdefiniert oder auf der Basis von Richtlinien – wobei Operatoren bzw. Bedienungspersonen an jedem Knoten die Anzahl der Blöcke je Datei definieren, die an dem Knoten gespeichert werden, oder Inhalteeigentümer definieren die Anzahl der Blöcke, die an jeden Knoten zu verteilen sind für jede ihrer Dateien;
- 3) dynamisch – abhängig von der Benutzernachfrage und Ressourcen, während die Ressourcen die Netzwerkbandbreitenverfügbarkeit und die Speicherverfügbarkeit aufweisen; und
- 4) eine Kombination der vorstehenden Möglichkeiten bzw. Methoden.
- 3. Verteilung von Dateisystemobjekten
- a. Verteilung von Dateisystemobjekten durch Inhalteeigentümer
- Um bei dieser spezifischen Implementierung ein Dateisystemobjekt zu verteilen, legt ein Inhalteeigentümer bzw. Content Owner spezielle Kriterien für diese Datei fest. Die Verteilungskriterien können konfiguriert oder durch den Befehl FDP DIST eingeführt werden, wie dies vorstehend im Text in Bezug auf die Abbildungen der
7A –B beschrieben worden ist. Wenn ein Dateisystemobjekt über einen CMS in das SCDN eingeführt wird, kann der Inhalteeigentümer Verteilungsparameter festlegen, und der CMS-Server gibt FDP DIST für DS aus, um Objektmetadaten und das Dateisystemobjekt an andere Knoten in dem SCDN zu verteilen. Wenn ein Dateisystemobjekt über einen VFCS in das SCDN eingeführt wird, verwendet der VFCS vorkonfigurierte Verteilungsregeln für die Ausgabe von FDP DIST an einen DS, um die Objektmetadaten und das Dateisystemobjekt an das SCDN zu verteilen. Wenn es sich bei dem Dateisystemobjekt um eine Datei handelt, kann ein Teil bzw. eine Teilmenge der Datei an das SCDN verteilt werden, um zum Beispiel den Inhalt zum Rand des Netzwerks zu drängen. Die Verteilung erfolgt gemäß den spezifischen Verteilungskriterien, die von den Inhalteeigentümern festgelegt worden sind, und wobei das File Distribution Protocol (FDP) verwendet werden kann, das nachsehend im Text beschrieben wird. Diese Verteilungskriterien können Regionen (z. B. Europa), spezifische Knoten und andere Informationen spezifizieren, wie dies von den Inhalteeigentümern gewünscht wird, um die Verteilung des Inhalts zu steuern. Die Verteilungskriterien können zum Beispiel Informationen aufweisen, die in der Attributgruppe eines Knotens oder in einer aufgerollten Attributgruppe zu finden sind. Hiermit wird festgestellt, dass die Begriffe bzw. Abkürzungen "DS" und "DSC" hierin austauschbar verwendet werden und einen Verteilungsserver-Cluster (wie zum Beispiel DSC410 ) bezeichnen, der einen oder mehrere Verteilungsserver aufweist. Ferner kann es sich bei einem Verteilungsserver um jede Art von Verarbeitungs- oder Rechenvorrichtung handeln, welche die hierin beschriebene Verteilungsfunktionalität ausführen kann. - b. File Distribution Protocol (FDP)
- Das FDP Protokoll definiert die Primitive des Dateimanagements, die erforderlich sind, um Dateisystemobjekte und Objektmetadaten zu übertragen, zu speichern und zu manipulieren, die in dem Netzwerk gespeichert sind. Die Primitive weisen Befehle auf, welche Dateien hochladen, verteilen, zustellen, modifizieren und löschen. Die FDP-Befehle führen dazu, dass ein oder mehrere Pakete zwischen entsprechenden Servern in dem Netzwerk übertragen werden. Für den Durchschnittsfachmann auf dem Gebiet ist es offensichtlich, dass die hierin beschriebenen Befehlsbezeichnungen und Protokollimplementierungen zur vereinfachen Darstellung verwendet werden, und wobei andere Befehle oder Protokolle hinzugefügt, herausgenommen oder ersetzt werden können, sofern sie zu einer effizienten und zuverlässigen Übertragung von Dateien in dem Netzwerk führen.
- In einem Ausführungsbeispiel der vorliegenden Erfindung weist das FDP-Protokoll den folgenden FDP-Befehl auf: Put (Senden), Distribute (Verteilen), Replicate (Replizieren), Get (Holen), Prepare (Vorbereiten), Search (Suchen), Remove (Entfernen), Clean (Löschen), Info (Info), Learn (Lernen), Fetch (Erfassen), Fetch (Erfassen), Fetch Info (Info erfassen) und Stop (Stopp). Jeder FDP-Befehl und alle Arten von Paketen, die dem Befehl zugeordnet sind, werden nachstehend im Text beschrieben.
- "Put" (Senden): Ein Inhalteeigentümer verwendet Content Management-Anwendungen, die auf einem Content Provider Client-System ausgeführt werden, um ein Dateisystemobjekt (Datenträger, Verzeichnisse und Dateien) und Objektmetadaten (Daten in Bezug zu der Verwaltung der Dateisystemobjekte, die in dem Netzwerk gespeichert, übertragen und manipuliert werden) in einen Content Management Server (CMS) hochzuladen oder zu verändern. Wenn es sich bei dem Dateisystemobjekt um eine Datei handelt, unterteilt der CMS die Datei in lineare Spurdateien und gibt danach einen Befehl "put" an einen DS aus, der letztlich den Inhalt in dem Netzwerk verteilt. In einem Ausführungsbeispiel ist der CMS mit einem DS an einem SCDN-Knoten verbunden. Der CMS sendet einen Befehl "put" an den DS für jede der Spurdateien, um einen Datenträger, ein Verzeichnis oder eine Datei zu erzeugen. In seiner Wirkung ist der Befehl "put" eine Aktion des "Einspeicherns" bzw. der "Eingabe", wobei eine Spur oder ein Datenträger oder ein Verzeichnis von einem CSM in einen DS eingegeben werden. Ein Befehl "put" kann vier Pakete aufweisen, wie zum Beispiel "put", "put_response", "put_data" und "put_ack". Das jeweilige "put"-Paket teilt dem empfangenden DS mit, sich für den Empfang einer Spurdatei bereit zu machen. Das Paket "put_response" ist ein von dem DS ausgegebenes Paket, um dem CMS anzuzeigen, ob der DS die Spurdatei empfangen muss oder nicht, und wenn er es empfangen muss, wo mit der Übertragung begonnen werden muss. Dieses Paket kann in einer Situation nützlich sein, wenn eine Kommunikationssitzung aufgeteilt wird, nachdem ein Teil der Spurdatei übertragen worden ist, und wobei der CMS den restlichen Teil der Datei erneut übertragen muss. Nachdem der DS dem CMS kommuniziert hat, wo die Übertragung einer Spurdatei beginnen soll, kann der CMS ein Paket "put_data" in Verbindung mit der eigentlichen Spurdatei, dem Datenträger oder dem Verzeichnis ausgeben. Der DS kann mit einem Paket "put_ack" antworten, wenn die ganze Spurdatei oder ein anderes Dateisystemobjekt empfangen wird, um die erfolgreiche Übertragung anzuzeigen. Wenn es sich nachdem die Daten empfangen worden sind bei den Daten um eine Spurdatei handelt, teilt der DS die linearen Spurdateien in Blockdateien auf, speichert die Blockdateien im lokalen Speicher und aktualisiert die Dateimetadaten, um die Spur-, Block- und Positionsinformationen zu reflektieren – die Blockindexanordnung.
- "Distribute" (Verteilen): Nachdem das ganze Dateisystemobjekt und dessen Objektmetadaten in den DS eingegeben oder in den Speicher geschrieben worden sind durch ein VFCS, können der CMS oder ein VFCS Pakete "verteilen", welche den DS anweisen, die Datei an andere Knoten in dem Netzwerk zu verteilen. Zum Beispiel kann der CMS ein Paket "distribute" (Verteilen) je Spurdatei, Datenträger oder Verzeichnis ausgeben, wobei jedes Paket die Verteilungskriterien des Inhalteeigentümers enthält. Die Verteilungskriterien können zum Beispiel spezifizieren, welche Knoten in dem Netzwerk das Dateisystemobjekt aufweisen sollten. Der Befehl "distribute" kann zwei Pakete aufweisen, wie zum Beispiel "distribute" und "distribute_ack". Der DS kann den Empfang des Befehls "distribute" bestätigen, indem ein Paket "distribute_ack" an den CMS oder VFCS ausgegeben wird.
- "Replicate" (Replizieren): Als Reaktion auf den Befehl "distribute" kann der DS Pakete "replicate" an dessen Nachbarn ausgeben. Jeder Nachbar, der die durch den Content Owner spezifizierten Verteilungskriterien erfüllt, kann einen Befehl (wie zum Beispiel den Befehl "get" für ein Paket (Paket holen), der nachstehend im Text beschrieben wird) an einen oder mehrere DS in dem Verteilungspfad ausgeben, um einen Teil der Datei oder des Datenträgers oder des Verzeichnisses in dessen lokalen Speicher zu ziehen. Das Paket "replicate" beginnt an dem DS, wo die Dateisystemobjekte hochgeladen werden oder wo sich der VFCS befindet, der die Dateisystemobjekte aktualisiert. Das Paket "replicate" fungiert als eine Benachrichtigung an einen DS, dass er unter Umständen bestimmte Blockdateien oder Datenträger oder Verzeichnisinformationen von etwaigen der ausgebenden DS in dessen lokalen Speicher ziehen (d. h. replizieren) muss. Der empfangende DS kann die Benachrichtigung bestätigen, indem ein Paket "replicate_ack" ausgegeben wird, und wobei danach die Verantwortlichkeit für das Ziehen bzw. Entnehmen der Blockdateien aus dem ausgehenden DS übernommen wird, wenn diese bereit sind. Ein DS benachrichtigt ferner dessen benachbarte Knoten, um zu bestimmen, ob sie das Dateisystemobjekt entnehmen sollten, indem Pakete "replicate" an diese ausgegeben werden. Ein DS kann eine Replikationsanforderung an dessen Abkömmlingsknoten ausgeben, wenn das aufgerollte Attribut mit den Inhaltsverteilungskriterien übereinstimmt.
- "Get" (Holen): Ein DS, der ein Dateisystemobjekt von einem anderen DS entnehmen muss, kann zum Beispiel einen Befehl "get" (holen) ausgeben. Der Befehl "get" kann vier Arten von Paketen aufweisen: "get", "get_response", "get_chunk" und "get_ack". Zum Beispiel kann das Paket "get" eingesetzt werden, um einen Pull einzuleiten, und das Paket "get_response" kann eingesetzt werden, um den Status der Station zu melden und Objektmetadaten nach Bedarf übertragen. Das Paket "get_chunk" kann eingesetzt werden, um Dateidaten oder Datenträger- oder Verzeichnisinformationen zu übertragen, und das Paket "get_ack" kann eingesetzt werden, um das Ende der "get" Sequenz zu bestätigen und den Status zu melden. Beim Herunterladen einer Datei kann ein DS eine Entscheidung hinsichtlich der Größe der zu entnehmenden (pull) Datei treffen auf der Basis von: (1) dessen Speicherverfügbarkeit; (2) der Position der Station in der Netzwerklandschaft; (3) der Popularität des Inhalts; (4) der Eigenschaft hinsichtlich der Beschneidbarkeit oder der fehlenden Beschneidbarkeit der Datei; und (5) der zulässigen Bandbreite. Ein DS kann "get" Befehlsfolgen als Reaktion auf eine "Replikationsanforderung" (replicate) und eine Anforderung "search_reply" ausgeben.
- "Prepare" (Vorbereiten): Ein Befehl "prepare" kann zwei Pakete aufweisen, wie zum Beispiel: "prepare" und "prepare_ack". Wenn Benutzer oder Anwendungsserver über ein VFCS auf ein Dateiobjekt zugreifen, kann das VFCS ein Paket "prepare" an einen DS ausgeben, um die nicht residenten Abschnitte einer Datei für den Benutzer oder den Anwendungsserver zu ziehen bzw. zu entnehmen. Der DS kann das Paket "prepare_ack" verwenden, um zu bestätigen, dass er das Paket "prepare" empfangen hat und "prepare" so bald wie möglich ausführen wird.
- "Search" (Suchen): Wenn der DS die Anforderung "prepare" verarbeiten kann, kann er einen Befehl "search" (Suchen) ausgeben, um die fehlenden Abschnitte bzw. Teile einer Datei zu suchen. Ein Befehl "search" kann drei Pakete aufweisen, wie zum Beispiel: "search", "search_ack" und "search_reply". Ein DS, der einen Befehl "prepare" bearbeitet, gibt ein Paket "search" aus, um eine Multicast-Suche unter dessen Nachbarn nach nicht residenten Abschnitten der Datei einzuleiten. Jeder Nachbar kann ein Paket "search_ack" ausgeben, das anzeigt, dass er eine Anforderung "search" empfangen hat. Das Paket "search_ack" ist keine Bestätigung, dass der DS Abschnitte der angeforderten Datei aufweist. Ein Knoten, der einen Abschnitt der benötigten Datei aufweist, kann ein Paket "search_reply" ausgeben. Das Paket "search_reply" kann die Blockindexanordnung aufweisen, welche den Abschnitt der gesuchten Datei anzeigt, die sich in dem Antwortknoten befindet, den Netzwerkzustand des Knotens und die Belastung des DS-Clusters des Knoten. Ein DS in dem einleitenden DS-Cluster empfängt Pakete "search_reply" und kann die entsprechenden entfernten DS-Knoten auswählen auf der Basis der Informationen in den Paketen "search_reply", um die fehlenden Abschnitte der Datei herunterzuladen. Ein DS in dem einleitenden DS-Cluster kann den Befehl "get" zum Beispiel an einen oder mehr Knoten (d. h. ausgewählte SCDN-Knoten) ausgeben, um den fehlenden Inhalt herunterzuladen.
- "Remove" (Entfernen): Der Befehl "remove" kann zwei Pakete aufweisen, wie zum Beispiel "remove" und "remove_ack". Die Steuereinheit der Knoten kann einen Befehl "remove" an den DS ausgeben, um bestimmte Blöcke zu entfernen. Der Pruning-Prozess, der später im Text näher beschrieben wird, verwendet den Befehl "remove". Ein Paket "remove" ist eine Benachrichtigung bzw. Mitteilung an einen DS, dass bestimmte Blöcke entfernt werden müssen. Der DS kann in der Folge ein Paket "remove_ack" ausgeben, um zu bestätigen, dass er letztlich die angezeigten Blöcke entfernt, wenn er bereit ist.
- "Clean" (Löschen): Der Befehl "clean" kann zwei Pakete aufweisen, "clean" und "clean_ack". Der CMS oder ein VFCS kann ein Paket "clean" oder ein ähnliches Paket ausgeben, um einen an dem gleichen Knoten angeordneten DS zu benachrichtigen, dass er ein bestimmtes Dateisystemobjekt entfernen muss. Der DS gibt ein Paket "clean_ack" oder ein ähnliches Paket aus, um zu bestätigen, dass das Dateisystemobjekt letztlich entfernt wird, wenn der DS dazu bereit ist. Dem während dem Befehl "replicate" verwendeten Pfad folgend (verfügbar in den Verteilungskriterien für die Datei), gibt der DS einen Befehl "clean" oder einen äquivalenten Befehl an dessen benachbarte Knoten aus, wobei das Löschen des Dateisystemobjekts angefordert wird sowie dessen verwandten Metadateisystemarchitektur und Objektmetadaten von allen Knoten in dem SCDN.
- "Info": Der Befehl "info" kann zwei Pakete aufweisen, wie zum Beispiel "info" und "info_ack". Der CMS oder ein VFCS kann ein Paket "info" ausgeben, um Dateisystemobjektmetadaten (Daten in Bezug auf die Verwaltung von Datenträgern, Verzeichnissen und Dateien unter Verwendung des SCDN) an einen DS zu verteilen. Das Paket kann eingesetzt werden, um Attribute bestimmter Datenträger, Verzeichnisse oder Dateien hinzuzufügen, zu löschen, neu zu positionieren und zu modifizieren. Wenn ein DS ein Paket "info" empfängt, modifiziert er die Metadateisystemstruktur und die verwandten Objektmetadaten und verteilt danach das Paket "info" weiter an dessen Nachbarn. Ein DS gibt ein Paket "info_ack" an den Anforderer aus (CMS, VFCS oder DS) und gibt danach den Befehl "info" an alle seine Nachbarn mit Ausnahme des Anforderers aus. Ein Paket "info", das Datenträgerinformationen enthält, wird über das ganze SCDN ausgebreitet. Ein Paket "info", das Dateimetadaten enthält, wird auf der Basis der Verteilungskriterien für diese Datei ausgebreitet. Wenn ein CMS oder ein VFCS ein Paket "info" von Objektmetadaten in Verbindung mit den Verteilungskriterien des Dateisystemobjekts an einen DS sendet, so modifiziert der empfangende DS dessen Metadateisystemstruktur nach Bedarf, modifiziert dessen lokale Metadatendatei, welche die Objektmetadaten aufweist, gibt ein Paket "info_ack" an den Anforderer (CMS oder DS) aus und gibt danach ein Paket "info" an die Nachbarn aus, welche die Verteilungskriterien erfüllen (d. h. die Nachbarn, welche die Verteilung der Datei während dem Befehl "replicate" empfangen haben). Dieser Prozess dauert an, bis die Metadateisystemstruktur und die Metadatendatei, welche die Objektmetadaten in allen Knoten aufweisen, welche die Verteilungskriterien erfüllen, aktualisiert werden.
- "Learn" (Lernen): Der Befehl "learn" kann von einem lernenden Agenten der Steuereinheit ausgegeben und verwendet werden, wenn ein DS dem SCDN hinzugefügt wird und dessen lokaler Speicher initialisiert werden muss, oder wenn sich die Attribute des Knoten ändern oder in Verbindung mit Netzwerkkonfigurationsänderungen oder während der Wiederherstellung nach einem Fehler. Der DS, der den Befehl "learn" empfängt, verbreitet den Befehl "learn" an alle seine Nachbarn mit Ausnahme des Anforderers. Das Paket "learn" führt die Attribute des Ursprungsknotens. Jeder DS, der ein Paket "learn" empfängt, bestimmt, ob dessen Station Dateisystemobjekte aufweist, welche die Attribute der lernenden Station erfüllen, und wenn dies der Fall ist, gibt der DS "replicate" an einen DS in der lernenden Station aus, um die relevanten Dateisystemobjekte zu entnehmen.
- "Fetch" (Erfassen): Der Befehl "fetch" kann von dem lernenden Agenten der Steuereinheit verwendet werden, während dieser in dem aktiven Modus lernt. Der Befehl "fetch" kann zwei Pakettypen aufweisen: "fetch" und "fetch_ack". In dem aktiven Lernmodus erhält der lernende Agent eine Liste von Dateisystemobjekten (Datenträger, Verzeichnisse und Dateien), die zu lernen sind, und des zugeordneten Knotens der Dateisystemobjekte. Während dieser Zeit stehen die Metadateisystemstruktur und die Objektmetadaten für diese Dateisystemobjekte in der lokalen Station nicht bereit, und somit weist der DS nicht die Informationen auf, um eine Suche und einen Download der Dateisystemobjekte durchzuführen. Der lernende Agent gibt ein Paket "fetch" an einen lokalen DS aus, in Verbindung mit der Ursprungsstation des Inhalts. Der DS wiederum gibt ein Paket "fetch_info" an einen DS des zugeordneten Knoten der Dateisystemobjekte aus. Nachdem der DS die Objektmetadaten für die gewünschten Dateisystemobjekte erhalten hat, speichert er die Informationen in der lokalen Metadateisystemarchitektur und der Objektmetadatendatei und gibt "fetch_ack" an den lernenden Agenten zurück. Der lernende Agent kann in der Folge damit fortfahren, Befehle "prepare" zum Herunterladen der Datei auszugeben.
- "Fetch_info" (Info erfassen): "Fetch_info" weist zwei Pakete auf, "fetch_info" und "fetch_info_block". Jeder Befehl "fetch" weist darin codiert die Identifikation eines bestimmten Dateisystemobjekts und einen bestimmten DS auf, der garantiert das Dateisystemobjekt aufweist. Als Reaktion auf einen Befehl "fetch" gibt ein DS "fetch_info" an den in "fetch" identifizierten DS-Knoten aus. Der entfernte DS kann mit "fetch_info_block" antworten, worin die erforderlichen Objektmetadaten enthalten sind, um es dem lokalen DS zu ermöglichen, dessen Metadateisystemstruktur und Objektmetadatendateien zu speichern oder zu aktualisieren.
- "Stop" (Stopp): Der Befehl "stop" kann zwei Pakete aufweisen, wie etwa "stop" und "stop_ack". Der Befehl "stop" wird dazu verwendet, einen DS abzuschalten. Wenn ein DS ein Paket "stop" empfängt, antwortet er unverzüglich mit "stop_ack", und abhängig von der Abschlussanforderung kann der DS sofort abschalten oder abschalten, nachdem er alle gerade ausgeführten Aufträge abgeschlossen hat.
- c. Prozedur für die Dateisystemobjektverteilung
- Die Verteilungsprozedur wird eingesetzt, wenn ein neues Dateisystemobjekt erzeugt wird, oder wenn ein bestehendes Dateisystemobjekt modifiziert oder gelöscht wird. Die Modifikation eines Dateisystemobjekts umfasst das Umbenennen, das Ändern etwaiger Attribute, die neue Anordnung und das Ändern von Inhalt (Dateiobjekt).
- Die Verteilung eines Dateisystemobjekts verläuft wie folgt: (1) Der DS antwortet bzw. reagiert auf die Anforderung des Inhalteeigentümers (d. h. eine Anforderung von CMS oder VFCS für die Erzeugung oder Änderung eines Dateisystemobjekts) über VFCS oder CMS, Informationen eines Dateisystemobjekts zu verteilen sowie die Anforderung durch Senden einer Mitteilung bzw. Benachrichtigung (d. h. einer Replikationsanforderung) an dessen Nachbarn, um Änderungen und die Verteilungskriterien des Dateisystemobjekts bekannt zu geben; (2) "Qualifizierte" Nachbarn (d. h. diejenigen, welche die Kriterien erfüllen) laden die Objektmetadaten, Informationen und Anforderung herunter. Für die Dateiverteilung werden während diesem anfänglichen Verteilungsprozess verschiedene Abschnitte der Datei heruntergeladen. Diese Nachbarn modifizieren ferner die Metadateisystemstruktur gemäß der Replikationsanforderung, und wobei die Objektmetadaten in deren lokalen Speicher aktualisiert werden; (3) Die Benachrichtigung/Anforderung wird danach von Nachbar zu Nachbar weitergeleitet, jedoch nicht zurück zu dem Nachbarn, von dem die Verteilungsanforderung empfangen wird; (4) Jeder Nachbar führt die Schritte 2 und 3 aus, bis er auf einen Blattknoten oder einen "abschließenden" Knoten trifft. Somit erfolgt die Verteilung der Dateisystemobjektinformationen in dem Netzwerk in Phasen bzw. Stufen über Multicast-Signalisierung, wie dies hierin beschrieben ist.
- Jeder Knoten, der eine Verteilungsanforderung oder -benachrichtigung empfängt, leitet die Anforderung an alle seine Nachbarn weiter, mit Ausnahme des "anfordernden" Knotens (d. h. des Knotens, von dem er die Anforderung empfangen hat). Ein abschließender bzw. Abschlussknoten ist ein Knoten, an dem weder die Attribut-Bitmap des Knotens noch dessen aufgerollte Bitmap den Verteilungskriterien entspricht, und wo die Verteilungsanforderung nicht an die Mutter bzw. den Vater bzw. die übergeordnete Einheit übermittelt werden kann. Für jeden Knoten, dessen Attribut-Bitmap den Verteilungskriterien des Inhalteeigentümers bzw. Content Owners für die Datei entspricht, werden die relevanten Dateisystemobjektinformationen, oder wenn es sich um eine Datei handelt, ein Teil der Datei, von den am nächsten liegenden Nachbarn in dem Verteilungspfad heruntergeladen, der die Informationen aufweist, die heruntergeladen werden müssen. Die Benachrichtigung bzw. die Mitteilung basiert auf Transport Level Multicast und das Download der Informationen erfolgt über den gleichen Multicasting-Pfad unter Verwendung der Pull-Methode. Nach dem Download speichert ein DS die Dateiystemobjektinformationen lokal. Dieser DS erzeugt eine zugeordnete Metadateisystemhierarchie, speichert Metadaten, und bei einer vorgesehenen Dateiverteilung speichert der DS die Abschnitte der Datei als Blöcke, die über verschiedene Speicherdatenträger in den Speichervorrichtungen
430 verteilt sind. Beim Verteilen der Datei über mehrere Speicherdatenträger wird die Ein-Ausgabe-Last (E/A) über die Datenträger verteilt und es erhöht sich insgesamt die Performance bzw. Leistungsfähigkeit eines Verteilungszentrums400A –C während der Inhaltsverteilung und der Zustellung von Inhalten. Im Sinne der vorliegenden Erfindung kann es sich bei den Speicherdatenträgern um jede Anordnung von Speichervorrichtung handeln, wie z. B. Disk Arrays bzw. Plattenanordnungen, die an einem Server angebracht sind, RAID-Systeme (RAID als englische Abkürzung von Redundant Array of Independent Disks) oder um einen Network Attached Storage (NAS) oder ein Storage Area Network (SAN). - Die Abbildungen der
11A –B veranschaulichen ein Ausführungsbeispiel der vorliegenden Erfindung, das sich auf die Verteilung eines Dateisystemobjekts, eine Aktualisierung oder Metadaten in einem SCDN bezieht. Die Abbildung aus11A zeigt eine virtuelle Baumstruktur1100 mit den Knoten A–I. Die Abbildung aus11B zeigt ein Beispiel für die virtuelle Baumstruktur1102 der Knoten A–I, wobei Daten und Metadaten, welche einer Datei oder Abschnitten einer Datei entsprechen, gemäß der Verteilungsprozedur der vorliegenden Erfindung verteilt worden sind. Ein Inhalteeigentümer erzeugt entweder ein neues Dateisystemobjekt oder eine Aktualisierung eines Dateisystemobjekts über das VFCS470 des Knotens B oder lädt ein Dateisystemobjekt in den Content Management Server (CMS)170 hoch, der mit dem Knoten B des SCDN100 verbunden ist, und zwar unter Verwendung einer beliebigen Content Publishing und Management Software, die auf dem Client-System des Inhalteeigentümers (CPC)130 ausgeführt wird. Der Inhalteeigentümer konfiguriert die Verteilungskriterien mit dem VFCS470 oder lädt die Verteilungskriterien auf den CMS170 . Das VFCS470 oder der Content Management Server170 analysiert, wie dies vorstehend im Text bereits beschrieben worden ist, das Dateisystemobjekt und unterteilt eine Datei (wenn das Objekt eine Datei ist), so dass Metadaten erzeugt werden. Für den Fall eines CMS170 wird das Dateisystemobjekt zuerst analysiert und zerlegt, wenn es sich bei dem Objekt um eine Datei handelt, um die Spurdateien zu bestimmen, und der CMS gibt einen Befehl aus, der dem FDP-Befehl "put" ähnlich ist, um Metadaten und Inhalte hochzuladen, oder er aktualisiert den in dem Knoten B angeordneten Verteilungsserver. In anderen Ausführungsbeispielen kann der CMS170 mit jedem Knoten des SCDN100 verbunden werden. An dem Knoten B aktualisiert der DS die Metadateisystemstruktur entsprechend und speichert ferner die relevante Metadatendatei. Für den Fall, dass es sich bei dem Objekt um eine Datei handelt, unterteilt der DS das Dateiobjekt zur lokalen Speicherung in Blockdateien. Für den Fall, dass das Dateisystemobjekt durch VFCS eingeführt wird, analysiert VFCS das Objekt, so dass Metadaten erzeugt werden. Das VFCS aktualisiert die Metadateisystemarchitektur und speichert die relevanten Metadaten. Wenn es sich bei dem Objekt um eine Datei handelt, unterteilt das VFCS die Datei in Blöcke und speichert diese Blöcke in dessen mit dem DS in dem Knoten B gemeinsam genutzten Speicher. Bei einem Dateiobjekt ist die ganze Kopie der Datei an dem Knoten B als ein ausgefüllter Punkt dargestellt (11B ). - Während die Dateisystemobjektinformationen auf den Verteilungsserver hochgeladen werden, gibt der CMS einen FDP-Befehl vom Typ "distribute" (verteilen) an den Verteilungsserver an dem Knoten B aus. Für den Fall des VFCS, wenn das Dateisystemobjekt in den Speicher geschrieben wird, gibt das VFCS einen FDP-Befehl vom Typ "distribute" (verteilen) an den Verteilungsserver an dem Knoten B aus. Als Reaktion auf den Verteilungsbefehl gibt der DS einen Befehl an dessen benachbarte Knoten A, D und E aus, um die Informationen oder Inhalt zu replizieren (z. B. unter Verwendung des Befehls "replicate" (replizieren) des FDP). Dieser Replikationsbefehl stellt einfach eine Benachrichtigung an die Nachbarn hinsichtlich der Dateisystemobjektänderungen dar. Der Knoten D prüft das Replikationspaket und entscheidet, es soll die Metadaten oder den Inhalt nicht aufweisen, so dass der Replikationsbefehl an dessen Nachbarn, den Knoten H, weitergeleitet wird. Die Knoten A, E und H prüfen das Replikationspaket und entscheiden, dass sie alle den Verteilungskriterien entsprechen (d. h. es handelt sich um "qualifizierte Knoten). Wenn die Bereitschaft gegeben ist, geben die Knoten A, E und H Befehle aus, um die relevanten Metadaten abzurufen, und für das Dateiobjekt einen Abschnitt der Datei von dem am nächsten gelegenen Knoten (z. B. Knoten B) in dem SCDN. Bei den Knoten E und H handelt es sich um Blattknoten, welche somit den Replikationsbefehl nicht ausbreiten. Der Knoten A stellt jedoch den Wurzeknoten mit den Tochterknoten B und C dar. Der Knoten A sendet den Befehl "replizieren" unter Umständen nicht an den Knoten B zurück, da er den Ursprungsknoten darstellt. Der Knoten A kann jedoch auch die Replikationsanforderung an den Knoten C senden. Der Knoten C prüft die Verteilungskriterien und entscheidet, dass es sich um einen qualifizierten Knoten handelt, so dass der Knoten die relevanten Metainformationen bzw. Metadaten abruft, und bei einer Datei einen Abschnit der Datei von den am nächsten gelegenen Knoten (z. B. dem bzw. den nächsten der Knoten A, B, E und H), welche die benötigten Daten aufweisen. Der Knoten C sendet in der Folge den Replikationsbefehl an die Knoten F und G. Der Knoten F ist qualifiziert und ruft somit die Metainformationen ab und bei einer Datei einen Abschnitt der Datei von dem am nächsten gelegenen Knoten mit den Daten (z. B. Knoten B oder C). Die Knoten G und I sind nicht qualifiziert und empfangen somit nichts. Der Knoten G ist ein abschließender Knoten, da das aufgerollte Attribut dessen Zweigs die Verteilungskriterien nicht erfüllt.
- Dieser anfängliche Replikationsprozess dauert an, bis alle qualifizierten Knoten in dem SCDN zumindest teilweise belegt sind. Wenn die qualifizierten Knoten Metadaten abrufen oder einen gewissen Abschnitt einer Datei, so modifizieren sie die Metadateisystemstruktur entsprechend, speichern die Metadaten und bei einem Dateiobjekt speichern den Datenblock und modifizieren die Blockindexanordnung entsprechend. In einem oder mehreren Ausführungsbeispielen der Verteilung einer Datei, siehe
11B , befindet sich der gleiche Abschnitt (z. B. Blöcke) der Datei in mindestens einem Knoten des SCDN. Vorzugsweise verwaltet eine Mehrzahl von Knoten den gleichen Abschnitt, wodurch Redundanz erzeugt und der Verlust von etwaigen Abschnitten der Datei vermieden wird, wenn ein oder mehrere Knoten oder Speicherdatenträger nicht mehr verfügbar sind (d. h. verloren gehen), wobei ein DS an dieser Station keine besondere Maßnahmen ergreifen muss, um den Inhalt des beschädigten Datenträgers wiederherzustellen, da die Abschnitte der in bzw. auf diesem Datenträger gespeicherten und später verlorenen Dateien automatisch von anderen Netzwerkknoten heruntergeladen werden, wenn die Nachfrage für die Bearbeitung bzw. Behandlung einer Benutzeranforderung gegeben ist, wobei dies als selbstheilende Fähigkeit des SCDN bezeichnet wird. Die Verteilungsserver leiten ferner Steuerungsinformationen einer fehlerhaften Station an Nachbarn der fehlerhaften Station weiter, um einen fehlerhaften Abbruch von Steuerbefehlen zu vermeiden. Für den Fall, dass ein neues Verzeichnis oder ein neuer Datenträger erzeugt oder modifiziert wird, wird der gleiche Replikationsbefehl an das ganze SCDN auf die gleiche Art und Weise ausgebreitet wie ein Replikationsbefehl für eine Datei ausgebreitet wird. Wenn die Knoten einen Replikationsbefehl für ein Verzeichnis empfangen oder sich der Datenträger ändert, so gibt der DS in den Knoten einen Befehl wie etwa den FDP-Befehl "get" aus, um die verwandten bzw. zugeordneten Dateisystemobjektmetadaten von den am nächsten liegenden Knoten herunterzuladen. Sobald der DS die Dateisystemobjektinformationen empfängt, erzeugt er oder verändert er die lokale Metadateisystemstruktur und aktualisiert die zugeordneten Metadaten. - Der FDP-Befehl "info" wird zur Benachrichtigung verwendet, wenn sich Attribute eines Dateisystemobjekts ändern. Ein Attribut eines Dateisystemobjekts umfasst den Objektnamen, Daten, Angaben zum Eigentümer, die Position des Objekts in der Dateisystemhierarchie, etc. Der FDP-Befehl "clean" wird zur Benachrichtigung aller Knoten in dem SCDN hinsichtlich der Löschung eines Dateisystemobjekts verwendet. Diese Benachrichtigungen werden auf die gleiche Art und Weise verbreitet, wie der FDP-Befehl "replicate" gemäß der Beschreibung in dem vorstehenden Absatz.
- Bei normalem Betrieb sendet ein Verteilungsserver FDP-Befehle, wie zum Beispiel "replicate", "info", "search" und "clean", die an das ganze Netzwerk oder einen Teil des Netzwerks weitergeleitet werden, über andere Verteilungsserver in den unmittelbaren Nachbarstationen in dessen Steuerpfad. Wenn zum Beispiel ein Verteilungsserver einen FDP-Befehl empfängt, wie zum Beispiel "replicate" oder "info", so sendet er den Befehl an dessen benachbarte DS auf der Basis der FDP-Verteilungskriterien. In dem Fall, dass eine der Nachbarstationen ausfällt, behält der DS den Auftrag in dessen Auftragswarteschlange und ruft wiederholt ab, bis der Auftrag erfolgreich ausgeführt worden ist. Gleichzeitig nimmt der DS vorübergehend die Rolle des DS in der ausgefallenen bzw. fehlerhaften Station ein, indem der FDP-Befehl an die benachbarten DS der fehlerhaften Station weitergeleitet wird.
- Dieses File Distribution Protocol (FDP) gemäß der vorliegenden Erfindung verwendet die Verteilungskriterien des Eigentümers der Inhalte, um die Verteilung des Dateisystemobjekts, wobei die Verteilung bei einer Datei ganz oder teilweise erfolgen kann, an alle Knoten in dem Netzwerk vorzugeben, welche die Verteilungskriterien des Eigentümers erfüllen. Eine Verteilungsanforderung kann von jedem Knoten in dem Baum beginnen und verläuft den Baum nach oben und nach unten, bis sie einen Blattknoten oder einen abschließenden Knoten erreicht. Für jeden Knoten mit den entsprechenden Attributen wird die Datei teilweise von den am nächsten gelegenen Nachbarn heruntergeladen, welche die spezifischen Leistungskriterien erfüllen, wenn diese Nachbarn den zu herunterladenden Abschnitt der Datei aufweisen. Der am nächsten gelegene Nachbar beim Herunterladen von Inhalten ist nicht unbedingt in dem virtuellen Baum der nächst gelegene Nachbar, sondern der nächste in Bezug auf die Entfernung. Dies verhindert massive Übertragungen von dem Knoten, an dem die Datei ursprünglich hochgeladen wird. Ferner verhindert das Staging der Verteilung übermäßige Nachfragen bzw. Anfragen im Netzwerk um den ursprünglichen Knoten (z. B. den Knoten B). Durch das Zustellen kleinerer Blöcke und nur einer teilweisen Datei, reduziert dieses Zustellungsverfahren die Netzwerkbelastung. Da ferner das Fortschreiten der Verteilungsanforderungen durch das SCDN angehalten wird bzw. anhält, wenn sie an einen "abschließenden" Knoten erreichen, verhindert die vorliegende Erfindung es, dass unnötige Verteilungsanforderungspakete das Netzwerk fluten bzw. überschwemmen.
- d. Hinzufügen von Datenträgern, Verzeichnissen und Dateien
- Neue Datenträger, Verzeichnisse und Dateien können an jedem Knoten hinzugefügt werden. Änderungen der Datenträger, Verzeichnisse und Dateien können ebenfalls an jedem Knoten vorgenommen werden. Die Abbildung aus
11C zeigt ein Beispiel dafür, wie die Verteilungsserver an den entsprechenden Knoten 1 bis 4 zusammen arbeiten, um Metainformationen und Inhalte dynamisch zu verteilen und zu replizieren, so dass jeder Server eine globale Dateisystemansicht darstellt, bei der es sich um eine aggregierte Ansicht des ganzen Netzwerks handelt. Durch die Verteilung, Synchronisierung und Replikation aggregieren die SCDN-Knoten die Speichervorrichtungen in dem Netzwerk, so dass diese als eine arbeiten bzw. funktionieren. - In dem in der Abbildung aus
11C dargestellten Beispiel wird angenommen, dass die Knoten 1 bis 4 alle in der gleichen Verteilungskarte angeordnet sind. Ein Ordner mit der Bezeichnung "dir1" und dessen Dateien werden an dem Knoten 1 in das SCDN100 eingegeben, wie dies durch den Pfeil in den Knoten 1 dargestellt ist. Der Knoten 1 speichert den Ordner "dir1" in einem Pfad "root" (Wurzel). In ähnlicher Weise werden die Ordner "dir2", "dir3" und "dir4" und deren Dateien in das SCDN100 an den entsprechenden Knoten 2 bis 4 eingegeben, wie dies durch die Pfeile in die Knoten 2 bis 4 dargestellt ist. Die Knoten 2 bis 4 speichern jeweils die entsprechenden Ordner "dir2", "dir3" und "dir4" in dem Pfad "root". Jede Art von Datei(en) kann in den Ordnern enthalten sein. - Die virtuellen Dateisteuersysteme an den Knoten 1 bis 4 arbeiten gemäß der Beschreibung hierin im Einklang mit der vorliegenden Erfindung zusammen, um Metainformationen und Inhalt dynamisch zu verteilen und zu replizieren, so dass jedes der virtuellen Dateisteuersysteme eine globale Dateisystemansicht darstellt, die eine aggregierte Ansicht des ganzen Netzwerks darstellt. Die Knoten 1 bis 4 weisen jeweils die gleichen Metadaten nach der Replikation auf. Dies ermöglicht es, dass jedes virtuelle Dateisteuersystem an den Knoten 1 bis 4 die gleiche globale Dateisystemansicht des Inhalts aller Knoten 1 bis 4 darstellt, unabhängig davon, welche Ordner tatsächlich in einem bestimmten Knoten gespeichert sind. Die Abbildung aus
11C zeigt ferner durch Pfeile, welche aus jedem der Knoten 1 bis 4 weg zeigen, die gleiche globale Dateisystemansicht, die durch jedes Knoten-VFCS dargestellt wird:
"/root/dir1
/dir2
/dir3
/dir4." - C. Inhalte bereitstellen (Serving Content)
- Das Bereitstellen von Inhalten bzw. Content Serving wird über ein VFCS
470 in jedem Knoten bereitgestellt. Das Content Serving umfasst das Erzeugen einer Verzeichnisdarstellung eines globalen Dateisystems und die Rekonstruktion und das Serving von Daten des Dateisystemobjekts über eine Dateisystemschnittstelle des VFCS in Echtzeit. Die globale Dateisystemdarstellung wird aus der Metadateisystemstruktur und den Dateisystemobjektmetadaten erzeugt. Das durch das VFCS470 dargestellte globale Dateisystem stellt den Inhalt des gesamten SCDN Content-Netzwerks dar. Diese Dateisystemdarstellung lässt sich nicht eins zu eins in die Daten in den lokalen Speichervorrichtungen abbilden. Die Dateisystemdarstellung ist getrennt von den tatsächlichen Daten. Die Metadateisystemstruktur stellt die Struktur des ganzen globalen Verzeichnisses in dem SCDN100 (oder einfach "SCDN") dar, während die Dateisystemobjektmetadaten die Informationen führen, um ein Dateisystemobjekt zu konstruieren, wie zum Beispiel die Zugriffssteuerungsliste eines Datenträgers, die Erstellungs- und Modifikationsdaten eines Datenträgers oder eines Verzeichnisses, die Popularität einer Datei, die eindeutige ID bzw. Kennung des ganzen Dateisystemobjekts und die Informationen für die Rekonstruktion einer Datei aus den Blockdateien, etc. Es ist eine Schicht, welche die Dateisystemdarstellung und die tatsächlichen Daten verbindet, die in Speichervorrichtungen gespeichert sind. Die Dateimetadaten ermöglichen das Speichern von Blockdateien einer Datei in mehreren verteilten Speichervorrichtungen, und sie ermöglichen es ferner, dass Blockdateien verfolgt bzw. überwacht, aktualisiert und über ein Netzwerk von Knoten verteilt werden. - 1. Metadateisystemstruktur und Dateisystemobjektmetadaten
- In Bezug auf ein ganzes Dateisystem, das erzeugt wird durch die Integration aller Knoten eines SCDN
100 , ist das VFCS470 für zwei Aspekte zuständig: (a) es stellt eine Dateisystemschnittstelle für den Zugriff von Dateisystemobjekten bereit – Datenträger, Verzeichnisse, Dateien und deren Metadaten; und (b) in Bezug auf Dateien stellt es eine Abstraktion bereit, welche eine Gruppe von Blockdateien aus dem lokalen, zugrunde liegenden Dateisystem einem intakten Dateisystem zuordnet und diese zusammensetzt (in Echtzeit), das von jedem der Knoten dem SCDN zugeführt werden kann. Um dies zu implementieren hat das SCDN eine Metadateisystemstruktur und ein Dateisystemobjektmetadatenformat für die Konstruktion der globalen Dateisystemdarstellung durch ein VFCS470 definiert. Das VFCS470 und der DS sind zuständig bzw. verantwortlich für die Verwaltung der Metadateisystemstruktur und der Metadatendateien, wenn neue Objekte hinzugefügt, bestehende Objekte modifiziert und gelöscht werden. Und der DS ist zuständig für die Ausbreitung der Änderungen durch das ganze SCDN. In Bezug auf Dateiobjekte weist ein Teil ihrer Metadaten eine lokale Blockindexanordnung auf. Die Blockindexanordnung jeder Datei ist an verschiedenen Knoten nicht identisch. Die Blockindexanordnung stellt einem VFCS470 die Informationen darüber bereit, wie eine Gruppe von Blockdateien angeordnet werden kann, um die ursprüngliche Datei wiederherzustellen, wobei sie einem VFCS470 ferner anzeigt, ob sich ein Block in dem lokalen Knoten befindet oder nicht, und wenn dies der Fall ist, wird der spezifischen Speichervorrichtung angezeigt, wo sich der Block befindet. Die Blockdateien in einem SCDN-Knoten werden in Verzeichnissen mit spezifischen Benennungsmustern gespeichert. - a. Metadateisystemarchitektur
- Die Metadateisystemstruktur
1210 , die in der Abbildung aus12A dargestellt ist, stellt ein Beispiel für die Dateisystemhierarchie des globalen Dateisystems gemäß der vorliegenden Erfindung dar. Dieses Verzeichnis existiert in allen Knoten in dem zugrunde liegenden Dateisystem, auf welche die SCDN-Komponenten zugreifen können. Das VFCS470 verwendet die Metadateisystemstruktur für die Konstruktion der globalen Dateisystemdarstellung. An jedem Knoten gibt es einen Metadaten-Stamm- bzw. Wurzelpfad1220 – {Metapfad}, wobei in dem {Metapfad} eines oder mehrere Unterverzeichnisse vorhanden sind, die mit einer SCDN-Netzwerk-ID bezeichnet sind. Jedes der Verzeichnisse weist eine Metadateisystemstruktur und Dateisystemobjektmetadaten auf, welche eine globale Dateisystemdarstellung darstellen; wobei jedes SCDN ein globales Dateisystem aufweist. - Jede Metadateisystemstruktur weist eines oder mehrere Datenträger bzw. Volumen (Container) auf, wobei jeder Datenträger ein oder mehrere Verzeichnisse aufweist, wobei jedes Verzeichnis Unterverzeichnisse oder Dateien aufweist. Da es sich bei der Metadateisystemstruktur um kein echtes Dateisystem handelt, weist sie keine tatsächlichen Daten der Dateien auf. In jedem Volumen bzw. Datenträger gibt es eine Datenträgermetadatendatei, die mit {Datenträgername}.vdat bezeichnet ist. In jedem Verzeichnis gibt es eine Verzeichnismetadatendatei, die mit {Verzeichnisname}.ddat bezeichnet ist. Die Dateien befinden sich in der Metadateisystemstruktur und weisen keine echten bzw. realen Daten auf, stattdessen enthalten diese Dateien Dateimetadaten.
- Die Metadateisystemstruktur eines SCDN muss nicht an jedem Knoten identisch sein. Die Metadateisystemstruktur eines Knotens stellt die Datenträger, Verzeichnisse und Dateien dar, die an diesen Knoten repliziert werden. Da die Verteilung der Dateisystemobjekte geführt wird durch eine Reihe von Verteilungskriterien, können einige Dateisystemobjekte an bestimmte Knoten repliziert werden und an bestimmte andere Knoten nicht. Somit befindet sich eine Dateisystemobjektdarstellung nicht in der Metadateisystemstruktur eines Knotens, wenn das Objekt nicht an diesen Knoten repliziert wird.
- Alle diese Dateisystemobjekte – Datenträger, Verzeichnisse und Dateien – können von jedem der Knoten in dem SCDN erzeugt bzw. erstellt werden. Diese Objekte können durch DS durch einen CMS erstellt werden und sich danach durch das SCDN ausbreiten, wobei sie aber auch durch ein VFCS
470 erzeugt werden und sich durch das SCDN über DS ausbreiten können. Diese Objekte können modifiziert oder gelöscht werden über jeden CMS oder das VFCS470 von jedem Knoten in Verbindung mit entsprechender Benutzerbefugnis. - b. Datenträger, Verzeichnis und Dateimetadaten
- Dateisystemobjektmetadaten unterstützen das VFCS
470 und den DS410 beim eindeutigen Identifizieren der Objekte, beim Lokalisieren des Ursprungsknotens, beim Lokalisieren der Knoten, die die Objekte aufweisen sowie beim Lokalisieren der Daten in den Speichervorrichtungen in einem Knoten. In einem Ausführungsbeispiel der vorliegenden Erfindung gibt es drei Dateisystemobjektmetadatendateien, nämlich Datenträger (Volume), Verzeichnis (Directory) und Datei (File). Die Metadatendateien befinden sich in der Metadateisystemstruktur, siehe12A . Die Abbildungen der13A –D zeigen den Inhalt von Datenträger-, Verzeichnis- und Dateimetadaten eines Ausführungsbeispiels der vorliegenden Erfindung. Im Besonderen zeigt die Abbildung aus13A den Inhalt einer beispielhaften Datenträgermetadatendatei1300 (auch als Datenträgermetadatenobjekt bezeichnet). Die Abbildung aus13B zeigt den Inhalt einer beispielhaften Verzeichnismetadatendatei1310 1300 (auch als Verzeichnismetadatenobjekt bezeichnet). Die Abbildung aus13C zeigt den Inhalt von beispielhaften Dateimetadaten1320 (auch als Dateimetaobjekt bezeichnet). Die Abbildung aus13D zeigt den Inhalt einer beispielhaften Blockindexanordnung1330 , die Teil beispielhafter Dateimetadaten1320 ist. Hiermit wird festgestellt, dass die Datenträgermetadaten, die Verzeichnismetadaten und die Dateimetadaten (mit Ausnahme der Blockindexanordnung(en)) nach Replikation an jedem Knoten (zum Beispiel an jedem Server) alle gleich sind. Die Blockindexanordnung kann sich an jedem Knoten unterscheiden, abhängig von dem jeweiligen Zustand des Speichers an dem entsprechenden Knoten. - In einem SCDN (identifiziert durch eine eindeutige Netzwerk-ID) werden die Dateisystemdatenträger (Container) eindeutig identifiziert durch ihre Datenträger-ID und die Ursprungsknoten-ID, sie die Datenträgermetadatendatei
1300 aus13A . Jedes Volumen bzw. jeder Datenträger weist einen Ursprungsknoten (Ursprungsknoten-ID) auf, wo es bzw. er erstellt bzw. erzeugt wird, sowie einen Content Owner bzw. Inhalteeigentümer (Eigentümer-ID), der den Datenträger erstellt hat. Ein Datenträger weist ferner eine Zugriffssteuerliste (Access Control List) auf, welche eine Liste von Benutzerberechtigungen aufweist. Eine Datenträgermetadatendatei weist ferner eine Verteilungskarte bzw. Verteilungsabbildung auf, welche den Knoten anzeigt, wo das Volumen verteilt wird. Eine identische Datenträgermetadatendatei für den Datenträger befindet sich an allen Knoten, wo der Datenträger repliziert wird. Benutzer können Datenträger von jedem VFCS470 an jedem Knoten aktualisieren; die neuen und aktualisierten Datenträgermetadaten werden unter Verwendung des FDP in dem gesamten Netzwerk repliziert. - Verzeichnisse in einem SCDN werden eindeutig identifiziert durch deren Verzeichnis-ID und deren Ursprungsknoten, andere Bezeichner, die einem Verzeichnis zugeordnet sind, sind deren Datenträger-ID und Netzwerk-ID, siehe Verzeichnis
1310 aus der Abbildung aus13B . Wie ein Datenträger weist auch ein Verzeichnis einen Ursprungsknoten, eine Verteilungskarte und ihre eigene Zugriffssteuerungsliste auf. Ein Verzeichnis kann die Zugriffssteuerungsliste von ihrem Datenträger erben bzw. übernehmen. Die Verteilungskarte zeigt den Knoten an, wo das Verzeichnis verteilt wird. In den Knoten, wo das Verzeichnis repliziert wird, wird ein Verzeichnis mit dem gleichen Namen dieses Verzeichnisses in der Metadateisystemstruktur erstellt, und die Verzeichnismetadaten sind in dem Verzeichnis eingebettet. Die Verzeichnismetadatendateien des gleichen Verzeichnisses an allen Knoten, wo das Verzeichnis repliziert wird, sind identisch. Ebenso wie bei den Datenträgern werden Verzeichnisinformationen unter Verwendung des FDP repliziert. - Dateien werden eindeutig identifiziert durch ihre Datei-ID und ihre Ursprungsknoten-ID, wobei zu den anderen Bezeichnern, die einer Datei zugeordnet sind, deren Verzeichnis-ID, deren Datenträger-ID und deren Netzwerk-ID zählen, siehe Datei
1320 aus der Abbildung aus13C . Wie bei Datenträgern und Verzeichnissen weist eine Datei einen Ursprungsknoten und eine Verteilungskarte auf, obgleich die Datei an einem VFCS470 jedes Knotens aktualisiert werden kann. Wenn eine Datei aktualisiert wird, werden Abschnitte des Inhalts und die Dateimetadaten repliziert. Die Datei-ID in den Metadaten ermöglicht es, dass eine Datei eindeutig in dem ganzen Netzwerk identifiziert werden kann; die Verteilungskarte zeigt an, wo die Datei repliziert wird; und die Blockindexanordnung (13D ), die teil der Dateimetadaten ist, weist Informationen zu dem Layout der Blockdateien auf, so dass der DS weiß, wie die Blöcke zu verteilen sind für einen beschleunigten Transport, und das VFCS470 weist, wie die Datei in Echtzeit zusammengesetzt werden sollen. Die Metadatendatei einer Datei existiert in allen Knoten, in denen die Datei repliziert wird. Neben der Blockindexanordnung ist der sonstige Teil bzw. Abschnitt der Metadaten in allen Knoten identisch. Der Inhalt der Blockindexanordnung ist an den verschiedenen Knoten unterschiedlich. - Die Abbildung aus
13D zeigt ein Beispiel für die Blockindexanordnung1330 gemäß der vorliegenden Erfindung. In dem vorliegenden Beispiel weist die Datei drei Segmente auf, wobei das Segment1332 fünf Datenblöcke aufweist, wobei das Segment1334 zehn Blöcke aufweist, und wobei das Segment1336 vier Datenblöcke aufweist. Die Sequenz der gesamten Datei beginnt mit Block #1 von Segment1332 zu Block #5 von Segment1332 , gefolgt von Block #1 von Segment1334 bis hin zu dem Ende des Segments1334 , gefolgt von dem Segment1334 . Diese Sequenz ermöglicht es einem VFCS470 , eine Benutzeranforderung transparent zu erfüllen, wenn auf einen bestimmten Teil der Datei zugegriffen wird. Der Beginn jedes Segments ist von der größten Bedeutung für die Anwendungen dieser Art von Datei. Für gewöhnlich greift eine Anwendung auf die Datei zu, indem die Anfänge aller Segmente gleichzeitig gelesen werden. - Die Segmente sind auch als Spuren bzw. Tracks bekannt. Sie ermöglichen es dem DS den wichtigsten Teil einer Datei zu lokalisieren, um mit der Verteilung zu beginnen, um die Fern- bzw. Weitverkehrszugriffslatenz zu eliminieren (d. h. für einen beschleunigten Transport). Wenn die Anfangsblocks jedes Segments von DS übertragen werden, kann ein VFCS
470 die Daten vollständig über die globale Dateisystemschnittstelle des VFCS470 darstellen. Ein Endbenutzer greift auf die Datei unter Verwendung einer entsprechenden Anwendung zu, während die DS wieder den Rest der Blockdateien in allen Segmenten füllen. Die Anzahl in allen Blockindexanordnungszellen zeigt einem VFCS470 an, ob die Blockdatei lokal angeordnet ist, und wenn dies der Fall ist, wo die Datei anzuordnen ist. In dem vorliegenden Beispiel zeigt eine 0 an, dass sich der Block nicht in dem lokalen Speicher befindet. Wenn in diesem Fall ein VFCS470 auf den Datenblock zugreifen möchte, so kann es einem DS signalisieren, den Block zu downloaden. Bevor ein DS einen nicht residenten Datenblock importieren kann, hat der DS ein FDP-Suchsignal an die Knoten mittels Multicasting übermittelt, wo die Datei repliziert wird (unter Verwendung der Verteilungskarte), um zu lokalisieren, welche Knoten den jeweiligen Datenblock aufweisen. Eine –1 in der Zelle zeigt an, dass ein DS sich im Prozess des Downloadens des Blocks befindet. Die positiven Zahlen in der Zelle zeigen einem VFCS470 die Speichervorrichtungsnummer an, wo die Blockdaten gespeichert werden. - Die Abbildung aus
12B zeigt ein Beispiel des Ausführungsbeispiels der Metadateisystemstruktur mit Dateiobjektmetadaten in zwei unterschiedlichen SCDN-Verteilungszentren140A ,140B (auch als Knoten bezeichnet) gemäß der vorliegenden Erfindung. Der Knoten140A weist Metadateninformationen1230 auf. Der Knoten140B weist die Metadateninformationen1240 auf, wie dies abgebildet ist. Dieses Beispiel zeigt, wie die Datenträgermetadaten, die Verzeichnismetadaten und die Dateimetadaten (mit Ausnahme der Blockindexanordnung(en)) nach der Replikation an jedem Knoten140A ,140B identisch sind (Ma = Mb, Va = Vb, Da = Db). Die Blockindexanordnung kann sich an jedem Knoten140A ,140B unterscheiden, abhängig von dem jeweiligen Speicherzustand an dem entsprechenden Knoten (Fa nicht gleich Fb). - c. Blockdateien und Knotenbegrenzungspfad
- Im Folgenden wird das Disk-Layout der Blockdateien beschrieben. Hierin werden bestimmte Konventionen für die Beschreibung der Verzeichnispfade verwendet. Die Abbildung aus
12C zeigt ein veranschaulichendes Ausführungsbeispiel des zugrunde liegenden Dateisystem-Blockdateiverzeichnislayouts in einem SCDN-Knoten. Abgebildet ist ein Blockdateipfadname1250 . - Die Gruppe der Blockdateien, welche eine Datei bilden, wird in Speichervorrichtungen gespeichert, wobei der Name der ursprünglichen Datei nicht verwendet wird, jedoch die Dateiobjekt-ID und eine Blocksequenznummer. Diese Blockdateien werden in Blockspeicherpfaden gespeichert, die in einer oder mehreren Speichervorrichtungen definiert sind. Ein Blockspeicherpfad ist ein Blockdateispeicherstammverzeichnis, das Informationen zu der Blockposition bereitstellt. Die einzelnen Blöcke können so gespeichert werden, dass die E/A-Last über mehrere Vorrichtungen verteilt bzw. ausgebreitet wird, um die Platten- bzw. Disk-Leistung zu maximieren. Um dies zu unterstützen, kann der SCDN-Knoten mit mehreren Blockspeicherwurzeln konfiguriert werden. Wenn der DS in jedem Knoten Blöcke speichert, so ruft er eine Funktion auf, um auszuwählen, in welcher Speicherwurzel der Block gespeichert werden soll. In einem Fall führt diese Funktion einfache eine Auswahl der Blockspeicherwurzeln nach dem Reigenmodell (englisch: Round Robin) aus, so dass wenn neue Blöcke geschrieben werden, diese gleichmäßig auf die Speicherwurzeln aufgeteilt werden. In anderen Fällen kann diese Funktion den Speicher optimieren, indem zum Beispiel Plattenspeicherinformationen verwendet und die Last neuer Blöcke auf die Vorrichtungen mit dem meisten freien Platz verteilt werden.
- Die separaten Blockspeicherpfade sind durch ihre Indexe identifiziert, die als Speicherindexe bezeichnet werden. Wenn ein Datenblock in einem der Speicherpfade gespeichert wird, wird der Index des Speicherpfads in der Blockindexanordnung in den Metadaten für das Dateiobjekt registriert; somit wird der Speicherindex in jeder Blockindexanordnungszelle dazu verwendet, die Position eines bestimmten Blocks zu beschreiben. Neue Speicherwurzeln können frei hinzugefügt werden, wobei die Indexreihenfolge bestehender Speicherwurzeln jedoch nicht verändert werden darf, auch dürfen die Speicherwurzeln nicht gelöscht werden ohne ein Hilfsprogramm für die neue Indexierung laufen zu lassen, um die Blockindexanordnungsmetadaten mit den neuen Speicherwurzelindexen zu aktualisieren.
- Die Speicherindexe liegen im Beeich von 1...n, wobei n die Anzahl der konfigurierten Speicherwurzeln darstellt. Jede Nummer bzw. Zahl wird auf einen Speicherwurzelpfad, eine Textfolge und das Speicherverzeichnis für Blockdateien abgebildet. Ein Speicherindexwert von 0 in der Blockindexanordnungszelle zeigt an, dass der Block nicht vorhanden ist. Ein Speicherindex –1 in den Metadaten zeigt an, dass der Block heruntergeladen wird, wobei der Vorgang jedoch noch nicht abgeschlossen ist.
- Zur Unterstützung des Datenaustauschs mit anderen SCDN führen die Daten eine Netzwerk-ID. Ein SCDN-Knoten speichert die Netzwerk-ID in den Daten und verwahrt die Daten jedes Netzwerks getrennt in separaten Unterverzeichnissen. Die Daten von dem "lokalen" SCDN werden mit der lokalen Netzwerk-ID gespeichert, wobei es sich in dem vorliegenden Beispiel bei der lokalen SCDN-ID um die 0 handelt. Daten von externen SCDN werden gemäß den IDs dieser Netzwerke gespeichert. Unter jedem Verzeichnis {Speicherpfad[i]} bzw. {storagepath[i]} weist jedes SCDN ihr eigenes Unterverzeichnis auf. Diese Ebene der Verzeichnisstruktur wird bezeichnet als {Speicherpfad[i-1]}/{Netzwerk_ID}/.
- Um es zu verhindern, dass ein bestimmter Plattenverzeichnisknoten mit mehr Konten als den maximalen Unterknoten des zugrunde liegenden Dateisystems überschwemmt wird, womit die resultierende Leistungsverschlechterung einher geht, die eine derartige Wucherung der gängigen Meinung nach verursacht, wird ein Mechanismus verwendet, um die Blockdateien in Unterverzeichnisse auszubreiten. Dieser Mechanismus wird als Knotenbegrenzungspfade (Hode Limiting Paths) bezeichnet, da er Verzeichnispfade erstellt bzw. erzeugt, welche die Anzahl der Knoten in einem einzelnen Verzeichnis auf die maximale Anzahl von Unterknoten begrenzt, die von dem zugrunde liegenden Dateisystem unterstützt wird. In einer regulären bzw. normalen UNIX-Umgebung beträgt die maximale Anzahl von Unterknoten in einem Verzeichnis zum Beispiel etwa 1.000.
- Als Beispiel dient eine große Datei. Jede Datei kann zum Beispiel mehrere Segmente/Spuren aufweisen, und jedes Segment kann Tausende von Blöcken aufweisen. Die Blöcke einer Datei können nicht in dem gleichen zugrunde liegenden Verzeichnis gespeichert werden, wenn dieses eine Begrenzung in Bezug auf die Anzahl der Knoten pro Verzeichnis aufweist. Ferner kann ein Inhalteeigentümer Tausende von Dateien aufweisen. Es wird bevorzugt, dass das System nicht alle Blockdateien des Inhalteeigentümers in einem einzigen zugrunde liegenden Verzeichnis speichert. Knotenbegrenzungspfade lösen diese und ähnliche Datei- und Verzeichniswucherungsprobleme auf eine gemeinsame bzw. übliche Art und Weise.
- Eine Dateisystemobjekt-ID in einem SCDN ist eine eindeutige 64 Bit ganze Zahl. Für ein Dateiobjekt wird die ID gebildet aus einer 32 Bit Ursprungsknoten-ID und einer 32 Bit Datei-ID. Eine derartige 64-Bit-Zahl weist, wenn sie als ein String bzw. eine Folge dargestellt wird, eine maximale Länge von 20 Stellen auf. Wie dies bereits vorstehend im Text beschrieben worden ist, wird eine Blockdatei unter Verwendung der Dateiobjekt-ID an Stelle des tatsächlichen Dateinamens gespeichert. Ein Beispiel ist eine Datei, deren ID "00000000001234567890" lautet, die drei Segmente aufweist und deren Blockgröße 256 K Bytes entspricht. Die Blockdatei mit der Bezeichnung "00000000001234567890.1.0001.block" bedeutet, dass die Blockdatei den ersten 256 K Byte Datenblock der Datei aufweist, dessen ID an dem Segment 1 gleich "00000000001234567890" lautet. Da es sich dabei um Segmentnummer 1 handelt, bedeutet dies ferner, dass die Blockdatei die ersten 256 K Bytes der ursprünglichen Datei enthält.
- Eine Möglichkeit für die Erzeugung eines Knotenbegrenzungspfads für dieses Dateiobjekt ist es, dessen Wert als eine Folge zu verwenden und danach die Folge in eine Verzeichnishistorie aufzuteilen, wobei jedes Unterverzeichnis die nächsten drei Stellen verwendet. Zum Beispiel: Knotebegrenzungspfad = "000/000/000/012/345/678/90/1/0/". In diesem Fall wird die Blockdatei "00000000001234567890.1.0001.block" in dem Verzeichnis "000/000/000/012/345/678/90/1/0//" in dem Blockspeicherpfad gespeichert.
- Unabhängig davon, welche wahlfreien IDs es in des System schaffen, es sollten sich nicht mehr als 1.000 Knoten in einem Verzeichnis befinden (die Unterverzeichnisnamen reichen von "000" bis "999"), und dies sicherzustellen umfasst keinerlei Plattenanalyse. Der Knotenbegrenzungspfad wird algorithmisch gebildet.
- Eine weitere Möglichkeit, um einen Knotenbegrenzungspfad zu erzeugen, ist das Nutzen der Tatsache, dass die Dateiobjekt-ID keine vollständig wahlfreie Zahl darstellt – es ist lediglich eine eindeutige bzw. einzigartige Zahl für jede Datei, die zum Zeitpunkt der Erstellung erzeugt wird. Sie wird wie folgt erzeugt:
Eindeutige Datei-ID = (ID des Ursprungsknotens) + (eine Folgenummer aus der Datenbank) - Die Folgenummer bzw. Sequenznummer ist eine Zahl, die von 1 beginnt und die von der Datenbank mit jeder Zahl erhöht bzw. heraufgesetzt wird. Die wertniedrigsten Stellen der eindeutigen Datei-ID werden für eine Reigenmodellauswahl unter den Verzeichnissen verwendet.
- Zuerst wird der Knotenbegrenzungspfad als "/dir1/dir2/Dateiobjekt-ID/" erstellt, wobei dir1 = "Eindeutige Datei-ID & 1000" und dir2 = "(Eindeutige Datei-ID/1000)% 1000". Das heißt, dir1 stellt die letzten drei Stellen der eindeutigen Datei-ID dar, und dir2 stellt die drei Stellen vor den letzten drei Stellen der eindeutigen Datei-ID dar.
- Ein Knotenbegrenzungspfad für eine ID "id" wird als {Knotenbegrenzungspfad-(ID)} bezeichnet. Zurück zu dem Beispiel aus der Abbildung aus
12B , in dem es zwei Speichervorrichtungen oder Blockspeicherpfade gibt, nämlich "BlockRoot1/" und "/BlockRoot2", und wobei die SCDN-ID gleich 0 ist. Die Datei, deren ID "00000000001234567890" lautet, wird in dem Speicher gespeichert, wobei das Beispiel die ersten sechs Datenblöcke des ersten Segments zeigt. Die Blockindexanordnungszellen der ersten sechs Blöcke des ersten Segments zeigen, dass der erste Block in dem Blockspeicherpfad 1 ("BlockRoot1/") gespeichert wird, und wobei der zweite Block in dem Blockspeicherpfad 2 ("BlockRoot2/") gespeichert wird, etc. - Die Blockindexierung ermöglicht es nicht nur, dass Datenblöcke einer Datei in mehreren Speichervorrichtungen gespeichert werden, um die E/A-Bandbreite zu erhöhen, sie ermöglicht es auch, dass Datenblöcke parallel importiert oder exportiert werden, anstatt in einer zusammenhängenden Folge bzw. Sequenz. Die Chunking- bzw. Zerteilungsverfahren und die Metadaten ermöglichen es gemeinsam, dass im Inneren des SCDN eine Datei dynamisch wie ein Fluid und nicht wie ein starrer Körper behandelt wird. Das Blockindexierungsverfahren verhindert es, dass verschiedene DS-Threads den gleichen Datenblock gleichzeitig importieren; die Methode stellt ferner einen schnellen Datenzugriff auf das VFCS
470 während dem Prozess des Wiederzusammensetzens bereit. Durch das Entfernen der herkömmlichen Anforderung zum Speichern einer ganzen Datei in einer einzigen Speichervorrichtung, können jedem Knoten des SCDN zu jedem Zeitpunkt neue Speichervorrichtungen hinzugefügt werden, um Dateien zu verschieben. Da das SCDN als ein globales Dateisystem eines Wide Area Netzwerks fungieren kann, kann es gewaltige Datenmengen aufweisen, wobei die Speicherkapazität in einem VFCS470 Server unter Umständen nicht ausreicht, um die vollständige Darstellung des Dateisystems zu cachen. Die Metadateisystemstruktur wird somit eingeführt, um die Objektmetadaten und Datenblöcke in eine globale Dateisystemverzeichnisstruktur abzubilden, wobei es dies dem VFCS Vnode ermöglicht, nur eine teilweise Darstellung zu erzeugen, während sich auf die Metadateisystemstruktur verlassen wird hinsichtlich des fehlenden Abschnitts bzw. Teils der Darstellung. Wenn dies erforderlich ist, kann der fehlende Teil der Darstellung zeitnah in den VFCS Vnode verschoben werden. - 1. Zugriff auf ein Dateisystemobjekt
- Sobald die Metadateisystemstruktur und die Objektmetadatendateien verfügbar sind, kann ein VFCS
470 diese Informationen verwenden, um eine globale Dateisystemdarstellung zu erzeugen und danach die Dateisystemanforderung für Datenträger-, Verzeichnis- und Dateiinformationen zu bedienen. Da alle Datenträger- und Verzeichnisinformationen leicht sind und in den Datenträger- und Verzeichnismetadatendateien gespeichert werden, ist das Bereitstellen der Datenträger- und Verzeichnisinformationen geradlinig. Dateiobjekte werden allerdings nicht nur in Blockdateien unterteilt, es ist ferner nicht erforderlich, dass sich alle Blockdateien für ein Dateiobjekt in dem lokalen Speicher befinden. In dem folgenden Abschnitt wird ein Ausführungsbeispiel der vorliegenden Erfindung eines Verfahrens zur Bereitstellung bzw. Serving eines Dateiobjekts und zum Importieren nicht residenter Abschnitte der Datei beschrieben. - a. Rekonstruktion einer Datei aus Blockdateien
- Die Abbildung aus
14A zeigt ein Diagramm eines Prozesses1400 der Rekonstruktion einer Datei aus mehreren Blockdateien1401 durch das VFCS470 . Die Blockdateien1400 werden in einen Prozess des Zusammensetzens1410 eingegeben. Der Umkehrprozess des Blockierens wird als "Zusammensetzen" (Assembling) bezeichnet, wie dies bereits vorstehend im Text beschrieben worden ist. Das Virtual File Control System (VFCS470 ) verwendet den Prozess des Zusammensetzens1410 , um mehrere Blockdateien in lineare Segment-/Spurdateien umzuwandeln. Der Prozess des Zusammensetzens1410 erzeugt nur eine lineare Segment-/Spurdatei (z. B. die lineare Datei1450 ), wenn die ursprüngliche Datei linear ist. Wenn die ursprüngliche Datei jedoch nicht linear ist, erzeugt der Prozess des Zusammensetzens1410 mehrere lineare Segment-/Spurdateien1420 . Eine lineare Segment-/Spurdatei wird durch die lineare Kombination der entsprechenden Blockdateien erzeugt. Zum Beispiel wird die Videospurdatei aus der Abbildung aus10A neu erzeugt durch lineare Kombination (d. h. Summieren) der Blockdateien V1, V2, V3 und V4. Lineare Spurdateien1420 können ferner in dem Prozess des Multiplexierens1430 kombiniert werden, um die nicht lineare ursprüngliche Datei1440 zu erzeugen. Der Multiplexing-Prozess setzt die Spurdateien einfach neu zusammen, so dass die ursprüngliche nicht lineare Datei erzeugt wird. Dateien werden direkt "on the fly" wieder zusammengesetzt als Reaktion auf eine Anforderung eines Benutzers für den Zugriff auf die Datei. Es wird keine zusätzliche Kopie der Datei erzeugt. - Die Abbildung aus
14B veranschaulicht ein Ausführungsbeispiel der vorliegenden Erfindung in der Situation, wenn Dateiobjekte regelmäßig aufgeteilt werden (d. h. die Blockgröße aller Blöcke mit Ausnahme des letzten Blocks ist identisch), und das VFCS470 bedient wahlfreie Dateisystemanforderungen. Die Abbildung aus14B zeigt ein Flussdiagramm eines Algorithmus1460 zur Lokalisierung von Daten in dem Prozess des Wiederzusammensetzens einer Datei in Echtzeit (Schritte1462 –1466 ). So kann zum Beispiel eine Dateisystemanforderung verarbeitet werden, bei der es sich um eine Leseanforderung handelt. In dem Schritt1462 kann diese Anforderung wie folgt lauten: Anzahl X Bytes aus Y-Versatz von Datei Z lesen (wobei Z eine Dateikennung ist, während Y den Versatz bezeichnet und X für die Anzahl der Bytes angibt, die beginnend bei dem Versatz gelesen werden sollen. Das VFCS470 empfängt die Dateisystemanforderung (Schritt1464 ). Da das VFCS470 die eindeutige Datei-ID als Kennung verwendet, ist die Datei-ID bekannt. Das VFCS470 kann das erste Byte der Daten in einem Block B mit diesem Ansatz1164 lokalisieren:
Setzen eindeutige Datei-ID = U = Dateikennung Z
Setzen Blockanzahl der Datei = B = ((Y% Blockgröße) + 1)
Setzen Versatz in Block B = F = (Y/Blockgröße)
Setzen Segment, das Block B = M = Funktion aufweist, die B auf das Segment Func(Segmentanordnung von U, B) abbilden
Setzen Blockanzahl von Block B innerhalb von Segment M = N
Setzen Blockindexanordnungszellen für B = C
Setzen Wert von C = Val(C), der den Blockspeicherpfadindex darstellt. - Der Pfadnahme der Blockdatei, der den Anfang der angeforderten Daten aufweist, lautet dabei:
/Blockpfad(Val(C)/SCDN ID/Knotenbegrenzungspfad(U.M.N).block - Bei diesem Pfadnamen öffnet das VFCS
470 die Blockdatei, sucht eine Anzahl von F Bytes und liest die Anzahl X von Bytes. Wenn der Block B nicht die ganze Anzahl von Bytes aufweist, kann das VFCS470 mit dem nächsten Block für die verbliebenen Daten fortfachen. - b. Dateizugriff
- Ein Endbenutzer kann einen Zugriff auf ein Dateiverzeichnis über eine VFCS
470 Dateisystemschnittstelle oder über eine Anwendungsschnittstelle, wie zum Beispiel einen Web-Browser, an dm Client-System des Endbenutzers anfordern. Wenn ein Endbenutzer durch einen Anwendungsserver bedient wird, wird die Anforderung weitergeleitet an einen entsprechenden Anwendungsserver (d. h. einen Server, der sich näher an dem Endbenutzer befindet, und mit einer Bandbreite zur Bearbeitung der Anforderung), der die Datei an den Endbenutzer bereitstellt, wie zum Beispiel ein Streaming Server für die Zustellung großer Videodateien, oder ein FTP-Server, der in der Lage ist das VFCS470 als dessen entferntes Dateisystem anzunehmen, um Zugriff auf den Inhalt in dem SCDN zu haben. Der Anwendungsserver befindet sich in dem Netzwerk und kann somit mit dem am nächsten gelegenen Knoten des SCDN verbunden werden. Die Speicherdatenträger des SCDN-Knotens (d. h. Cache-Speicher) können einige, keine oder alle der Blöcke der angeforderten Datei des Endbenutzers aufweisen. Wenn entweder zusätzlicher Inhalt oder der ganze Inhalt der Datei benötigt wird, kommuniziert das VFCS470 (über FDP "prepare") mit einem lokalen DS, so dass eine FDP-Anforderung "search" an alle Nachbarn des DS ausgegeben wird, um die benötigten (nicht residenten) Abschnitte der Datei zu lokalisieren. Der Befehl "search" wird mittels Multicasting-Methode verteilt. - Zum Beispiel wird davon ausgegangen, dass die angeforderte Datei eine Länge von 10 GB aufweist, was insgesamt 20 Blöcken eines Speichers von 500 MB entspricht (d. h., wenn jeder Block gleich 500 MB ist). Ferner wird angenommen, dass sich nur sechs derartige Blöcke von 500 MB lokal in dem SCDN-Knoten befinden. Auch wenn nur 3 GB der angeforderten Datei tatsächlich in dem Speichersystem des SCDN-Knotens gespeichert werden, "scheint es" für den Endbenutzer oder den Anwendungsserver über das VFCS
470 als würde sich die ganze Datei lokal befinden. Auf Anforderung durch das VFCS470 werden die nicht residenten Abschnitte der Datei von verschiedenen Verteilungsservern in dem SCDN gleichzeitig nicht zusammenhängend gezogen und lokal gespeichert als Blöcke in dem gemeinsam genutzten Speicher (z. B. lokale Speichervorrichtungen). Das VFCS470 setzt die gespeicherten Blockdateien in Echtzeit zusammen und multiplexiert diese, um die Anforderungen von dem Anwendungsserver oder Endbenutzern zu erfüllen. - Zum Lokalisieren der nicht residenten Abschnitte der Datei gibt ein DS in einem Cluster von DS eine Suchanforderung aus, welche den SCDN-Baum beginnend von den jeweiligen Nachbarknoten durchläuft. Die Suchanforderung kann die Verteilungskriterien der angeforderten Datei und einen Zähler für die Zeit bis zur Aktivierung aufweisen (Time-to-Live-Zähler). Ein Time-to-Live-Zähler kann zum Beispiel spezifizieren, dass die Suchanforderung nur zwei Hubs des SCDN von dem anfordernden Knoten durchlaufen bzw. passieren muss. Wenn ein Nachbarknoten die Suchanforderung empfängt und evaluiert, kann der Knoten den Zähler zum Beispiel herabsetzen. Eine Suchanforderung endet, sie auf einen Blattknoten, einen "abschließenden" Knoten trifft oder wenn der Time-to-Live-Zähler auf Null steht (d. h. wenn die Suchanforderung einen Zähler aufweist). Wenn die fehlenden Daten nicht lokalisiert werden und der Time-to-Live-Zähler Null erreicht, d. h. wenn er in der Suchanforderung enthalten ist, durchläuft die Suchanforderung weiter die SCDN-Knoten in dem Umkehrpfad des anfänglichen Verteilungsprozesses. Ein Knoten antwortet direkt auf den anfordernden DS, wenn der angeforderte Teil der Datei in diesem Knoten existiert. Knoten, die keinen Teil der angeforderten Datei aufweisen, antworten nicht. Eine Antwort umfasst auch den Leistungsstatus des Knotens, der die Antwort sendet, und einen Indikator der Abschnitte der verfügbaren Datei. Wenn das anfordernde DS Cluster Antwortpakete von beliebigen Knoten in dem SCDN empfängt, was anzeigt, dass sie einen Teil oder angeforderten Datei oder die ganze angeforderte Datei aufweisen, laden die DS in dem Cluster den fehlenden Inhalt von den Knoten herunter, die am wenigstens Verkehr bzw. Aufkommen aufweisen, und wobei der Inhalt in den gemeinsam genutzten Speichervorrichtungen des Verteilungsservers lokal gespeichert wird. Während das VFCS
470 somit die Daten an den Endbenutzer bereitstellt, erhalten die Verteilungsserver (DS) den Rest der Datei von anderen Knoten, und es gibt keine Unterbrechung der Kommunikation zwischen den Endbenutzern und dem VFCS470 . - Wie dies bereits vorstehend im Text beschrieben worden ist, wird eine Datei in Abschnitte (z. B. Blockdateien) unterteilt bzw. aufgeteilt und über das SCDN verteilt. Wenn somit durch die Suchanforderung Knoten gefunden werden, welche Abschnitte der Datei aufweisen, kann ein Cluster von DS Abschnitte dieser Datei parallel von mehreren Knoten herunterladen, im Besonderen von den Knoten, die gegenwärtig am wenigsten verstopft sind bzw. am wenigsten Verkehr aufweisen. Das einleitende DS Cluster entscheidet auf der Basis der Leistungsinformationen in den Antwortpaketen, wo der fehlende Inhalt heruntergeladen werden soll (d. h. "pull"), um die Latenz- und Bandbreitenanforderungen an anderen Verteilungsserver-Knoten zu minimieren. Wenn mehre DS-Threads oder Prozesse verschiedene Abschnitte einer Datei gleichzeitig herunterladen, werden die DS-Threads und Prozesse mit einem Sequenz- oder Folgeserver kombiniert, so dass nicht mehr als ein Thread oder Prozess den gleichen Datenblock herunterladen.
- Nachdem die Datenblöcke von den entsprechenden Verteilungsservern gezogen worden sind, setzt ein VFCS
470 oder ein Cluster von VFCS470 die angeforderten Daten für eine Datei aus den Datenblöcken in Echtzeit für den Endbenutzer zusammen. Das VFCS470 ermöglicht es den Anwendungsservern oder Endbenutzern das verteilte Dateisystem anzuzeigen, das in dem ganzen SCDN existiert, und zwar als ein einziges großes virtuelles Dateisystem. - c. Abrufen von nicht zusammenhängenden Dateisegmenten
- Aus einer Perspektive entspricht jeder gespeicherte Block in dem Systemspeicher eines SCDN-Knotens einem zusammenhängenden Abschnitt einer Datei (z. B. ein zusammenhängendes Intervall eines Films, wenn es sich um eine Videodatei handelt). Da die Datei in Blöcke unterteilt ist, können all diese Blöcke unabhängig voneinander gespeichert oder neu angeordnet werden. Als Beispiel dient eine Videodatei, bei welcher der Abschnitt einen Film umfasst. Wenn eine Betrachtung bzw. Anzeige der einzelnen Abschnitte vom ersten Abschnitt bis zum letzten Abschnitt nacheinander erfolgt, so würde dies dazu führen, dass der ganze Film angezeigt bzw. angesehen wird. Da sich die gleichen Inhaltsabschnitte (d. h. Abschnitt) an mehreren unterschiedlichen Knoten in dem SCDN befinden, kann der nicht zusammenhängende Abschnitt einer Datei (z. B. nicht zusammenhängende Abschnitte eines Films) unabhängig voneinander und parallel abgerufen werden. Dies weist mehrere wichtige Nebenwirkungen auf. Da ein DS zum Beispiel benötigte Inhaltsabschnitte von mehreren unterschiedlichen Verteilungsservern erhalten kann, erhöhen sich die Zuverlässigkeit und die Verfügbarkeit des SCDN erheblich. Darüber hinaus kann der Endbenutzer effizient auf den Abschnitt einer Datei "abweichend von der Reihenfolge" zugreifen, wobei ein Film zum Beispiel schnell vorgespielt bzw. vorgespult werden kann, ohne tatsächlich alle Abschnitte des Films herunterladen zu müssen, die nicht wirklich angezeigt bzw. angesehen werden. Hiermit wird festgestellt, dass ein "Pruning" (Freimachen des Speichers, der von bestimmten Blöcken verwendet wird für eine Verwendung durch andere Blöcke) auf "Blockebene" (im Vergleich zu der ganzen "Dateiebene") auf der Basis bestimmter Richtlinien des Inhalteeigentümers vorgenommen werden kann, wobei das Pruning auf Nutzungsmustern basieren kann. Die Nutzung des Inhalts kann auch auf Blockebene bewertet werden.
- 3. VFCS
- a. Implementierungsoptionen für VFCS
- Ein VFCS
470 kann auf eine Reihe unterschiedlicher Art und Weisen implementiert werden. Die Abbildung aus15A zeigt eine erste optionale Implementierung eines Internet Protocol (IP) Front-End und eines Network Attached Storage (NAS) Back-End. Der bzw. die Anwendungsserver1502 sind über einen IP-Link1504 mit einer Station1500A gekoppelt. - Die Station
1500A weist einen Virtual File Control System Cluster1510 , einen Verteilungsserver-Cluster1520 und eine bzw. mehrere Steuereinheit(en)1530 auf. Der Virtual File Control System Cluster1510 weist ein oder mehrere Virtual File Control Systeme auf, die auf einem oder mehreren Servern ausgeführt werden. - Der VFCS Cluster
1510 (und die darin angeordneten Server) kommuniziert mit einer bzw. mehreren Front-End-Anwendung(en) an dem bzw. den Anwendungsserver(n)1502 unter Verwendung von TCP/IP oder UDP/IP Kommunikation über den Link bzw. Übermittlungsabschnitt1504 und mit einer oder mehreren Network Attached Speichervorrichtungen bzw. ans Netzwerk angeschlossenen Speichervorrichtungen (NAS1540 ) an einem Back-End über den Übermittlungsabschnitt1544 . Der VFCS Cluster1510 (und jeder Server darin) kommuniziert ebenfalls mit dem Verteilungsserver-Cluster1520 unter Verwendung von TCP/IP oder UDP/IP Kommunikation über den Übermittlungsabschnitt bzw. den Link1516 und mit der bzw. den Steuereinheit(en)1503 über den Übermittlungsabschnitt1514 . Der Verteilungsserver-Cluster1520 und die Steuereinheit(en)1503 kommunizieren miteinander unter Verwendung von TCP/IP oder UDP/IP Kommunikation über den Übermittlungsabschnitt bzw. Link1524 . Der Verteilungsserver-Cluster1520 und die Steuereinheit(en)1503 kommunizieren ferner direkt mit NAS1540 unter Verwendung von TCP/IP oder UDP/IP Kommunikation über entsprechende Übermittlungsabschnitte1526 ,1529 . - Die Abbildung aus
15B zeigt eine zweite optionale Implementierung einer Station1500B mit einem IP Front-End und einem Storage Area Network (SAN) Back-End. Der VFCS Server kommuniziert mit der Front-End-Anwendung unter Verwendung von TCP/IP oder UDP/IP Kommunikation sowie mit einem Storage Area Network an dem Back-End. Fibre Channel-Zwischenverbindungen (1552 ,1554 ,1556 ,1558 , die durch graue Schattierungen dargestellt sind) werden eingesetzt, um den Virtual File Control System Cluster1510 , den Verteilungsserver-Cluster1520 , die Steuereinheit(en)1530 und ein Storage Area Network (SAN) oder ein NAS1545 zu koppeln. - Die Abbildung aus
15C zeigt eine dritte optionale Implementierung einer Station1500C mit einem integrierten Front-End, SAN oder NAS Back-End. In diesem Fall ist die VFCS Funktionalität1570 (z. B. ein VFCS-Stapel) direkt in den bzw. die Anwendungsserver1502 integriert. An dem Back-End kommuniziert ein VFCS mit einem SAN oder einem NAS über einen Hochgeschwindigkeits-Fibre-Channel-Übermittlungsabschnitt1544 . - Die folgende Beschreibung konzentriert sich auf die erste optionale Implementierung der Station
1500A , wobei der Fachmann auf dem Gebiet jedoch erkennt, dass die Konzepte auch auf andere Implementierungen anwendbar sind. - Einer der Schlüsselparameter in einem VFCS
470 ist die globale eindeutige Dateisystemobjekt-ID. Jedes Dateisystemobjekt, unabhängig davon, von welchem Knoten es erzeugt wird, weist einen globalen eindeutigen Bezeichner auf. Diese eindeutige ID ermöglicht es nicht nur, dass die Dateisystemobjekte an einer anderen Stelle in dem Netzwerk verfolgt werden, sie wird auch durch das VFCS570 als eine Dateisystemobjektkennung exportiert. Durch das Exportieren der gleichen Kennung für das gleiche Dateisystemobjekt von einem beliebigen VFCS470 kann eine Gruppe von VFCS470 in Clustern zusammengefasst werden, um einen Endbenutzer-Client transparent zu unterstützen. Siehe dazu die Abbildung aus6 . Wenn ein VFCS einen Fehler aufweist, kann das andere VFCS die Endbenutzeranforderung erfüllen, da sie die Dateisystemobjektkennung erkennt, so wie dies jedes VFCS tut. Somit kann ein VFCS in Clustern zusammengefasst werden, um einen Lastausgleich vorzusehen und um transparent eine aktive Ausfallsicherung bereitzustellen. Wenn ein VFCS Cluster NFS UDP-Unterstützung bereitstellt, ist er in der Lage eine Ausfallsicherung bzw. Failover während der Sitzung (In-Session) vorzunehmen, wobei im Falle einer CIFS- oder NFS TCP-Unterstützung ein VFCS Cluster eine Ausfallsicherung bzw. Failover je Sitzung bereitstellen kann. Die Abbildung aus6 zeigt ein Ausführungsbeispiel, bei dem die Lastverteilung bzw. der Lastausgleich an den VFCS Servern eingesetzt wird. Das VFCS ist so gestaltet, dass Anforderungen von einem Anwendungsserver an jeden VFCS Server in einem Cluster geleitet werden können, wodurch die Last auf die VFCS Server verteilt wird. Zu diesem Zweck ist die Dateisystemobjektkennung, welche das VFCS an die Anwendung zurückgibt, speziell so gestaltet, dass die Anwendung danach die gleiche Dateisystemobjektkennung für jeden VFCS Server verwenden kann, und wobei der VFCS-Server diese decodieren kann. Das Design bzw. der Aufbau der VFCS Dateisystemobjektkennung berücksichtigt die Tatsache, dass das VFCS zwei entfernte File Sharing-Protokolle in einem Cluster unterstützen muss, nämlich NFS und CIFS. Um die oben genannten Merkmale zu erfüllen, erfüllt die eindeutige Dateisystemobjektkennung gemäß einem weiteren Merkmal der Erfindung die folgenden beiden Kriterien: - (a) Die Dateisystemobjektkennung ist plattformunabhängig, so dass keine Anpassungen abhängig von dem Betriebssystem und dem Dateisystem vorgenommen werden müssen.
- (b) Die Dateisystemobjektkennung kann durch jeden Server in dem VFCS Cluster decodiert werden, und wenn sie decodiert wird, bezeichnet sie die gleiche Datei in dem Cluster.
- Die VFCS Dateisystemobjektkennung weist drei Informationsstücke auf: einen Dateisystembezeichner, eine Ursprungsknoten-ID und eine Dateisystemobjekt-ID (Datenträger, Verzeichnis oder Datei). Der Dateisystembezeichner wird zu dem Zeitpunkt erstellt, wenn das VFCS in den Kernel geladen wird. Die Ursprungsknoten-ID und die Dateisystemobjekt-ID werden unter Verwendung von Standarddateisystem-E/A-Schnittstellen in einer Kernel-Datenstruktur (inode) gespeichert. Eine Kennung wird von einem VFCS Server bei der Kommunikation mit Anwendungen verwendet, um eine Datei oder ein Verzeichnis in dem globalen Dateisystem des SCDN eindeutig zu identifizieren. Ein VFCS Server weiß, wie eine Dateisystemobjektkennung decodiert werden muss, die abhängig ist von dem Dateisystem. Bei einem herkömmlichen UNIX-Dateisystem weist eine Dateikennung eine Dateisystem-ID, eine inode-Nummer und eine inode-Erzeugungsnummer auf. Bei einem herkömmlichen nicht-UNIX-Dateisystem kann es sich bei einer Dateikennung um einen Zeiger auf eine Datenstruktur in dem Speicher des Dateisystems handeln. Da das herkömmliche Dateisystem keine hart codierte ID als eine Dateisystemobjektkennung verwendet, weisen zwei gespiegelte herkömmliche Dateisysteme auch identische Dateien und Verzeichnisse auf, welche nicht die gleiche Kennungsnummer für das gleiche Objekt aufweisen. Somit kann für ein herkömmliches Dateisystem keine Lastverteilung vorgenommen werden.
- b. VFCS Initialisierungsprozedur
- Die Abbildung aus
16 zeigt ein Flussdiagramm einer Routine1600 , wobei die Operationen eines VFCS Servers (z. B. VFCS470 ) dargestellt werden, die während dem Prozess der VFCS Initialisierung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung (Schritte1601 –1607 ) ausgeführt werden. In dieser Abbildung werden NAS- Vorrichtungen (Network Attached Storage-Vorrichtungen) für das gemeinsam genutzte Speichersystem verwendet. Die Metadateisystemstruktur und die Blockspeicherpfade (einschließlich Datenträgermetadatendateien) werden in der Operation1601 eingerichtet, um Zugriff auf deren Daten bereitzustellen. Für Zwecke der vorliegenden Veranschaulichung wird angenommen, dass die Metadateisystemstruktur an /mp/metadata/ eingerichtet wird. Für einen Zugriff auf die ganze Anordnung der Blöcke, die in dem Speichersystem zur Verfügung stehen, werden alle Speichervorrichtungen in der Operation1602 eingerichtet (mounted). Im Sinne der vorliegenden Erläuterung lauten die Einrichtungs- bzw. Mount-Punkte /mp/blockfiles bzw. /mp/blockdateien, wie zum Beispiel /mp/blockfiles/v1, /mp/blockfiles/v2, etc. - Ein VFCS Server initialisiert den Datenträgernamens-Cache, indem die Datenträgermetadatendatei in den Cache geladen wird (z. B. Operation
1603 ). Während der Operation1604 beginnt der VFCS Server mit der Gestaltung des im Speicher vorgesehenen Dateisystems, das das Laden der ganzen Metadateisystemstruktur umfasst, und wobei der Wurzel der Struktur eine konstante Kennung zugewiesen wird. Ein Ausführungsbeispiel der vorliegenden Erfindung kann einen Baum VNODE unter Unix als die Kernel-Schnittstelle zu dem im Speicher vorgesehenen Dateisystem verwenden (Baum von "inodes" in dem Speicher). Das im Speicher vorgesehene Dateisystem ist eine Baumstruktur von inode, welche das globale Dateisystem darstellt. Die Initialisierung weist umfasst somit die Erstellung eines teilweisen im Speicher vorgesehenen Dateisystems in Form einer inode-Struktur und eines Baums VFCS VNODE als Kernel-Schnittstelle zu dem inode-Baum. Das Front-End VFS VNODE weist eine Wurzel VFCS VNODE für das exportierte Wurzel- bzw. Stammverzeichnis auf. Die Initialisierung weist ferner die Zuordnung einer konstanten Kennung an das Wurzelverzeichnis auf. Zu Zwecken der vorliegenden Erläuterung lautet das exportierte Verzeichnis/export. Das VFCS fährt danach gemäß der Anzeige in der Operation1605 fort mit dem Aufbau des im Speicher vorgesehenen Dateisystems, indem Datenträger bzw. Volumen und Verzeichnisse sowie die Kernel-Schnittstelle erzeugt werden, d. h. die VFCS_VNODES von Datenträgern und VFCS_VNODES von Verzeichnissen. Zum Beispiel nehmen die Datenträger die Form/export/vol1, /export/vol2, etc. an. Es gibt einen VFCS_VNODE für jeden Datenträger und jedes Verzeichnis. Die zugeordneten Datenträger- und Verzeichnismetadatendateien werden geladen und die zugeordnete für das Objekt eindeutige ID wird der Objektkennung (Datenträger oder Verzeichnis) zugeordnet. Zum Beispiel wird angenommen, dass Studio X einen Datenträger darstellt, dessen eindeutige ID "123" lautet. Wenn eine Anwendung auf den Datenträger Studio X unter Verwendung dessen Namen zugreift, wird eine Kennung von 123 an die Anwendung zurückgegeben. - Während der Operation
1606 initialisiert das VFCS den Dateinamenscache (File Name Cache). Zum Beispiel erhält der VFCS Server abhängig von der Speicherverfügbarkeit eine vollständige oder teilweise Liste der Dateinamen und die eindeutige ID einiger der beliebtesten Dateien. Das VFCS erstellt die VNODEs oder die zugeordneten, im Speicher vorgesehenen inodes für diese Dateien nicht bevor auf diese zugegriffen wird. Dies ist ein Beispiel für ein "selektives und dynamisches Caching", d. h. die Caches, die für die Population ausgewählt werden, und wann diese populiert bzw. besetzt werden (zum Zeitpunkt der Initialisierung oder in Laufzeit) werden aus Leistungsgründen bestimmt. Nach der Initialisierung weist das im Speicher vorgesehene Dateisystem des VFCS einen Wurzelknoten und die Datenträgerknoten in den ersten beiden Schichten des Dateisystembaums auf. Die dritte und tiefere Ebene des Dateisystembaums weist Dateien und Verzeichnisse auf, und diese Objekte werden dynamisch belegt. Wenn eine Datei oder Verzeichnismetadaten sich nicht in dem Cache befinden, wenn ein Endbenutzer das Dateisystemobjekt anfordert, muss das VFCS die Metadaten aus dem Speicher lesen und einen inode für das im Speicher vorgesehene Dateisystem und den zugeordneten VNODE erzeugen. Nachdem ein inode und VNODE erstellt bzw. erzeugt worden sind, kann das VFCS die Blockindexanordnung prüfen und ein Anforderungspaket "prepare" an einen lokalen DS senden, um die nicht residenten Datenblöcke zu importieren. - Das VFCS fährt weiter mit dem Aufbau des im Speicher vorgesehenen Dateisystem-Cache fort während der Laufzeit, während der auf Dateien zugegriffen wird. Wenn ein Anwendungsserver auf eine bestimmte Datei zugreift, wie zum Beispiel /export/vol1/dir1/file_nameX, liest der VFCS Server, der die Anforderung bedient, den Dateinamen in dem Dateinamen-Cache aus, erzeugt einen VFCS_VNODE und den zugeordneten "inode" in dem im Speicher vorgesehenen Dateisystem für die entsprechende Datei und erhält die Liste der Blockdateien für die Datei. Gleichzeitig gibt der VFCS Server ein Anforderungspaket "prepare" über einen DSC Load Balancer bzw. eine Lastverteilungseinrichtung an einen DS aus. Nachdem der DS die angeforderten Dateiabschnitte heruntergeladen hat, speichert der DS die Abschnitte als Blöcke, aktualisiert die zugeordnete Blockindexanordnung der Datei, um die Ankunft der neuen Datenblöcke zu reflektieren, signalisiert VFCS oder VFCS ruft die Metadatendateien ab und erkennt, dass die Blöcke in dem Speichersystem vorhanden sind; der VFCS Server liest Datenblöcke, setzt diese zusammen und multiplexiert sie und sendet die Daten an den anfordernden Anwendungsserver. Jeder VFCS Server führt ein Read-Ahead-Caching oder eine direkte Paketweiterleitung (Spoofing) aus, um die Leistung bzw. die Performance zu verbessern.
- c. Prozedur für den Zugriff auf ein VFCS Dateisystemobjekt
- Die Abbildung aus
17A zeigt eine Routine1700 der Operationen des VFCS470 , die während Laufzeit ausgeführt werden (Schritte1702 –1719 ). Wenn ein Anwendungsserver oder ein Endbenutzer-Client den Zugriff auf ein Dateisystemobjekt anfordert, prüft das VFCS470 zuerst, ob sich der VFCS_VNODE und dessen zugeordneter inode für die Datei in dem im Speicher vorgesehenen Dateisystem des VFCS befinden (Operation1711 ). Anders ausgedrückt bestimmt in der Operation1711 der VFCS Server, ob ein VFCS-Knoten (z. B. ein Front-End-Vnode) für das Dateisystemobjekt existiert. Wenn dies der Fall ist, fährt der VFCS Server mit dem Schritt1715 fort, während er ansonsten mit dem Schritte1712 fort fährt. Für ein Dateiobjekt überprüft das VFCS in dem Schritt1712 dessen Dateinamens-Cache, um zu bestimmen, ob ein Eingang für die Datei existiert (d. h. existieren die verwandten Dateiobjektmetadaten in dem Cache?). Wenn keine zugeordneten Dateimetadaten existieren oder wenn es sich bei dem angeforderten Objekt um einen Datenträger oder ein Verzeichnis handelt, fährt der VFCS Server mit der Operation1713 fort und liest die Metadateisystemstruktur und die zugeordneten Metadatendateien. Gleichzeitig kann der VFCS Server einen Teil des Speichers frei machen, indem unbenutzte oder am wenigsten genutzte inodes (im Speicher vorgesehenes Dateisystem) und Front-End-Vnodes entfernt werden. Für ein Dateiobjekt speichert das VFCS die verwandten bzw. zugeordneten Dateisystemobjektmetadaten und speichert die Informationen in dem Dateinamens-Cache (File Name Cache) und fährt danach mit der Operation1714 fort. Wenn jedoch in dem Schritt1712 zugeordnete Dateimetadaten in dem Dateinamens-Cache existieren, so fährt der VFCS Server unverzüglich mit der Operation1714 fort, wobei der im Speicher vorgesehene inode des VFCS-Dateisystems und der Front-End VNODE für die Datei erstellt werden. Wenn es sich bei einem Objekt um eine Datei handelt, speichert das VFCS das Dateiobjekt in dem Dateinamens-Cache. Danach fährt das VFCS direkt mit der Operation1715 fort. - Während der Operation
1715 prüft der VFCS-Dateiserver, ob es sich bei dem angeforderten Objekt um einen Datenträger oder ein Verzeichnis handelt, und wenn dies der Fall ist, springt der Ablauf zu1717 . Wenn es sich bei dem angeforderten Objekt um eine Datei handelt, prüft der Server ferner, ob etwaige Blöcke für die angeforderte Datei in dem (vorübergehenden) Vorerfassungs-Block-Cache existieren. Wenn keine derartigen Blöcke vorhanden sind, fährt der VFCS Server mit der Operation17166 fort, wo er Blöcke aus dem Speichersystem der Station liest, die der angeforderten Datei zugeordnet sind, ein Anforderungspaket "prepare" an den DSC der Station sendet, um die fehlenden Blöcke wieder zu belegen, einen Read-Ahead-Vorgang ausführt und danach mit der Operation1717 fort fährt. Wenn hingegen einer oder mehrere Blöcke für die angeforderte Datei in dem Cache für vorerfasste Blöcke existieren, fährt der VFCS Server nach1715 direkt mit1717 fort. Wenn das VFCS einen Lesevorgang aus dem Speicher ausführt, wendet es einen Algorithmus an, der in Bezug auf den Schritt1466 aus der Abbildung aus14B beschrieben wird, um die Datenblöcke zu lokalisieren. - In der Operation
1717 erfasst der VFCS Server ferner die Datenträger- oder Verzeichnisinformationen, oder wenn es sich bei den angeforderten Daten um eine Datei handelt, setzt er die Datenblöcke wieder zusammen und multiplexiert diese, und in dem schritt1719 führt er ein Read-Ahead-Caching aus, um die Leistung zu verbessern. Ferner kann der VFCS Server eine direkte Paketweiterleitung oder ein Paket-Spoofing ausführen, um Daten direkt aus dem Back-End-Speicher ohne Pufferkopiervorgang zu der Front-End-Anwendung zu transportieren. - Die Anzahl der vorerfassten Blöcke, die ein VFCS im Cache speichert, ist abhängig von der lokalen Speicherverfügbarkeit in dem VFCS Server. Die dritte und tiefere Ebene von Verzeichnissen und die Datei des im Speicher vorgesehenen Dateisystems können einem Pruning unterzogen werden, und der Cache der vorerfassten Blöcke kann geleert werden, wenn der Speicherplatz knapp wird. Abhängig von der Speicherverfügbarkeit kann ein VFCS eine vollständige oder teilweise Gruppe von Dateisystemverzeichnissen im Cache speichern. Bei begrenztem Speicher werden nur die Dateimetadaten für die Dateien im Cache gespeichert, auf welche am häufigsten zugegriffen wird, und danach wird der Cache regelmäßig aktualisiert auf der Basis der letzten Nutzungsinformationen. Dabei handelt es sich um das "selektive und dynamische Caching" des globalen Dateisystems.
- Zum Beispiel zur Unterstützung einer Anzahl X von Datenträgern/Verzeichnissen, eine Anzahl Y von Dateien und eine Anzahl Z von gleichzeitigen Benutzern, jeweils mit einer Anzahl N von vorerfassten Blöcken für die bestmögliche Leistung, wird ein VFCS mit einer Speichergröße unter Verwendung der folgenden Gleichung konfiguriert:
Speichergröße in Mbyte =
VFCS OS-Speicheranforderung +
VFCS Laufzeit-Speicheranforderung +
X·(erforderlicher Speicher für jeden Datenträger-/Verzeichnis-Cache) +
Y·(erforderlicher Speicher für jeden Dateinamens-Cache) +
(1 + X + Y)·(Größe des VNODE-Baums) + Z·N·(Blockgröße). - Während der Behandlung der Anforderung kann das VFCS auch Dienstgüterichtlinien gemäß einer Gruppe von konfigurierten Parameter anwenden. Die Abbildung aus
17B zeigt eine Routine1720 für die Anwendung von Richtlinien zur Dienstgüte bzw. Servicequalität auf der Basis des Benutzer- und Objektsystemtyps gemäß einem Ausführungsbeispiel der vorliegenden Erfindung (Schritte1720 –1722 ). Zum Beispiel kann die Routine1720 in den vorstehend beschriebenen schritten1702 und1706 ausgeführt werden. - Die Routine
1720 veranschaulicht, dass während eine Anforderung empfangen und behandelt bzw. bearbeitet wird oder wenn nicht residente Datenblöcke von anderen Knoten importiert werden müssen, das VFCS konfigurierte Dienstgüterichtlinien abrufen kann (Schritt1720 ). Zum Beispiel kann eine Richtlinie angeben, dass einer bestimmten Benutzergruppe höhere Priorität in Bezug auf Netzwerkressourcen eingeräumt wird und somit eine höhere Dienstgüte. Die Parameter können Benutzer, Dateisystemobjekt, Dateityp, Region bzw. Gebiet, Inhalteeigentümer, etc. umfassen. Wenn eine Richtlinie identifiziert wird, kann ein VFCS Netzwerk- und Speicherressourcen von Speichervorrichtungen, Netzwerk-Switches, Routern und anderen Servern reservieren (Schritt1722 ). - d. VFCS-Module
- Die Abbildung aus
18 zeigt Module in einem VFCS1800 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. In dem SCDN-Netzwerk100 existieren Dateien in Form vieler kleiner Blockdateien mit konfigurierbarer Größe, die in mehreren Speichervorrichtungen gespeichert sind, und Verzeichnisse und Datenträger existieren in der Form einer Metadatendatei- und Metadateisystemstruktur in dem Speicher aller Knoten. Das VFCS1800 stellt einen speziellen Proxy-Dateiserver oder einen Dateisystem-Gateway dar, der für Endbenutzer-Clients oder Anwendungsserver eine Dateisystemschnittstelle sowohl in NFS- als auch in CIFS-Protokollen bereitstellt. Die folgende Beschreibung beschreibt hauptsächlich die NFS-Implementierungen. Zu den Aufgaben des VFCS1800 zählen: 1) die Darstellung eines globalen Dateisystems; 3) das Zusammensetzen von "Blockdateien" in Echtzeit nach Anforderung durch Anwendungsserver, so dass die Anwendungsserver glauben, dass die Datei-E/A- an einer einzelnen großen Datei ausgeführt wird; und 3) die Modifikation von Dateisystemobjekten zu ermöglichen, die Verteilung von Aktualisierungen zu verwalten und einzuleiten. Das VFCS1800 kann als ein Dateisystem-Gateway betrachtet werden, wobei ein NFS- und CIFS-Front-End an die Benutzer-Clients bereitgestellt wird und ein zugrunde liegendes Dateisystem an dem Back-End verwendet wird. Es kann als eine Dateisystemüberlagerung betrachtet werden. Bei dem zugrunde liegenden Dateisystem kann es sich um ein lokales Dateisystem handeln, das auf direkt angeschlossenen Speicher- oder Fibre Channel Storage Area-Netzwerk-Vorrichtungen aufgebaut wird, wobei es sich aber auch um einen Network Attached Storage (NAS) handeln kann. Für den Fall, dass es sich bei dem zugrunde liegenden Dateisystem um ein NAS handelt, wird ein NFS-Client an dem Back-End eingesetzt, um ein VFCS1800 zu unterstützen. In diesem Fall muss das VFCS1800 das zugrunde liegende System "einrichten" (mount). - Für den Beginn der Verwendung von NFS über VFCS muss eine Anwendungsservervorrichtung oder ein Endbenutzergerät mit NFS-Client an dem globalen Dateisystem eines VFCS über ein Netzwerk angebracht werden, um über das VFCS auf das Dateisystemobjekt zuzugreifen und dieses zu modifizieren. Für die Anbringung an dem VFCS-Dateisystem muss ein NFS-Client die Dateikennung für die Wurzel des exportierten Dateisystems erlangen, bevor auf etwaige Dateisystemobjekte in dem Dateisystem aus der Ferne zugegriffen werden kann. Das "mount" Protokoll bzw. Einrichtungsprotokoll ist für den NFS-Client so gestaltet, dass eine erste Dateikennung des exportierten Wurzel- bzw. Stammverzeichnisses für den Zugriff auf ein Netzwerkdateisystem erhalten wird. VFCS mountd
1820 implementiert die "Einrichtung" (mount), um eine Schnittstelle bereitzustellen, um es Endbenutzer-Clients oder Anwendungsservern zu ermöglichen, die Wurzelkennung zu erlangen, wobei dies ähnlich ist der Funktion "mount", welche durch reguläre bzw. normale NAS-Speichervorrichtungen bereitgestellt wird. VFCS mountd1820 implementiert das standardmäßige NFS-Protokoll "mount". Es unterstützt alle RPC-Programme, nämlich NULLPROC, RPCMTN_MOUNT, RPCMNT_UMOUNT, RPCMNT_DUMP und RPCMNT_UMNTALL. - Zum Zeitpunkt des Bootens bzw. Hochfahrens richtet VFCSd
1805 das zugrunde liegende Dateisystem am Back-End ein, wobei dies die Meetadateisystemstruktur und die Blockspeicherverzeichnisse aufweist. Zum Beispiel: /backend/metapath/, /backend/blockfiles/1/, /backend/blockfiles/2/, etc. Diese Verzeichnisse weisen den ganzen lokalen Inhaltsbestand auf. VFCSd1805 verwendet zuerst die Chunking-Schicht (FCL)1810 , um die Metadateisystemstruktur und die Datenträgermetadatendatei zu laden, um ein in einem Speicher vorgesehenes Dateisystem1840 als Baum von inodes zu erzeugen, um dessen globale Dateisystemdarstellung zu unterstützen. Dabei können auch das Verzeichnis und die Dateimetadaten geladen werden, abhängig von der Speicherverfügbarkeit. Für den Fall, dass der Speicher nicht ausreichend groß ist, wird nur die Datenträgerebene in den Speicher geladen, wobei die Verzeichnis- und Datei-inodes nach Bedarf erzeugt werden können. - Nachdem das im Speicher vorgesehene Dateisystem erstellt bzw. erzeugt worden ist, leitet VFCSd
1804 die Front-End-VFS-Kernel-Schnittstelle1830 ein und baut danach eine VFCS-VNODE-Baumstruktur. Der Baum VFCS_VNODE stellt die globale Dateisystemdarstellung dar und wird durch das im Speicher vorgesehene Dateisystem1840 unterstützt. Das im Speicher vorgesehene Dateisystem1840 speichert die Blockindexanordnung jeder Datei im Cache, um die Abbildung der ursprünglichen Datei zu ermöglichen, die über die VFCS-Schnittstelle den Blockdateien in dem Back-End-Dateisystem präsentiert wird. Es kann sein, dass der Speicher eines VFCS nicht ausreicht, um den ganzen VNODE des Dateisystems zu erzeugen, wobei VFCS_VNODE für ein Dateisystemobjekt nach Bedarf erstellt werden kann. VFCSd1805 lädt ferner teilweise Dateimetadaten in dessen Dateinamens-Cache für die beliebtesten Inhalte. Wenn VNODE erzeugt wird, wird jeder Einheit VNODE eine global eindeutige ID als ihre Kennung zugewiesen. Dem Wurzelknoten (exportiertes Verzeichnis) wird eine "hart codierte" Kennung zugewiesen. Die Kennungen für Datenträger, Verzeichnisse und Dateien werden mit ihrer eindeutigen ID as deren Metadaten zugeordnet. Da die Daten physisch bzw. physikalisch an dem Back-End-Dateisystem gespeichert werden, möglicherweise NAS-Vorrichtungen, wird das in dem Speicher vorgesehene Dateisystem1840 durch das Back-End-VFS-Kernel-Schnittstellenmodul1850 unterstützt, so dass ein reales Dateisystem unterstützt wird. Die Back-End-VFS-Kernel-Schnittstelle1850 stellt eine Standard-Kernel-Schnittstelle für das zugrunde liegende Dateisystem bereit, wobei es sich um jede Art von Dateisystem handeln kann, einschließlich des lokalen Dateisystems1885 oder um jedes Netzwerkdateisystem, wie zum Beispiel CIFS oder NFS. Auf entfernte CIFS- und NFS-Server kann entsprechend über den CIFS-Client1880 oder den NFS-Client1890 zugegriffen werden. Das Back-End-Dateisystem weist die tatsächlichen Daten auf -Blockdateien. - Nachdem VFCSd
1805 den Boot-Prozess abgeschlossen hat, erhält VFCS mountd1820 die globale "harte" Kennung für das exportierte Wurzelverzeichnis (einen Wurzelpfadnamen) des im Speicher vorgesehenen Dateisystems. Die Kennung dient zur Verwendung bei folgenden Dateisystem-E/A-Operationen, welche den Zugriff, die Erstellung und das Löschen von Verzeichnissen (getattr, readdir, etc.) und Dateien aufweisen. Die Hauptaufgabe von VFCS mountd1820 ist es, dessen Endbenutzer-Clients zu verwalten, indem die Endbenutzer-Clients authentifiziert und an die Wurzelkennung übergeben werden. - Wenn in Laufzeit ein VFCSd
1805 eine Dateisystemanforderung empfängt, wird die Anforderung zuerst authentifiziert, bevor sie über den Front-End-VFS1830 zu einem im Speicher bereitgestellten Dateisystem1840 weitergeleitet wird. Die Anforderung kann die Erzeugung eines neuen Dateisystemobjekts darstellt oder das Löschen oder Modifizieren eines bestehenden Dateisystemobjekts oder den Zugriff auf ein solches. Für die Erzeugung eines neuen Dateisystemobjekts wird ein inode dem im Speicher vorgesehenen Dateisystem1840 hinzugefügt, und ein zugeordneter Front-End VFCS_VNODE wird ebenfalls erzeugt, wobei die Metadaten und Datenblöcke in dem Speicher gespeichert und danach repliziert werden über einen DS an das SCDN. Für die Anforderungen, welche ein Dateisystemobjekt modifizieren, werden der entsprechende inode und der Front-End VNODE modifiziert, wobei die zugeordneten Metadaten, die Metadateisystemstruktur und die Datenblöcke in dem Speicher ebenfalls aktualisiert werden können, und wobei die neuen Informationen über einen DS repliziert werden. Zum Löschen von Dateisystemobjekten können der VNODE, der im Speicher vorgesehene inode, Metadaten und Datenblöcke entfernt werden, und der Befehl wird an den Rest des SCDN über einen DS repliziert. Für den Zugriff auf ein Dateisystemobjekt versucht der VFCSd1805 den zugeordneten VFCS_VNODE zu lokalisieren und gibt die entsprechenden Datenträger- oder Verzeichnisinformationen zurück, wobei er für ein Dateiobjekt die Datenblöcke von bzw. aus den Speichervorrichtungen zurückgibt. Wenn der VFCS_VNODE nicht lokalisiert werden kann, liest VFCSd1805 die Metadateisystemstruktur, um das Objekt zu validieren, und wenn das Objekt eine Datei darstellt, wird in dem Dateinamens-Cache gesucht. Ansonsten werden die Metadaten des zugeordneten Objekts in den Speicher geladen, und der zugeordnete inode und VFCS_VNODE werden erstellt und die entsprechenden Daten werden zurückgegeben. Wenn sich die Anforderung auf ein Dateiobjekt bezieht und wenn bestimmte Abschnitte der Datei nicht lokal angeordnet sind, gibt das Back-End VFS1830 einen FDP-Befehl "prepare" an den DS aus, um die Blöcke zu importieren. - Das VFCS Front-End VFS
1830 achtet stets auf Benachrichtigungen bzw. Mitteilungen von dem lokalen DS, wobei der DS VFCS1800 über die Ankunft aller neuen Dateisystemobjekte benachrichtigt. Wenn ein Endbenutzer auf eine Datei zugreift, die sich weder in dem im Speicher vorgesehenen Dateisystem noch in dem Namens-Cache befindet, so verifiziert das Front-End VFS1830 mit der Metadateisystemstruktur in dem Back-End-Speicher, bevor ein Fehler "Datei nicht gefunden" (File not found) zurückgegeben wird. - Zur Leistungsverbesserung beim Lesen des Dateiobjekts führt das VFCS
1800 entweder ein Read-Ahead-Caching oder eine direkte Paketweiterleitung aus (IP-Paket-Spoofing), um die Daten direkt aus dem Back-End-Speicher zu der Front-End-Anwendung zu transportieren, ohne den Vorgang des Pufferkopierens. Der IP Redirector, eine Komponente innerhalb des IP-Stapels1860 , führt die direkte Paketweiterleitung aus. Gemäß einem Aspekt der vorliegenden Erfindung implementiert das System eine direkte Paketweiterleitung (IP Spoofing) der gelesenen Daten. Das IP Paket-Spoofing oder die direkte Paketweiterleitung kann nur ausgeführt werden, wenn es sich bei den Back-End-Speichervorrichtungen um NAS handelt. Für den Fall, dass es sich bei dem Back-End-Speicher nicht um NAS handelt, wird die Leistung der Leseanforderung verbessert, indem die Kernel-Speicherpuffer mit Speichervorrichtungstreibern gemeinsam genutzt werden, wobei ein MBUF Director1870 für die Übermittlung von mbuf-Daten an die Endbenutzer verantwortlich ist. - Die Abbildung aus
19 zeigt ein Flussdiagramm1900 eines Ausführungsbeispiels des Leseanforderungsprozesses, welcher durch das VFCS1800 gemäß der vorliegenden Erfindung ausgeführt wird (Schritte1904 –1950 ). Dieses Flussdiagramm1900 bezieht sich ebenfalls auf die Operationen, die vorstehend in Bezug auf die Abbildung aus17A bereits beschrieben worden sind. In dem Schritt1904 empfängt VFCSd1805 eine NFS-Leseanforderung2600 von einem Anwendungsserver. In diesem Modul prüfen das Front-End VFS1830 und das im Speicher vorgesehene Dateisystem1840 den zugeordneten vnode und inode und deren Namens-Cache. Wenn der angeforderte Dateiknoten nicht im Cache gespeichert wird, erzeugen Module des Front-End VFS1830 und eines im Speicher vorgesehenes Dateisystems1840 den erforderlichen VNODE und inode in dem Speicher und geben einen FDP-Befehl "prepare" an den lokalen DS aus. - Über das im Speicher vorgesehene Dateisystemmodul
1840 werden eine oder mehrere Back-End-Leseanforderungen über den entsprechenden inode erzeugt, der Informationen für die Datenabbildung bereitstellt (Schritt1910 ). Eine Back-End-Leseoperation wird durch das Back-End VFS-Modul bearbeitet bzw. behandelt. Die Back-End Leseanforderung wird durch die Module des VFCS Back-End VFS1850 bearbeitet sowie des Kernel-Netzwerk-E/A-Redirectors1860 und1870 . Nachdem VFCSd1805 eine Leseanforderung von dem Anwendungsserver in dem Schritt1904 empfangen hat, wird die Leseanforderung schließlich in Blockdateien abgebildet, die sich an Back-End Speichervorrichtungen befinden können. Die durch das VFCS VFS-Modul1830 erzeugte Back-End Leseanforderung wird an das VFCS Back-End VFS-Modul1850 weitergeleitet (Schritt1910 ). In dem Back-End VFS-Modul1850 wird die Back-End-Anforderung in die Warteschlange eingestellt und verarbeitet (Schritt1920 ). Wenn die Back-End-Speichervorrichtungen NAS sind, wird ein NFS-Lesepaket auf der Basis der gegebenen Parameter gebildet und zu dem Back-End Dateiserver gesendet (Schritt1920 ). Wenn die Daten angekommen sind, weist im Falle eines NAS Back-End der VFCS1800 die Option auf, die direkte Paketrückführung auf der IP-Ebene auszuführen (Schritt1930 ). Wenn die direkte Paketweiterleitung auszuführen ist (Schritt1950 ), führt der VFCS IP Redirector1860 die Funktionen des IP Spoofing und Weiterleitens aus, indem die Ziel-IP und die Quellen-IP in dem Paket-Header so ersetzt bzw. ausgetauscht werden, dass der Anwendungsserver glaubt, dass die Antwort auf NFS-Lesen von VFCSd1805 stammt. Das VFCS Back-End VFS-Modul wird durch den IP Redirector benachrichtigt, wenn Daten weitergeleitet werden. Wenn es sich in diesem Fall bei dem Back-End-Dateisystem nicht um NAS handelt, oder wenn IP Spoofing ausgeschaltet bzw. deaktiviert ist, so sammelt das Back-End VFS-Modul1850 die Daten in Kernel-Speicherpuffern, wobei nur ein Puffer kopiert, bevor Speicher-Puffer zu dem Benutzer weitergeleitet werden (Schritt1940 ). Die Kernel-Speicherpuffer werden durch das MBUF Director-Modul1870 übermittelt. Das Back-End VFS-Modul1850 säubert ihre Warteschlange nach der Ausführung der Anforderungen (Schritt1950 ). - e. Lastverteilungseinrichtung des VFCS Clusters
- Die hierin beschriebene Cluster Lastverteilungseinrichtung (Cluster Load Balancer) kann in Verbindung mit dem Verteilungsserver-Cluster
410 aus der Abbildung aus4A , dem Anwendungsserver-Cluster420A aus4A und dem VFCS Cluster600 aus6 eingesetzt werden. Durch das Exportieren der gleichen Kennung für das gleiche Dateisystemobjekt von jedem VFCS kann eine Gruppe von VFCS470<1...L> in einem Cluster zusammengefasst werden, um einen Endbenutzer-Client transparent zu unterstützen. Siehe dazu die Abbildung aus6 . Wenn ein VFCS ausgefallen ist, kann das andere VFCS die Endbenutzeranforderung erfüllen, da es die Dateisystemobjektkennung wie jedes VFCS erkennt. Somit kann ein VFCS einem Clustering unterzogen werden, um eine Lastverteilung vorzunehmen und transparent eine aktive-aktive Ausfallsicherung (Failover) vorzusehen. Für den Fall, dass ein VFCS Cluster eine NFS UDP-Unterstützung bereitstellt, ist es in der Lage eine Ausfallsicherung während der Sitzung (In-Session Failover) ausführen, für den Fall einer CIFS oder NFS TCP Unterstützung kann ein VFCS Cluster eine Ausfallsicherung je Sitzung durchführen (Per Session Failover). - Eine Lastverteilungseinrichtung stellt drei Funktionen bereit: Serveranforderungsverteilung, Serverredundanz und Unterstützung der Ausfallsicherung (Failover) für eine Lastverteilungseinrichtung. Bei der ersten Funktion, der Serveranforderungsverteilung, handelt es sich um die Verteilung von ankommenden bzw. eingehenden Anforderungen unter einer Gruppe von Servern. Jeder Server empfängt nur einen bestimmten Anteil der Anforderungen insgesamt. Die Abbildung aus
20 zeigt eine Lastverteilungseinrichtung und zwei Server (Server-1 und Server-2), welche an ein Netzwerksegment angeschlossen sind. Die Pfeile stellen den ankommenden Strom von Serveranforderungen dar. Wenn die beiden Server jeweils ungefähr die Hälfte der Anforderungen empfangen, wird die ankommende bzw. eingehende Serverbelastung zwischen ihnen "verteilt". Bei der zweiten Funktion, der Serverredundanz, handelt es sich um die Fähigkeit, Clients vor Serverausfällen abzuschirmen. Die Lastverteilungseinrichtung detektiert Serverausfälle bzw. Serverfehler, indem periodische Gesundheitsprüfungen an jedem Server vorgenommen werden. Wenn ein Server ausgefallen ist, verteilt die Lastverteilungseinrichtung die Anforderungen neu an die verbliebenen bzw. verbleibenden Server. Die Lastverteilungseinrichtung führt weiter periodische Gesundheitsprüfungen an ausgefallenen Servern durch, um zu detektieren, wann sie sich erholt haben. In der Abbildung aus21 ist der Server-1 ausgefallen, wie dies durch die Schraffierung dargestellt ist, und alle Anforderungen werden jetzt an den einzigen verbliebenen Server verteilt. Bei der dritten Funktion handelt es sich um die Unterstützung der Ausfallsicherung der Lastverteilungseinrichtung. Die Lastverteilungseinrichtung ist ausreichend zustandslos im Betrieb, so dass in den meisten Fällen bei einem Ausfall der Lastverteilungseinrichtung eine sekundäre Lastverteilungseinrichtung direkt übernehmen kann und ankommende Anforderungen weiter verteilen bzw. ausgleichen kann, ohne dass eine Client-Störung bzw. Unterbrechung auftritt. In der Abbildung aus22 ist die primäre Lastverteilungseinrichtung ausgefallen und die sekundäre Lastverteilungseinrichtung hat übernommen. Die Anforderungen werden weiter auf die Server verteilt. - f. IP Weiterleitung und direkte Serverantwort:
- Die Serveranforderungsverteilung wird für die TCP/IP UDP und TCP Protokolle unterstützt. UDP ist ein Datagramm-orientiertes Protokoll. Clients öffnen eine TCP-Verbindung mit einem Server und senden eine Reihe von Anforderungen über die Verbindung.
- In beiden Fällen erreicht der Client einen Server im Netzwerk durch Adressierung des UDP-Datagramms oder TCP-Verbindung mit der IP-Netzwerkadresse des Servers. Die Lastverteilungseinrichtung ist mit einer speziellen IP-Adresse konfiguriert, die als eine "virtuelle" IP-Adresse bekannt ist, von denen Clients davon ausgehen, dass es sich um einen Server handelt. Clients adressieren ihre UDP-Datagramme oder TCP-Verbindungen an die virtuelle IP-Adresse der Lastverteilungseinrichtung. Die Lastverteilungseinrichtung leitet danach diese UDP-Datagramme oder TCP-Verbindungen an einen der eigentlichen Server weiter.
- Die Weiterleitung erfolgt auf der IP-Paketebene. TCP/IP verwendet das ARP-Protokoll zum Auflösen von IP-Netzwerkadressen in physikalische Netzwerk-Hardwareadressen. Im letzten Abschnitt oder Netzwerksegment der Zustellung erfolgt dies in die Netzwerk-Hardwareadresse der Ziel-IP-Adresse. Jedes IP-Paket enthält eine Ziel-IP-Adresse, und die Pakete, welche Client-UDP-Datagramme oder TCP-Verbindungen führen, werden an die virtuelle IP-Adresse der Lastverteilungseinrichtung adressiert. Wenn das Paket an dem lokalen Netzwerksegment ankommt, wird diese IP-Adresse zu der Netzwerk-Hardwareadresse der Lastverteilungseinrichtung aufgelöst.
- Für die Weiterleitung eines Pakets an einen eigentlichen Server, sendet die Lastverteilungseinrichtung das nicht modifizierte Paket erneut an dem lokalen Netzwerksegment. Anstelle der Verwendung der Ziel-IP-Adresse des Pakets in der ARP-Protokollauflösung verwendet die Lastverteilungseinrichtung jedoch die eigentliche bzw. tatsächliche IP-Adresse des ausgewählten Servers. Das ARP-Protokoll löst diese Adresse zu der Netzwerk-Hardwareadresse des Servers auf, und das Paket wird von diesem Server empfangen, obgleich dieser eine andere Ziel-IP-Adresse aufweist als die Adresse, die bei der ARP-Auflösung verwendet worden ist. Die Abbildung aus
23 zeigt eine Lastverteilungseinrichtung mit zwei konfigurierten IP-Adressen, 10.0.0.1 und 198.1.1.1 und zwei Servern (Server-1 und Server-2) mit den IP-Adressen 10.0.0.2 und 10.0.0.3. Die Adresse 198.1.1.1 wird als die virtuelle IP-Adresse verwendet. Client-Anforderungen kommen in IP-Paketen an, die an 198.1.1.1 adressiert sind. Der Sender dieser Pakete auf dem lokalen Netzwerksegment, wie zum Beispiel ein Router, würde diese Pakete an die Netzwerk-Hardwareadresse der Lastverteilungseinrichtung auflösen. Die Lastverteilungseinrichtung wiederum sendet die Pakete erneut in dem lokalen Netzwerksegment ohne Modifikationen und verwendet eine tatsächliche Server-IP-Adresse (an Stelle der Zieladresse des Pakets) für die Auflösung der Netzwerk-Hardwareadresse eines Servers. In Bezug auf die Abbildung aus23 wird ein Paket an den Server-1 weitergeleitet. - Da die Pakete ohne Modifizierungen weitergeleitet werden, kann der das Paket empfangene Server die Antwortpakete an den Originator der Anforderung adressieren, indem einfach die Quellen- und Zieladressen ausgetauscht werden, welche in dem Anforderungspaket enthalten sind. Die Antwortzieladresse stellt die IP-Adresse des Clients dar, und die Antwortquellenadresse stellt die virtuelle IP-Adresse dar. Die Antwortpakete fließen direkt zurück zu dem Client und werden nicht von der Lastverteilungseinrichtung empfangen. Dies wird als "direkte Serverantwort" (Direct Server Return) bezeichnet. Die Abbildung aus
24 zeigt den Pfad bzw. Weg eines Antwortpakets zu dem Server-1 von der Lastverteilungseinrichtung und den Pfad eines Antwortpakets von dem Server-1 zurück zu dem Client. - g. Laufzeitoperationen:
- Die Abbildung aus
25 zeigt ein Cluster-Lastverteilungseinrichtungs-Paketverteilungs-Flussdiagramm2500 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung (Schritte2510 –2540 ). Die hierin beschriebene Cluster-Lastverteilungseinrichtung (oder einfach "Lastverteilungseinrichtung") kann in Verbindung mit dem Verteilungsserver-Cluster410 aus4A , dem Anwendungsserver-Cluster420A aus4A und dem VFCS Cluster600 aus6 eingesetzt werden. Die Lastverteilungseinrichtung ist als einer oder mehrere virtuelle Server konfiguriert. Ein virtueller Server ist dargestellt durch eine Kombination aus IP-Adresse und UDP- oder TCP-Port-Nummer. Ein virtueller Server kann als ein "Match any Port" konfiguriert werden anstatt mit einer bestimmten Port-Nummer. Jeder virtuelle Server ist so konfiguriert, dass er einen oder mehrere reale Server aufweist, und jeder reale Server ist mit dessen IP-Adresse konfiguriert und mit der Netzwerkschnittstelle, die so zu verwenden ist, dass der reale Server erreicht wird. Jeder virtuelle Server ist separat konfiguriert für die Server-Gesundheitsprüfungen. - Für jedes an einer Netzwerk-Hardwareschnittstelle empfangene IP-Paket (Schritt
2510 ) scannt die Lastverteilungseinrichtung die Konfiguration des virtuellen Servers in Bezug auf eine Übereinstimmung hinsichtlich der IP-Adresse und der Port-Nummer (Schritt2512 ). wenn eine Übereinstimmung festgestellt wird, so wird einer der realen Server ausgewählt, entweder nach dem Reigenmodell, wenn es sich bei dem Protokoll um UDP handelt (Schritt2516 ) oder über die Server-Hash-Funktion (oder eine modifizierte Hash-Funktion), wenn es sich bei dem Protokoll um TCP handelt (Schritt2530 ). Nachdem der reale Server ausgewählt worden ist, wird das Paket an der für den realen Server konfigurierten Netzwerkschnittstelle konfiguriert sowie unter Verwendung der für den realen Server für die ARP-Hardwareadressenauflösung (ARP als englische Abkürzung von Address Resolution Protocol) ausgewählten IP-Adresse (Schritt2526 ). Wenn keine derartigen realen Server für die Weiterleitung zur Verfügung stehen, wird das Paket zurückgewiesen, wobei ein Fehlerpaket "Port nicht erreichbar" (Port unreachable) des ICMP-Protokolls zurück zu dem Client übermittelt wird. - Für Anforderungen, die über das UDP-Protokoll übermittelt bzw. gesendet werden, wird jede Anforderung in einem UDP-Datagramm geführt, welches wiederum in einem einzelnen IP- Paket geführt wird. Da die Lastverteilungseinrichtung so gestaltet ist, dass sie mit dem NFS-Dateiserverprotokoll des VFCS arbeitet, wobei es bekannt ist, das jede einzelne Anforderung unabhängig ist von allen anderen Anforderungen. Somit werden IP-Pakete, welche UDP-Datagramme führen, mittels einfachem Reigenmodell unter den Servern verteilt (Schritt
2516 ). Wenn zum Beispiel drei Server gegeben sind, Server-1, Server-2 und Server-3, so empfängt Server-1 jedes dritte Paket. - In Bezug auf Anforderungen, die über das TCP-Protokoll gesendet werden, werden Anforderungen in TCP-Verbindungen transportiert. Die IP-Pakete, welche TCP-Verbindungsdaten führen, können nicht mittels Reigenmodell verteilt werden. Erstens besteht keine direkte Korrelation zwischen IP-Paketen, die TCP-Verbindungsdaten führen, und einzelnen Anforderungen – eine Anforderung kann auf mehrere Pakete aufgeteilt werden, und ein Paket kann mehr als eine Anforderung aufweisen. Ferner kann eine TCP-Verbindung nicht einfach zwischen Servern gemeinsam genutzt werden, indem einfach Pakete weitergeleitet werden. Somit müssen alle Pakete für eine bestimmte TCP-Verbindung zu dem gleichen Server weitergeleitet werden.
- IP-Pakete, welche TCP-Verbindungen führen, werden auf der Basis der Quellen-IP-Adresse und der Quellen-TCP-Port-Nummer jedes Pakets verteilt. Da diese über die Lebensdauer einer TCP-Verbindung konstant bleiben und in jedem IP-Paket vorhanden sind, das TCP-Daten führt, werden alle Pakete der TCP-Verbindung zu dem gleichen Server verteilt.
- Für die Auswahl eines Servers für die Weiterleitung des Pakets, wird die Quellen-IP-Adresse zu dem Quellen-TCP-Port hinzugefügt, und zwar als eine vorzeichenlose ganze Zahl von 32 Bit, und wobei sie danach durch die Anzahl der Server geteilt wird. Der Hashing-Algorithmus lautet: Serverindex = (Quellen-IP-Adresse + TCP Port)/Anzahl der Server in der Gruppe (Schritt
2530 ). Der arithmetische Rest der Division ist eine Zahl, die zwischen Null und eins weniger als die Anzahl der Server liegt. Dies wird als "Server-Hash-Funktion" bezeichnet. Wenn zum Beispiel drei Server vorhanden sind, ist das Ergebnis der Server-Hash-Funktion immer 0, 1 oder 2. Dieses Ergebnis dient als nullbasierter Index für die Auswahl eines Servers. Zum Beispiel wählt 0 den ersten Server aus, während 1 den zweiten Server auswählt, und wobei 2 den dritten Server auswählt. Hiermit wird festgestellt, dass die Lastverteilungseinrichtung keinen TCP-Verbindungsstatus aufrechterhalten bzw. speichern muss oder jegliches Wissen bzw. Informationen über aktuell offene Verbindungen, da jedes ankommende Paket die Informationen führt, die für dessen korrekte Verteilung verwendet werden. - Da die TCP-Portnummer bei einem typischen Client für aufeinander folgende CP-Verbindungen erhöht bzw. heraufgesetzt wird, werden mehrere Verbindungen von dem gleichen Client statistisch im Zeitverlauf gleichmäßig auf die Server verteilt, da die inkrementierende Port-Nummer dazu führt, dass die Server-Hash-Funktion wiederholt zyklisch verläuft. Zum Beispiel führt eine inkrementierende Port-Nummer zu einer zyklischen Reihe von Ergebnissen, wie etwa 0, 1, 2, 0, 1, 2, 0, 1, 2, etc. Da die Quellen-IP-Adresse ferner in der Server-Hash-Funktion enthalten ist, sollten Verbindungen von mehreren Clients statistisch zu unterschiedlichen Ergebnissen der Hash-Funktion führen, selbst wenn diese die gleiche TCP-Port-Nummer verwenden, da sich ihre IP-Adressen unterscheiden. Bei dieser Methode wird es versucht, eine statistisch ausgewogene Verteilung von TCP-Verbindungen über die Server vorzunehmen und somit eine statistisch ausgewogene Verteilung von Anforderungen.
- Wenn ein Server ausfällt, verteilt die Lastverteilungseinrichtung neue Anforderungen an die verbleibenden Server. Für UDP-Pakete stellt dies kein Problem dar, da die Verteilung im Reigenmodell (Round Robin) erfolgt (Übergang von
2524 zu2516 ). Die Pakete werden einfach im Reigenmodell auf die verbleibenden Server verteilt. Für TCP können die Pakete jedoch nicht einfach zu einem anderen Server weitergeleitet werden, da der Server die TCP-Verbindung nicht kennt bzw. keine Informationen über diese besitzt. Nachdem der Server ausgefallen ist, kann für diese TCP-Verbindungen nichts mehr getan werden. Wenn Pakete jedoch nicht um einen ausgefallenen Server zu einem anderen, aktiven bzw. laufenden Server neu verteilt werden, so schlagen die neuen TCP-Verbindungsversuche durch Clients fehl, sollten diese zu dem ausgefallenen Server verteilt werden. - Zur Behandlung dieses Problems wird eine modifizierte Hash-Funktion eingesetzt, wenn die Server-Hash-Funktion, die auf das Paket angewandt wird, zu einem ausgefallenen Server führt. Die modifizierte Hash-Funktion funktioniert wie die Server-Hash-Funktion, teilt jedoch durch die Anzahl der aktiven Server an Stelle der Anzahl aller Server. Das Ergebnis ist ein Index in die Gruppe bzw. Anordnung der aktiven Server. Dies leitet das Paket zu einem alternativen aktiven Server um, und so lange die Gruppe der aktiven Server die gleiche bleibt, werden alle Pakete an der gleichen TCP-Verbindung zu dem gleichen alternativen Server geleitet. Dies ist unter
2538 dargestellt, wobei der tote bzw. inaktive Server aus der Gruppe entfernt wird, bevor der Hash-Algorithmus in2530 erneut angewandt wird. Hiermit wird festgestellt, dass die modifizierte Hash-Funktion angewandt wird, erst nachdem die Server-Hash-Funktion einen ausgefallenen Server ausgewählt hat. Dies beeinflusst nicht andere TCP-Verbindungen, die aktuell zu aktiven Servern geleitet werden. - Wenn die Lastverteilungseinrichtung (Load Balancer) damit beginnt, die modifizierte Hash-Funktion auf eine bestehende TCP-Verbindung anzuwenden, handelt es sich bei dem Ergebnis darum, dass Pakete, nachdem sie an einen ausgefallenen Server weitergeleitet worden sind, jetzt zu einem alternativen Server weitergeleitet werden. Dieser Server besitzt jedoch keine Informationen über die in den Paketen dargestellte TCP-Verbindung. Dies wird von dem Server als eine "halb offene" TCP-Verbindung erkannt, ein Zustand, der normalerweise an bzw. in einem TCP/IP Netzwerk auftreten kann und den das TCP-Protokoll bereits behandelt. Der alternative Server setzt die Verbindung zurück. Der Client, wenn er eine entsprechende Fehlerbehebung aufweist, öffnet eine neue TCP-Verbindung. Diese neue Verbindung, gesteuert durch die modifizierte Hash-Funktion, wird zu dem alternativen Server geöffnet. Unabhängig davon, wie lange der ursprüngliche Server außer Betrieb bleibt, sieht der Client nur eine vorübergehende Serviceunterbrechung.
- Wenn sich der ausgefallene Server später erholt, führt die Server-Hash-Funktion nicht mehr zu einem ausgefallenen Server, und somit wird nicht mehr auf die modifizierte Hash-Funktion zurückgegriffen. In diesem Fall werden jetzt alle TCP-Verbindungen, die geöffnet wurden, während sie unter der Steuerung durch die modifizierte Hash-Funktion standen, jetzt zu einem anderen Server geleitet, dem durch die ursprüngliche Server-Hash-Funktion vorgegebene Server-Hash-Funktion. Wiederum interpretiert dieser Server diese Verbindungen als halb offene Verbindungen und setzt sie zurück. Alle angeschlossenen Clients erleben bzw. sehen eine vorübergehende Dienstunterbrechung. Der alternative Server, zu dem diese Verbindungen gemäß der modifizierten Hash-Funktion geöffnet worden sind, erlebt bzw. erfährt scheinbar inaktive Clients, und dies Verbindungen werden schließlich an dem Server ausgeschaltet bzw. laufen ab und werden geschlossen.
- h. Server-Gesundheitsprüfungen:
- Die Lastverteilungseinrichtung unterstützt zwei Verfahren der Server-Gesundheitsprüfungen. Bei dem ersten Verfahren handelt es sich um ein NFS-Protokoll NULL RPC über das UDP-Protokoll, Schritt
2524 aus25 . Bei dem zweiten Verfahren handelt es sich um eine offene TCP-Verbindung, gefolgt von einem unverzüglichen Schließen in Schritt2538 aus25 . Wenn die Gesundheitsprüfung innerhalb eines spezifischen Zeitraums erfolgreich ist, wird angenommen, dass der Server aktiv und funktionsfähig ist. Wenn die Prüfung fehlschlägt bzw. ein negatives Ergebnis liefert, so wird davon ausgegangen, dass der Server ausgefallen ist. - Für die Gesundheitsprüfung werden drei Zeiträume konfiguriert und diese laufen für jeden Server unabhängig. Der Zeitraum "aktiv" (Up) entspricht dem Zeitraum, über den eine Gesundheitsprüfung nicht erforderlich ist. Während diesem Zeitraum werden Pakete zu dem Server weitergeleitet. Dies ist in den Schritten
2518 bis2526 und2532 bis2526 aus der Abbildung aus25 dargestellt. - Der Zeitraum "prüfen" (Check) ist der Zeitraum, über den eine Gesundheitsprüfung ausgeführt werden darf. Nachdem der Zeitraum "aktiv" abgelaufen ist, löst das nächste zu dem Server weitergeleitete Paket einen Versuch zur Gesundheitsprüfung aus, und der Zeitraum "prüfen" wird gestartet bzw. beginnt. Während dem Zeitraum "prüfen" werden Pakete weiter zu dem ausgewählten Server weitergeleitet. Dies ist in den Schritten
2520 ,2522 ,2534 ,2536 und2526 aus der Abbildung aus25 dargestellt. - Der Zeitraum "inaktiv" (Dead) ist der Zeitraum bevor eine erneute Prüfung eines ausgefallenen Servers erfolgt. Wenn die Gesundheitsprüfung erfolgreich ist, bevor der Prüfzeitraum abgelaufen ist, so beginnt ein neuer Zeitraum "aktiv". Wenn die Gesundheitsprüfung hingegen fehlschlägt oder der Prüfzeitraum abläuft, so beginnt der Zeitraum "inaktiv". Jeder Beginn des Zeitraums "aktiv" löst einen neuen Versuch der Gesundheitsprüfung aus. Nachdem der Zeitraum "inaktiv" abgelaufen ist, löst das nächste Paket, das zu diesem Server weitergeleitet worden wäre (über die Server modifizierte Hash-Funktion vor dem Aufrufen der modifizierten Hash-Funktion), eine Prüfung bzw. Untersuchung des Ergebnisses der Gesundheitsprüfung aus, Siehe dazu die Schritte
2524 –2516 und2538 –2530 aus der Abbildung aus25 , und entweder einen Übergang zu dem Zeitraum "aktiv" oder einen Neustart des Zeitraums "inaktiv" (mit dem Starten einer neuen Gesundheitsprüfung). Ein Server in dem Zeitraum "aktiv" oder "prüfen" gilt als aktiv und gesund. Ein Server in dem Zeitraum "inaktiv" gilt als ausgefallen. - Die Abbildung aus
26 zeigt ein Flussdiagramm2600 einer Gesundheitsprüfungsfolge (Schritte2652 –2660 ). Wenn eine Gesundheitsprüfung fehlschlägt oder der Prüfzeitraum ausläuft, beginnt der inaktive Zeitraum des Servers,2652 ,2656 und2654 aus26 . Ansonsten beginnt der aktive Zeitraum des Servers,2658 aus26 , bis dieser abgeschlossen ist (Schritt2660 ). - Die Zeiträume und Ergebnisse der Gesundheitsprüfungen werden nur geprüft, wenn Pakete ankommen, und sie werden zu dem Server geleitet (entweder im Reigenmodell, durch die Server-Hash-Funktion oder durch die modifizierte Hash-Funktion). Die Pakete dienen als Ereignisse, um die Gesundheitsprüfungsfolge weiter nach vorne zu bringen.
- 4. Die Steuereinheitdatenspeicher und Verwaltungsteilsysteme
- Die Abbildung aus
27 zeigt eine Darstellung der Steuereinheit und Daten einer Station2700 in dem SCDN100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Station2700 weist die Steuereinheit2710 und die Datenspeicher2730 auf. Die Steuereinheit2710 kann ein eingebettetes System darstellen, das in einem Ausführungsbeispiel der vorliegenden Erfindung vier Steuerteilsysteme aufweist. Die Abbildung aus27 identifiziert die Teilsysteme der Steuereinheit und die Datenspeicher einer Station. Die Steuereinheit2710 weist ein Ressourcenverwaltungs-Teilsystem2712 , ein Lernteilsystem2714 , ein Speicherverwaltungsteilsystem2716 und ein Serviceverwaltungsteilsystem2719 auf, die gemeinsam als Steuerungsteilsysteme bezeichnet werden. Der Datenspeicher2730 in der Station weist einen Netzwerkressourcenspeicher2732 , einen Stammdaten- und Statistikressourcenspeicher2734 , einen Ereignisressourcenspeicher2736 und einen Inhaltsspeicher2738 auf. - Das Serviceverwaltungsteilsystem
2718 der Steuereinheit überwacht und verwaltet die DS und VFCS Server der Station. Das Ressourcenverwaltungs-Teilsystem2712 unterstützt SCDN-Netzwerk- und Service- bzw. Dienstkonfigurationen und Protkoll- und Nutzungsdaten-Roll-Up-Aktivitäten. Das Lernteilsystem2714 unterstützt die automatische Initialisierung, das inkrementale Lernen bzw. Erlernen von Inhalten und andere adaptive Methoden zur Verwaltung und Steuerung der Station. Das Speicherverwaltungs-Teilsystem2716 überwacht die Cluster-Speichernutzung, unterstützt das Rating und Pruning von Inhalten und meldet dem CMS170 die Speichernutzung jedes Inhalteeigentümers. Das Serviceverwaltungs-Teilsystem2718 überwacht und steuert Dienste auf der Basis von Schwellenwerteinstellungen, gibt SNMP-Traps (SNMP als englische Abkürzung von Simple Network Management Protocol) aus, exportiert Enterprise MIBs (Verwaltungsinformationsbanken) und exportiert Stamm-, Statistik- und Ereignisdaten. Für den Durchschnittsfachmann auf dem Gebiet ist es ersichtlich, dass die hierin beschriebenen Funktionen aus Gründen der Praktikabilität eingesetzt werden, und dass weitere Funktionen hinzugefügt, subtrahiert oder ersetzt werden können, sofern diese zu einer effizienten und zuverlässigen Steuerung und Verwaltung der SCDN-Station führen. - a. Speicherverwaltungsinformationsbank
- Das Speicherverwaltungs-Teilsystem
2716 verwaltet in einem Ausführungsbeispiel der vorliegenden Erfindung eine Informationsbank in einer relationalen Datenbank mit der Bezeichnung SM_DB, welche sich an dem CU befindet. Ferner wird auf die Abbildung aus30 verwiesen, welche beispielhafte Speicherverwaltungs-Informationsbanktabellen (3005 ,3015 ,3025 ,3035 ,3045 ) und Datenträgermetadaten3023 , Dateimetadaten3033 sowie Spurdateimetadaten3043 veranschaulicht. In dieser Datenbank gibt es sieben Datenbanktabellen: - • Tabelle DS Log
- • Tabelle Nutzungs-Log
- • Tabelle Datenträgerinfo
- • Tabelle Dateiinfo
- • Tabelle Spurinfo
- • Tabelle Speicheralarm-Log
- • Tabelle SM Prüfungs-Log
- Diese Tabellen werden nachstehend im Text beschrieben:
- i. Tabelle DS Log
- Die Tabelle DS Log
3005 oder Prism_DS_Log weist Datensätze für zahlreiche der Ereignisse oder Befehle auf, die von dem Verteilungsserver bearbeitet bzw. behandelt werden. Sie wird von dein Verteilungsserver-Teilsystem verwaltet. Wenn der DS etwaige dieser sechs FDP-Befehle verarbeitet, protokolliert er die vollständige Ausführung des Ereignisses an die Datenbank. - Die Felder der Tabelle Prism_DS_Log sind wie folgt gegeben:
FELD BEDEUTUNG CommandType Entweder: INFO, PUT, REPLICATE, PREPARE, REMOVE oder CLEAN InfoCategory Entweder: CPUDATE, CPRESERVE, CPDELETE oder FILEUPDATE Direction Eingehend oder Abgehend NetworkID Die eindeutige ID des Netzwerks, wo dieser Datenträger seinen Ursprung hat VolumeID Die eindeutige ID des Datenträgers in dem Netzwerk FileID Die eindeutige ID der Datei in dem Netzwerk TrackIndex Der Index dieser Spur ByteCount Anzahl der betroffenen Bytes insgesamt, soweit zutreffend Status OK oder Fehlercode OriginTime Zeitpunkt, zu dem das Paket ursprünglich gesendet worden ist StartTime Zeitpunkt, zu dem die Ausführung des Befehls begonnen hat EndTime Zeitpunkt, zu dem die Ausführung des Befehls abgeschlossen war - ii. Tabelle Nutzungs-Log
- Das VFCS (wie etwa das VFCS
470 ,600 ,1800 ) ist zuständig dafür, den Inhalt über eine Dateisystemschnittstelle wie etwa NFS und CIFS bereitzustellen. Wenn das VFCS eine Anforderung für einen Datenblock empfängt, wird das Ereignis als eine Datei protokolliert. Die Granularität der Protokollierung ist konfigurierbar. Wenn auf das erste Byte einer Datei zugegriffen wird, erfolgt eine Aktualisierung der letzten Zugriffszeit/des letzten Zugriffsdatums des Inhalts mit der aktuellen Zeit. Die Tabelle Nutzungs-Log3015 oder Prism_Usage_Log weist einen Datensatz für jede durch ein VFCS erfüllte "Leseanforderung" auf. Eine "Leseanforderung" ist definiert als jede Dateioperation, die das Lesen des ersten Bytes ("Byte 0") der Datei aufweist. Die Tabelle Nutzungs-Log wird von dem VFCS-Teilsystem zur Aufzeichnung der Dateinutzung verwaltet (d. h. Anforderungen der Datei). - Die Felder in der Tabelle Nutzungs-Log
3015 sind wie folgt gegeben:FELD BEDEUTUNG RequestTime Zeitpunkt, zu dem die Anforderung "Lesen" von dem VFCS empfangen worden ist DataSource Identifizieren einer Datenquelle (das Feld kann auch ungenutzt bleiben) RequestorIp Identifizieren einer IP-Adresse des Anforderers (das Feld kann auch ungenutzt bleiben) NetworkId Die eindeutige ID des Netzwerks, wo dieser Datenträger seinen Ursprung hat VolumeId Die eindeutige ID des Datenträgers in dem Netzwerk FileID Die eindeutige ID der Datei in dem Netzwerk - iii. Die Tabelle VolumeInfo (Datenträgerinfo)
- Die Tabellen VolumeInfo, FileInfo und TrackInfo (
3025 ,3035 ,3045 ) sind den VFCS Metadatendateien für die gleichen Objekte ähnlich (Datenträgermetadatendateien3023 , Dateimetadatendatei3033 und Spurdateimetadaten3043 ), wobei sie jedoch Daten auslassen, die nicht relevant sind für die Speicherverwaltungsaufgaben, und sie weisen andere bzw. weitere dynamische Daten auf, die für die Speicherverwaltungsaufgaben besonders sind. - Die Tabelle VolumeInfo
3025 weist einen Datensatz für jeden Datenträger auf. Die Felder in jedem Datensatz VolumeInfo sind wie folgt gegeben:FELD BEDEUTUNG NetworkId Die eindeutige ID des Netzwerks, wo dieser Datenträger seinen Ursprung hat VolumeId Die eindeutige ID des Datenträgers in dem Netzwerk CurrentUsage Die Gesamtgröße aller Blockdateien, die sich zu diesem Zeitpunkt an dieser Station im Speicher befinden ReservedSpace Der maximale Speicherplatz, den der Datenträger zu einem bestimmten Zeitpunkt an dieser Station beleben darf AssignedStation Die ID der Ursprungsstation für diesen Datenträger PruningThreshold Ein prozentualer Anteil des reservierten Raums bzw. Platzes, so dass für den Fall dass CurrentUsage einmal über diesem Wert liegt, der Speichermanager im nächsten Pruning-Zyklus ausreichend Blockdateien wieder zurück bereinigt, um CurrentUsage wieder unter diesen Wert zu führen. AlarmThreshold Ein prozentualer Anteil des reservierten Raums bzw. Platzes, so dass für den Fall, dass CurrentUsage einmal über diesen Wert ansteigt, sendet der Speichermanager eine Alarmmitteilung an die CMS-Anwendung, und dem Eigentümer wird es untersagt bzw. ist nicht befugt, weitere Dateien in das System einzuführen, bis CurrentUsage (aktuelle Nutzung) wieder zurück unter diesen Wert gebracht worden ist. - Die Tabelle VolumeInfo
3025 kann Daten aufweisen, die aus der Datenträgermetadatendatei3023 kopiert worden sind, wie dies durch den Pfeil3020 dargestellt ist. - iv. Die Tabelle FileInfo (Dateiinfo)
- Die Tabelle FileInfo
3035 weist einen Datensatz für jede an dieser Station bekannte Datei auf. Die Tabelle FileInfo3035 kann Daten aufweisen, die aus dem Nutzungs-Log bzw. Nutzungsprotokoll3010 kopiert worden sind und Dateimetadaten3033 , wie dies durch die Pfeile3010 und3030 dargestellt ist. Die Felder jedes Datensatzes FileInfo sind wie folgt gegeben:FELD BEDEUTUNG NetworkId Die eindeutige ID des Netzwerks, wo diese Datei ihren Ursprung hat VolumeId Die eindeutige ID (in dem Netzwerk) des Datenträgers, dem diese Datei gehört FileID Die eindeutige ID dieser Datei in dem Netzwerk TrackCount Die Anzahl der Spuren (Tracks), in welche diese Datei zerlegt worden ist BlockSize Die Größe (in Bytes) jeder Blockdatei für diese Datei (der letzte Block jeder Spur kann kleiner sein als dieser) Duration (Dauer) Die Dauer oder "Wiedergabezeit" dieser Datei, sofern dies zutreffend ist Popularity Die prognostizierte oder erwartete Nachfrage nach dieser Datei auf einer Skala von 0 bis 10. ExpirationDate Das Datum, an dem diese Datei ausläuft bzw. verfällt (die genau Zeit des Ablaufs ist 23:59:59 GMT an diesem Datum). Die Datei wird während dem ersten Pruning-Zyklus am ersten Tag ORTSzeit NACH der genauen Ablaufzeit von jeder lokalen Station entfernt. FirstUsed Zeitpunkt der ersten Anforderung dieser Datei durch einen Benutzer (innerhalb des von Usage Log abgedeckten Zeitraums) LastUsed Zeitpunkt der letzten (zeitlich am kürzesten zurück liegenden) Anforderung dieser Datei (innerhalb des Zeitraums). UseCount Die Häufigkeit der Anforderung der Datei (innerhalb des Zeitraums) - v. Die Tabelle TrackInfo (Spurinfo)
- Die Tabelle TrackInfo
3045 enthält einen Datensatz für jede Spur jeder an dieser Station bekannten Datei. Die Tabelle TrackInfo3045 kann Daten aufweisen, die aus den Metadaten TrackFile3043 kopiert werden, wie dies durch den Pfeil3040 dargestellt ist. Die Felder jedes Datensatzes TrackInfo sind wie folgt gegeben:FELD BEDEUTUNG NetworkId Die eindeutige ID des Netzwerks, wo diese Datei ihren Ursprung hat VolumeId Die eindeutige ID (in dem Netzwerk) des Datenträgers FileID Die eindeutige ID dieser Datei in dem Netzwerk TrackIndex Der Index dieser Spur TrackLength Die ganze Größe dieser Spur CurrentSize Die gesamte Größe aller Blockdateien, die sich aktuell im Speicher befinden MinRetainSize Die Mindestgröße, auf welche diese Spur beschnitten werden soll BlockSize Die Größe jeder Blockdatei dieser Spur (unter Umständen mit Ausnahme des letzten Blocks) Truncatable Boolscher Wert, der anzeigt, ob überhaupt Blöcke aus dieser Spur entfernt bzw. beschnitten werden können - vi. Die Tabelle Speicheralarm-Log (Storage Alarm Log)
- Die Tabelle Speicheralarm-Log weist einen Eintrag für jedes Mal auf, wenn ein Datenträger in einen Alarmzustand eintritt oder diesen verlässt. Ein Datenträger befindet sich in einem Alarmzustand, wenn die aktuelle Speichernutzung den Alarmschwellenwert überschreitet. Die Felder des Speicheralarm-Log sind wie folgt gegeben:
FELD BEDEUTUNG NetworkId Die eindeutige ID des Netzwerks, wo diese Datei ihren Ursprung hat VolumeId Die eindeutige ID (in dem Netzwerk) des Datenträgers, dem diese Datei gehört UpdateTime Der Zeitpunkt, zu dem dieser Datensatz erstellt worden ist CurrentUsage Die Anzahl der Speicherbytes, welche der Datenträger zum Zeitpunkt der Aktualisierung genutzt hat ReservedSpace Die Anzahl der Speicherbytes, welche der Datenträger reserviert hat AlarmState Ob sich der Datenträger IN oder NICHT IN einem Alarmzustand befindet (wahr oder falsch) - vii. Die Tabelle Speicherverwaltungs-Prüf-Log
- Die Tabelle Speicherverwaltungs-Prüf-Log weist die folgenden Datensatzfelder auf:
Lokaler Netzwerkspeicher insgesamt
Speichergröße insgesamt
Lokale Netzwerkspeichernutzung und -verfügbarkeit insgesamt
Speichernutzung = Summe der vollständigen Speicherdatenträgergröße – Summe der vollständigen Datenträgerspeichernutzung. - 5. Optimierte Speicherverwaltung
- a. Die Rolle der Speicherverwaltung
- Wenn Inhalt veröffentlicht wird, wird die vollständige Datei im Ganzen oder ein Teil dieser an die Speichervorrichtungen im ganzen Netzwerk verteilt. Wenn eine Inhaltsdatei von einem Benutzer über VFCS angefordert wird, werden nicht residente Datenblöcke für die angeforderte Datei von anderen DS in die lokalen Speichervorrichtungen importiert. Das Importieren von Datenblöcken füllt letztlich den lokalen Speicher, was es erforderlich macht, das bestimmte weniger genutzte Inhalte gelöscht werden, um Platz für die neu importierten Blicke zu schaffen. Somit muss die Speichernutzung an jedem Verteilungszentrum sorgfältig überwacht und verwaltet werden, so dass die Speichernutzung optimiert wird.
- Das Löschen von weniger beliebten Inhalten, um Platz für beliebtere Inhalte zu schaffen, wird als "Pruning" bezeichnet. Es ist die Aufgabe des Speicherverwaltungsteilsystems
2716 , das auch als Speichermanager (Storage Manager) bezeichnet wird, das Pruning nach Bedarf auszuführen. Für die Verwaltung der Speichervorrichtungen, müssen die Speicherverfügbarkeit, die Benutzernachfrage und die Datenimportaktivitäten alle überwacht werden, so dass eine präzise Prognose der Daten, für welche ein Zugriff am wahrscheinlichsten ist, vorgenommen werden kann, und so dass lokale Speichervorrichtungen so angepasst werden können, dass sie nur die beliebtesten Inhalte speichern. - Der Speichermanager
2716 überwacht ferner die Speichernutzung jedes Datenträgers insgesamt. Er meldet dem Content Management Server (CMS170 ) die Speichernutzung eines Datenträgers. Er meldet einem CMS ferner, wenn die Speichernutzung eines Datenträgers die reservierte Quote übersteigt. - Um Speicherverwaltungsentscheidungen zu treffen, überwacht der Speichermanager
2716 folgendes: 1) die Speicherverfügbarkeit insgesamt; 2) die Datenträgerspeicherreservierung und -informationen; 3) die Speicheraktivitäten für einen Datenträgerspeicherplatzraum; 4) die Speicheraktivitäten in der Station; 5) die Nutzung von Inhalten; 6) die Netzwerksituationen; und 7) die Attribute des Inhalts. Er entscheidet, wann er bestimmte Inhalte entfernen muss, um Platz für neue oder beliebtere Inhalte zu schaffen. Er entscheidet ferner darüber, welche und wie viele Datenblöcke entfernt werden sollen. Verschiedene unterschiedliche intelligente Algorithmen können eingesetzt werden, um Inhaltsblöcke für das Pruning gemäß Ausführungsbeispielen der vorliegenden Erfindung auszuwählen. - Wenn festgestellt wird, dass ein oder mehrere Datenträger (Volumen) sich oberhalb ihres Speicherschwellenwertes befindet bzw. befinden, wird der Inhalt in den Datenträgern untersucht und nach "Pruning-Fähigkeit" geordnet. Ein Inhalt gilt als Pruning-fähig, wenn er beschnitten werden kann, nicht auf seine zulässige Mindestgröße reduziert worden ist und zurzeit nicht verwendet wird (siehe unten). Diese Inhalte, die Pruning-fähig sind, werden für das Pruning geordnet (priorisiert), um eine ausgewählte Kostenfunktion zu optimieren. Zum Beispiel kann die Ordnung bzw. Sortierung abhängig von der Netzwerkkostenstruktur des Datenträgers mit dem Ziel vorgenommen werden, die Gesamtanzahl von Bytes des Netzwerkverkehrs für den Datenträger zu minimieren. Alternativ kann es Ziel der Rangordnung sein, lediglich die Spitzenbandbreitennutzung für den Datenträger zu minimieren oder eine Kostenfunktion zu minimieren, die eine mathematische Kombination dieser und anderer Faktoren darstellt, wie zum Beispiel des rechenbetonten Overheads oder der Lastverteilung über das gesamte Netzwerk.
- Die Rangordnung umfasst das Analysieren der Informationen in der Informationsbank bzw. der Wissensbank, das heißt des aktuellen Status und des Nutzungsverlaufs des Inhalts. Unter Verwendung all dieser verfügbaren Informationen werden die unterschiedlichen Inhalte gemäß ihrer wahrscheinlichen Auswirkung auf die ausgewählte Kostenfunktion sortiert bzw. angeordnet. Wenn es sich bei der Kostenfunktion zum Beispiel nur um den Netzwerkverkehr insgesamt (in Bytes) handelt, so gilt ein Inhalt mehr Pruning-fähig als ein anderer Inhalt, wenn es für ihn weniger wahrscheinlich ist, dass er wieder angefordert wird (er wird weniger häufig verwendet). Bin Algorithmus zur seltensten Verwendung (Least Frequently Used) kann für diese Kostenfunktion eingesetzt werden. Die Indexe der sortierten Ergebnisse werden entweder in einer Datenbank oder einer Datei gespeichert, so dass mehrere Speichermanager einen gemeinsamen Zugriff auf die Ergebnisse ihrer Berechnungen aufweisen.
- Der Speichermanager
2716 verwendet einen beliebigen einer Reihe von Algorithmen, welche die Nutzungsdaten untersuchen und bestimmen, welcher Inhalt die ausgewählte Kostenfunktion optimiert. Die Architektur ermöglicht das Hinzufügen neuer Algorithmen. Zusätzlich zu einem LFU-Algorithmus (Least Frequently Used Algorithmus) unterstützt der Speichermanager2716 aktuell die Algorithmen Least Recently Used (LRU), Least Frequently Used Capped (LFUCapped), Lest Recently Used K-times (LRU-2, LRU-3, ...), Uniform Decay (UD) und ein Zufallsauswahlalgorithmus. Der LRU versucht die gleiche Kostenfunktion zu optimieren wie LFU (Netzwerkverkehr insgesamt), wobei jedoch ein Teil des Ziels geopfert wird im Austausch für eine bessere Recheneffizienz. LRU-K ist ein rechenbetonter Kompromiss zwischen LFU und LRU. LFUCapped ist eine auf den Zählwert begrenzte Version von LFU, welche empfindlicher sein möchte in Bezug auf Veränderungen der Popularität bzw. der Beliebtheit des Inhalts im Zeitverlauf. UD weist das Ziel der Reduzierung der Variabilität der Netzwerknutzung auf, so dass der resultierende Netzwerkverkehr ein höheres Gesamtvolumen aufweisen kann, jedoch im Zeitverlauf gleichmäßiger verteilt wird. - Der Speichermanager
2716 wechselt zwischen Algorithmen, wenn er bestimmt, dass bestimmte Netzwerkbedingungen oder Nutzungsmuster eine temporäre Präferenz für einen Algorithmus gegenüber einem anderen anzeigen. Der Speichermanager2716 kann automatisch und/oder manuell zwischen Algorithmen wechseln als Reaktion auf die Auswahl eines Administrators oder eines Benutzers. - Das Maß des Pruning, das heißt, wie viel Pruning erfolgen soll, kann ebenfalls geregelt werden. Der Speichermanager
2716 erzeugt eine sortierte Liste von Inhalten, die nach Pruning-Fähigkeit geordnet werden. Durch das Besuchen jedes Inhaltsobjekts der Reihe nach, beginnend mit dem Objekt mit der größten Pruning-Fähigkeit, löscht er eine bestimmte Anzahl von Datenblöcken aus jedem Inhalt. Er stoppt diesen Prozess, wenn eine ausreichende Anzahl von Bytes einem Pruning unterzogen worden ist, um die Gesamtnutzung des Datenträgers auf ein akzeptables Maß zu senken – das unterhalb des Pruning-Schwellenwerts liegt. Die Anzahl der Datenblöcke, die er aus einem bestimmten Inhalt löscht, wird auf der Basis der ausgewählten Kostenfunktion und des Algorithmus berechnet. - Die meisten Algorithmen führen ein Pruning einer variablen Anzahl von Blockdateien aus jeder Pruning-fähigen Inhaltsdatei aus. Ein Algorithmus "Uniform Decay" kann zum Beispiel jedoch eingesetzt werden, welcher nur einen kleinen Teil jeder Pruning-fähigen Inhaltsdatei einem Pruning unterzieht, so dass die Gesamtanzahl an Bytes, die einem Pruning unterzogen werden müssen, so einheitlich wie möglich allen Pruning-fähigen Inhalten entnommen werden. Als Folge dessen neigt im Zeitverlauf jeder Inhalt eines Datenträgers dazu, dass daraus eine Menge gelöscht wird, die umgekehrt proportional ist zu dessen Häufigkeit der Verwendung. Je seltener ein Inhalt verwendet wird, desto mehr Bytes des Inhalts werden nicht lokal gespeichert. Es lässt sich mathematisch zeigen, dass diese Anordnung bei bestimmten Anwendungen zu einer geringeren Variabilität (statistische Varianz bzw. Abweichung) in dem Netzwerkverkehr führt. Die Fähigkeit für das Pruning von Inhaltsabschnitten bzw. Inhaltsteilen ermöglicht es einem Speichermanager
2716 , die bestimmte Optimierung auszuführen. - Wie wird das Pruning ausgeführt?
- Wenn der Speichermanager
2716 entscheidet, eine Inhaltsdatei einem Pruning zu unterziehen, wird die Datei genau untersucht bzw. geprüft, um den richtigen Bereich der Blöcke zu bestimmen, die entfernt werden sollen. Ein Pruning-Modell ist das Entfernen der Blöcke nur von dem Ende (temporär) der Datei. Ein weiteres Modell ist die Entfernung von Blöcken, beginnend mit Blocknummer (n + 1), wobei die Blöcke 1 bis n die entsprechende Anzahl der mindestens gespeicherten Blöcke darstellen. - Nachdem der Entfernungsbereich bestimmt worden ist, gibt der Speichermanager
2716 einen Befehl FDP REMOVE an den DS aus. Der Speichermanager2716 aktualisiert nicht seine Informationsbank, bis nicht alle Blöcke tatsächlich durch den DS entfernt werden und der DS die Entfernung in dem DS-Log bzw. dem DS-Protokoll protokolliert hat. - Schutz während dem Einsatz
- Wenn bestimmt wird, dass ein Inhalt eingesetzt wird, versucht der Speichermanager
2716 nicht, davon etwas zu löschen, d. h. die Datei wird nicht durch einen Pruning-Algorithmus untersucht. - In einem Beispiel gilt ein Inhalt als sich im Einsatz befindend, wenn die folgende Bedingung erfüllt ist:
Aktuelle Zeit < Anfangszeit des Ansehens + max(Inhaltsdauer·Einsatzfaktor, Inhaltsdauer + minPufferimEinsatz). - In bestimmten Situationen kann der Speichermanager
2716 bestimmen, dass der Inhalt Pruning-fähig ist, und während diesem Prozess kann der Inhalt in den Einsatz gelangen. Um es zu verhindern, dass Inhalte gelöscht werden, wurde eine Sicherheitsmaßnahme ergriffen, wodurch der DS verifiziert, dass sich der Inhalt nicht im Einsatz befindet, bevor die Löschung ausgeführt wird. Diese Sicherheitsmaßnahmen können Datenträgerspeichersicherheitsschwellenwerte für den Inhalt aufweisen, wie etwa ein Alarmschwellenwert und ein Pruning-Schwellenwert. Jeder Schwellenwert stellt einen prozentualen Anteil der reservierten Speichergröße des Datenträgers dar; wobei der prozentuale Anteil konfigurierbar ist. - Die Funktionsweise des Speichermanagement-Teilsystems bzw. des Speicherverwaltungs-Teilsystems
2716 wird später im Text beschrieben. - b. Überblick über den Speicherverwaltungszyklus
- Das Speicherverwaltungs-Teilsystem
2716 läuft ununterbrochen in einer Endlosschleife. Jeder vollständige Schleifendurchlauf wird als Zyklus bzw. Pruning-Zyklus bezeichnet. Die Abbildung aus28 zeigt ein Ausführungsbeispiel des Zustandsdiagramms eines Speicherverwaltungszyklus der vorliegenden Erfindung (Schritte2810 –2870 ). Der Speichermanager2716 verarbeitet periodisch die DS- und VFCS Aktivitätsprotokolle, um dessen Informationsbank zu aktualisieren und die erforderlichen Maßnahmen zu ergreifen, um den lokalen Speicher zu verwalten. Der maximale Zeitraum zwischen Zyklen ist konfigurierbar. Die in jedem Schritt eines Pruning-Zyklus ausgeführte Verarbeitung wird nachstehend wie folgt beschrieben: - • Schritt
0: (
2870 aus28 ) Ruhen über einen ausreichend langen Zeitraum, so dass ausreichend Aktivität aufgetreten sein kann, um einen weiteren Pruning-Zyklus nützlich zu machen, wobei der Zeitraum aber auch ausreichend kurz sein muss, so dass es unwahrscheinlich ist, dass ein Datenträger die Kapazität von 100% erreicht hat. - • Schritt
1: (
2810 aus28 ) Scannen des DS-Log auf Ereignisse, die Veränderungen von Informationen über Datenträger, Dateien oder Spurdateien bewirken oder von Parametern, die Datenträgern, Dateien oder Spurdateien zugeordnet sind. Für jedes "berührte" Objekt wird die Speicherverwaltungs-Informationsbank mit aus den VFCS Metadaten gewonnenen aktuellen Daten aktualisiert. - • Schritt
2: (
2820 aus28 ) Einmal täglich oder immer dann, wenn die Ablaufdaten von Dateien modifiziert worden sind, wird auf Dateien geprüft, die vor dem aktuellen Datum des Tages abgelaufen sind, und wobei diese Dateien gelöscht werden. - • Schritt
3: (
2830 aus28 ) Berechnen der aktuellen Speichernutzung jedes Datenträgers als prozentualer Anteil des reservierten Speicherplatzes des Datenträgers. Warnmeldung an CMS senden für jeden Datenträger, dessen prozentualer Nutzungsanteil den Alarmschwellenwert erreicht hat. Aufstellen einer Liste von Datenträgern, deren prozentuale Nutzung den Pruning-Schwellenwert überschritten hat. - • Schritt
4: (
2840 aus28 ) Für jeden Datenträger, dessen Speichernutzung über dem Pruning-Schwellenwert liegt wird entschieden, welche Blöcke welcher Dateien gelöscht werden sollen, um die Speichernutzung wieder sicher unter den Pruning-Schwellenwert zu bringen. - • Schritt
5: (
2850 aus28 ) Ausgeben von FDP-Befehlen REMOVE (Entfernen) an den DS, um die ausgewählten Blöcke zu erntfernen. Der DS stellt diese Befehle unabhängig von dem Speichermanager in die Warteschlange ein und verarbeitet sie später. - • Schritt
6: (
2860 aus28 ) Datenträgernutzungsstatistiken an CMS melden. - Der in der Abbildung aus
28 dargestellte Speicherverwaltungszyklus kann in mehreren Vorrichtungen implementiert werden als mehrere Prozesse, die parallel ausgeführt werden, während sie die gleiche Informations- bzw. Wissensbank nutzen. - Jeder der Schritte (oder Zustände) des Speicherverwaltungszyklus aus der Abbildung aus
28 wird später im Text in Bezug auf zusätzliche Implementierungen der vorliegenden Erfindung näher beschrieben. Die Abbildungen der29A –29E zeigen zusätzliche Unterschritte zur Ausführung der Schritte 1 bis 6 (d. h. der Schritte2810 –2860 ). - c. Bestimmung des Ruheintervalls zwischen Pruning-Zyklen
- Es folgt eine Beschreibung von Schritt 2 aus
28 (Schritt2800 ) gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Vor Beginn jedes neuen Pruning-Zyklus wird ein Algorithmus angewandt, um zu entscheiden, ob der Zyklus unverzüglich beginnen soll oder ob bis zu dem Beginn einen bestimmten Zeitraum lang "geruht" (gewartet) werden soll. Wenn ein Inhaltsdatenträger den Pruning-Schwellenwert in dem vorherigen Zyklus überschritten hat (was bedeutet, dass ein bestimmter Inhalt einem Pruning unterzogen werden musste, um die aktuelle Nutzung dieses Datenträgers auf einen Wert unterhalb des Schwellenwerts zu senken), so beginnt der nächste Zyklus unverzüglich. Wenn in dem vorherigen Zyklus für keinen Datenträger ein Pruning erforderlich gewesen ist, so ruht der Datenträger eine Weile bevor mit dem nächsten Zyklus begonnen wird. Die Dauer des Ruhezustands basiert darauf, wie lange es her ist, seit das letzte Pruning erforderlich gewesen ist. Je länger es zurückliegt, dass ein Pruning erforderlich gewesen ist, desto länger ist der Ruhezustand, maximal bis zu einem bestimmten maximalen Ruheintervall. Das maximale Ruheintervall stellt einen konfigurierbaren Parameter dar. Für den Fachmann auf dem Gebiet ist es unter Berücksichtigung der vorliegenden Beschreibung offensichtlich, dass ein höherer Algorithmus an dieser Stelle eingesetzt werden kann, um einen sicheren Zeitraum für den Ruhezustand zu schätzen bzw. zu prognostizieren, der das Risiko minimieren würde, dass ein Datenträger 100% des für ihn reservierten Speicherplatzes füllt, während sich der Speichermanager2716 im Ruhezustand befindet. - d. Aktualisierung der Informationsbank
- Es folgt eine Beschreibung von Schritt 2 (
2810 ) aus28 gemäß der Implementierung in einem Ausführungsbeispiel der vorliegenden Erfindung. Zu den dabei aktualisierten Informationen zählen die Speichernutzung des Inhaltsdatenträgers, die Inhaltsnutzung, die Datenträgerliste und Informationen, die Inhaltsdateiliste und Informationen, die aktuellen Bandbreitenkosten, die Kosten für die Übertragung jeder Inhaltsdatei, die tatsächliche Popularität der Inhalte, die optimale Speichergröße für jeden Inhalt und die Pruning-Fähigkeit der Inhalte. Die Unterschritte in diesem Zustand sind in dem Diagramm aus der Abbildung aus29A dargestellt und werden nachstehend wie folgt beschrieben: - • (
2911 ) Lesen des DS-Log für alle INFO-Befehle: die Arten der INFO-Befehle, die erfasst werden, lauten CPUdate (neue oder überarbeitete Daten zu einem Datenträger), ResUpdate (neue oder überarbeitete Speicherreservierung für einen Datenträger), CPDelete (Löschen eines Datenträgers) und FileUpdate (neue oder überarbeitete Daten zu einer Datei). - • (
2912 ) Für jeden Datenträger, der von einem Info-Befehl betroffen ist, wird der Eintrag dieses Datenträgers in der Tabelle VolumeInfo aktualisiert, indem die Metadaten für den Datenträger aus dem VFCS gelesen werden. Für jede betroffene Datei wird der Eintrag in der Tabelle FileInfo für diese Datei aktualisiert, indem die aktuellen VFCS Metadaten für diese Datei gelesen werden. - • (
2913 ) Lesen des DS-Log für alle Ereignisse, welche die aktuelle Größe von Dateien beeinflussen können. Derartige Ereignisse sind PUT, REPLICATE, PREPARE, REMOVE und CLEAN, die jeweils eine ganze Datei oder eine Spur in einer Datei beeinflussen. - • (
2914 ) Für jede betroffene Spurdatei oder Datei wird der entsprechende Eintrag in der entsprechenden Tabelle TrackInfo oder FileInfo aktualisiert, indem die aktuellen Metadaten aus dem VFCS gelesen werden. - e. Abgelaufene Inhalte entfernen
- Es folgt eine Beschreibung von Schritt 2 (
2820 ) aus28 . Die Unterschritte sind in der Abbildung aus29B als Diagramm dargestellt und werden nachstehend wie folgt beschrieben: - • (
2921 &2922 ) Bestimmen, ob der Zeitpunkt gekommen ist, um eine Prüfung hinsichtlich eines Dateiablaufs vorzunehmen. Dies ist der Fall, wenn an diesem Kalendertag noch keine Prüfung in Bezug auf abgelaufene Dateien vorgenommen worden ist (2921 ) oder wenn ein Teil der Dateiinformationen nach der letzten Prüfung aktualisiert worden ist (2922 ). Wenn keine dieser Bedingungen zutrifft, wird mit diesen Schritten nicht fortgefahren. - • (
2923 ) Aus der Tabelle FileInfo eine Liste aller Dateien einholen, deren Ablaufdatum vor dem aktuellen Datum lag. (Das "Ablaufdatum" ist der letzte Tag, an dem die Datei gültig ist, so dass die Datei erst nach dem Ablaufdatum gelöscht wird.) - • (
2924 ) Für jede abgelaufene Datei wird ein FDP-Befehl REMOVE an den DS ausgegeben, um die Datei zu entfernen. - f. Bestimmen, ob ein Pruning erforderlich ist
- Es folgt eine Beschreibung von Schritt 3 (
2830 ) aus28 . Untersuchen der Speicherverfügbarkeit und der Inhaltsdatenträgerreservierung, um zu bestimmen, ob ein Pruning in diesen Zyklus erforderlich ist. Die Unter- bzw. Teilschritte sind in der Abbildung aus29C in Diagrammform dargestellt und werden nachstehend wie folgt beschrieben: - • (
2931 ) Neue Berechnung des Felds CurrentUsage (aktuelle Nutzung) in der Tabelle VolumeInfo für jeden Datenträger auf der Basis der Summe aller Werte für die aktuelle Größe für alle Spurdateien, die allen Dateien zugeordnet sind, die zu diesem Datenträger gehören. - • (
2932 ) Abfrage der Tabelle VolumeInfo in Bezug auf eine Liste aller Datenträger, deren aktuelle Nutzung oberhalb deren Alarmschwellenwerts liegt. Der Alarmschwellenwert für jeden Datenträger ist ein bestimmter prozentualer Anteil des reservierten Speicherplatzes dieses Datenträgers, wie zum Beispiel 90%. - • (
2933 ) Für jeden Datenträger, dessen Nutzung den Alarmschwellenwert überschreitet, wird ein Alarmdatensatz in der Tabelle StorageAlarmLog (Speicheralarm-Log) gesetzt. (Ein separater Prozess nimmt diesen Eintrag auf und leitet ihn an den CMS an der dem Datenträger zugeordneten Station weiter). - • (
2934 ) Abfrage der Tabelle VolumeInfo in Bezug auf eine Liste aller Datenträger, deren aktuelle Nutzung deren Pruning-Schwellenwert überschreitet. Der Pruning-Schwellenwert für jeden Datenträger ist ein bestimmter prozentualer Anteil des reservierten Speicherplatzes dieses Datenträgers an der Station, wie zum Beispiel 80%. - g. Aktualisierung des Inhaltsnutzungsverlaufs
- Dies ist der erste Abschnitt von Schritt 4 (
2840 ) aus28 . Immer, wenn bestimmt wird, dass ein oder mehrere Datenträger ein Pruning benötigen, erfolgt ein einzelner Durchlauf durch die Nutzungs-Log-Tabelle, um die Einträge zu löschen, die älter sind als ein bestimmter Zeitraum. Diese hilft dabei, sicherzustellen, dass das Nutzungs-Log bzw. Nutzungsprotokoll nicht zu groß wird. Im Allgemeinen werden Nutzungsdaten nur für die letzten 30 Tage zurückverfolgt bzw. überwacht, wobei jedoch der Zeitraum, über den die Überwachung erfolgt, einen konfigurierbaren Parameter darstellt. - h. Priorisierung von Inhalten für das Pruning
- Es folgt eine Beschreibung des Rests von Schritt 4 (
2840 ) aus28 . Die Unterschritte sind in der Abbildung aus29D in Diagrammform dargestellt und werden nachstehend beschrieben. Diese Schritte werden für jeden Datenträger aus der in dem Schritt2934 aus29C erzeugten Liste wiederholt, das heißt, für jeden Datenträger, dessen Speichernutzung oberhalb des Schwellenwertes liegt: - • (
2941 ) Aktualisieren der Nutzungszusammenfassungsinformationen in der Tabelle FileInfo für alle Dateien, die diesem Datenträger angehören, auf der Basis der Daten in der Nutzungs-Log-Tabelle. Die Felder FirstUsed, LastUsed und UsageCount in der Tabelle FileInfo werden für jede Datei aktualisiert, die diesem Datenträger angehört. - • (
2942 ) Auswahl der Dateirangordnungskriterien und der Dateischutzkriterien. Die Dateirangordnungskriterien stellen eines der Kriterien LRU, LFU, UD, LRU-k oder anderer vorstehend beschriebener Kriterien dar. Die Schutzkriterien gelten für Dateien oder Dateiabschnitte. Wenn dieser Schritt zum ersten Mal ausgeführt wird, werden Dateien, die sich im Einsatz befinden und Dateien, die erst sehr kürzlich eingeführt worden sind, werden vor einem Pruning geschützt, d. h. sie werden nicht in die Kandidatenliste aufgenommen. Ferner wird ein anfänglicher Abschnitt jeder Spur jeder Datei in der Kandidatenliste geschützt, so dass Benutzer in der Lage sind, mit einer Latenz von Null auf Dateien zuzugreifen, selbst wenn der Rest jeder Spur einem Pruning unterzogen wird. In folgenden Runden werden die Schutzkriterien gelockert, so dass mehr Dateien Kandidaten werden und mehr Bytes jeder Kandidatendatei werden für das Pruning in Betracht gezogen: zuerst werden die Latenschutzvorkehrungen aufgehoben, danach wird der Schutz der zuletzt hinzufügten Dateien aufgehoben und schließlich wird der Schutz während dem Einsatz aufgehoben. - • (
2943 ) Nutzung der Daten in der Tabelle FileInfo, um eine sortierte bzw. geordnete Liste von Kandidatendateien zu erstellen, die für das Pruning zur Verfügung stehen. Die Rangordnung basiert auf den in2942 festgelegten Kriterien. - • (
2944 ) Wenn die Kandidatenliste leer ist, erfolgt ein Rücksprung zu dem Schritt2942 und eine Lockerung der Schutzkriterien, so dass mehr Dateien in eine neue Kandidatenliste aufgenommen werden. Im anderen Fall erfolgt ein Sprung zu2945 . - • (
2945 ) Die obere bzw. führende Datei wird der Kandidatenliste aus Schritt2943 entnommen. Ein Löschziel für die Datei wird festgelegt (eine Zielanzahl von Bytes, die mittels Pruning versucht werden, daraus zu entfernen) und es wird versucht daraus Blöcke zu löschen, welche insgesamt diese vielen Bytes ergeben (Schritt 5 (2850 ) aus28 gemäß der nachstehenden Beschreibung). Das Löschziel ist abhängig von der Anzahl an Bytes, die noch erforderlich sind, um die Nutzung des Datenträgers unter den Schwellenwert zu senken sowie in Bezug auf die Rangordnungs- und Schutzkriterien, die in2942 festgelegt worden sind. Algorithmen können das Löschziel so hoch wie möglich festlegen (100% der Datei), so dass so viel wie möglich einer Kandidatendatei einem Pruning unterzogen wird, bevor die nächste Datei aus der Kandidatenliste einem Pruning unterzogen wird. Der Algorithmus Uniform Decay (einheitlicher Verfall) versucht jedoch einige Bytes aus jeder Kandidatendatei einem Pruning zu unterziehen, und zwar auf eine Art und Weise, so dass die aus jeder Datei einem Pruning unterzogene Menge umgekehrt proportional ist zu der Häufigkeit der Nutzung der Datei. - • (
2946 ) Wenn die kumulative Anzahl von Bytes, die erfolgreich aus allen Kandidatendateien gelöscht worden sind, die bislang besucht wurden, ausreicht, um die Nutzung des Datenträgers unter den Pruning-Schwellenwert zu senken, wird das Pruning ausgefürt (2947 ). Ansonsten kehrt die Steuerung zurück zu dem Schritt2944 , um die nächste Kandidatendatei für das Pruning zu untersuchen. - i. Blockdateien entfernen
- Es folgt eine Beschreibung von Schritt 5 (
2850 ) aus28 , aufgerufen aus2945 aus29D , wobei wir versuchen, Blockdateien zu löschen, die insgesamt eine bestimmte Anzahl von Bytes einer bestimmten Datei entsprechen. Wenn die Datei mehrere Tracks bzw. Spuren aufweist, können Blockdateien aus mehreren Spuren gelöscht werden. Die einfachste Strategie, die bei einer Implementierung der vorliegenden Erfindung eingesetzt wird, ist es, nacheinander jede Spur zu besuchen und mit der Auswahl von Blöcken fortzufahren, bis entweder keine Blöcke mehr aus dieser Spur gelöscht werden können oder bis die Gesamtgröße aller bislang ausgewählten Blöcke ausreicht, um das Löschziel zu erreichen. Nach der Auswahl, welche Blöcke einer Spur einem Pruning unterzogen werden sollen, gibt der Speichermanager einen FDP-Befehl "Remove" aus, um die tatsächliche Entfernung der ausgewählten Blöcke auszuführen. - Die Schritte für die Entscheidung, wie viele und welche Blöcke aus einer bestimmten Spur- bzw. Track-Dateie einem Pruning unterzogen werden sollen, sind in der Abbildung aus
29E in Diagrammform dargestellt und werden nachstehend im Text wie folgt beschrieben: - • (
2951 ) Bestimmen der zulässigen Mindestgröße (als MinRetainSize bezeichnet) für die Spur auf der Basis des Dateityps und der Schutzkriterien, die in2942 aus29D festgelegt worden sind. Die MinRetainSize ist in allen Fällen gleich 0, ausgenommen dann, wenn der Latenzschutz aktiv ist und es sich bei der Datei um eine Mediendatei oder einen anderen Dateityp handelt. Für den Fall, dass die Datei in der Tabelle TrackInfo NICHT als trunkierbar gekennzeichnet ist, stellt die MinRetainSize die ganze Spur dar (die Datei kann in keiner Weise einem Pruning ausgesetzt werden). Im anderen Fall entspricht MinRetainSize dem Maximum von: i) einer bestimmten festen Anzahl von Bytes, ii) einem bestimmten festen prozentualen Anteil der Spur, iii) ausreichend Bytes für die Unterstützung des Streaming der ersten S Sekunden der Datei, wobei S eine feste Anzahl von Sekunden bezeichnet (die Gesamtdauer D der Datei ist aus der Tabelle FileInfo bekannt, so dass der Anteil S/D der Spur für S Sekunden ausreichen sollte. - Diese festen Anzahlen aus i), ii) und iii) stellen alle konfigurierbaren Parameter dar. In einem anderen Ausführungsbeispiel der vorliegenden Erfindung kann S dynamisch angepasst werden auf der Basis der gemessenen und prognostizierten Netzwerklatenz zwischen dieser Station und anderen Stationen. Nach der Berechnung von MinRetainSize muss diese auf eine ganze Anzahl von Blöcken aufgerundet werden. Dies wird in geeigneter Weise unter Verwendung der folgenden ganzzahligen Operationen berechnet: MinRetatinSize = ((MinRetainSize + BlockSize – 1)BlockSize)·BlockSize(BlockSize = Blockgröße).
- • Berechnen der verfügbaren Größe der Spur (AvailableSize) als aktuelle Größe (CurrentSize) – MinRetainSize. Dabei handelt es sich um die Mindestanzahl von Bytes, die wir hoffen, aus dieser Spur löschen zu können. Der Wert der CurrentSize steht in der Tabelle TrackInfo zur Verfügung oder kann aus den Metadaten TrackFile gewonnen werden.
- • Wenn AvailableSize <= 0, so kann an dieser Spur kein Pruning vorgenommen werden.
- • Anpassen des Löschziels für diese Spur nach unten, sofern dies erforderlich ist, so dass das Ziel nicht größer ist als die AvailableSize.
- • Aus den Metadaten der Spurdatei eine "Bitmap" erhalten, die angibt, welche Blockdateien dieser Spur sich aktuell im Speicher befinden. Diese Bitmap ist eine Anordnung von "0ern" und "1ern", indexiert von 0 bis N – 1, wobei N der Anzahl von Blöcken in der Spur entspricht, wobei ein Wert von "0" anzeigt, dass der Block aktuell nicht im Speicher enthalten ist, und wobei eine "1" anzeigt, dass sich der Block aktuell im Speicher befindet. Zum Beispiel: 111111111110011101110101110111111111100000000000
- • Unter Verwendung der vorstehenden Bitmap werden die Anfangs- und Endblockindizes iStart und iEnd bestimmt, so dass iStart ausreichend "1er" (Blöcke, die vorhanden sind) aufweist, BEVOR es die MinRetainSize Bytes aufweist, die NICHT gelöscht werden, und es gibt ausreichend "1er" ZWISCHEN iStart und iEnd inklusive, um das Löschziel zu erfüllen. Dies ist möglich, da das Löschziel nicht größer ist (oder so angepasst wurde, dass es nicht größer ist) als die AvailableSize. Eine konkrete Methode, um iStart und iEnd auszuwählen, die in einem Ausführungsbeispiel der Erfindung eingesetzt wird, ist es, zuerst iEnd gleich dem Indes der letzten "1" in der Bitmap zu setzen, wobei iStart danach rückwärts abgetastet wird, beginnend bei iEnd, bis ausreichend "1er" gezählt worden sind, um das Löschziel zu erreichen. Diese Methode bewirkt, dass die Spurdateien stets "von dem Ende" einem Pruning ausgesetzt werden können. Andere Ausführungsbeispiele der vorliegenden erfindung können anders vorgehen, wie zum Beispiel indem iStart zuerst auf den Mindestindex gesetzt wird, der weiter MinRetainSize Bytes vorher aufweist, und wobei danach iEnd vorwärts abgetastet wird, bis ausreichend "1er" gezählt worden sind, um das Löschziel zu erreichen.
- • Ausgabe eines FDP-Befehls REMOVE an den DS, wobei dieser aufgefordert wird, alle Blöcke von iStart bis iEnd (inklusive) aus dieser Spur dieser Datei zu entfernen. (Einige dieser Blöcke können bereits nicht mehr vorhanden sein, wobei diese redundanten Löschungsanforderungen jedoch unschädlich sind.)
- • Hinzufügen der Anzahl von Bytes, die tatsächlich aus der Spur gelöscht worden sind, zu der kumulativen Summe aller Bytes, die aus dieser Datei gelöscht worden sind.
- j. Datenträgerspeichernutzung an deren CMS melden
- Es folgt eine Beschreibung von Schritt 6 (
2860 ) aus28 . Die CMS-Adresse eines Datenträgers wird in der Datenträgertabelle in dem Inhaltsspeicher gespeichert. Wenn eine Speichernutzung des Inhaltsdatenträgers den Alarmschwellenwert übersteigt und der Speichermanager keinen der Inhaltsblöcke entfernen kann, die zu dem Datenträger gehören, so benachrichtigt der Speichermanager den CMS des Datenträgers und den Netzwerkbetreiber. Nach Empfang der Benachrichtigung bzw. Mitteilung verhindert der CMS, dass der Inhalteeigentümer mehr Inhalt hochlädt, ohne dem Datenträger zusätzlichen reservierten Speicherplatz hinzuzufügen. Wenn die Nutzung des Datenträgerspeichers unter den Alarmschwellenwert sinkt, benachrichtigt der Speichermanager den CMS hinsichtlich der Aufhebung der Upload-Beschränkung. - Während dem gesamten Verwaltungszyklus meldet der Speichermanager ferner Fehler, Warnungen und die Speichernutzungsstatistiken insgesamt an das Servicemanaagement-Teilsystem.
- Der Speichermanager stellt sicher, dass der Speicherplatz insgesamt ausreichend groß ist für den insgesamt reservierten Speicherplatz für den Inhaltsdatenträger. Dies wird durchgesetzt mithilfe der Kooperation des CMS und des lernenden Agenten bzw. des Lernagenten an einer Station. Der Speichermanager informiert den CMS bezüglich der Speichernutzung jedes Datenträgers. Er sendet ferner eine Alarm- bzw. Warnmeldung an den CMS, wenn sich eine Datenträgernutzung jenseits des Sicherheitsschwellenwertes befindet. Der CMS kann es verhindern, dass der Inhalteeigentümer bzw. Content Owner des Datenträgers dem Netzwerk neue Inhalte hinzufügt. Der lernende Agent kann dessen Lernen von Inhalten aussetzen, wenn ein Datenträger dessen Quote überschreitet.
- 6. Rechenumgebung
- Die vorliegende Erfindung kann in Software, Hardware oder einer Kombination beider implementiert werden sowie unter Verwendung eines oder mehrerer Computersysteme oder Verarbeitungssysteme. Ein Beispiel für ein Computersystem, das eingesetzt werden kann, um zum Beispiel einen Content Management Server
170 , einen Content Provider Client130 , einen Verteilungsserver in einem Cluster DSC410 , eine Steuereinheit450 , einen Anwendungsserver, ein VFCS470 ,1800 oder jede andere Rechenplattform zu implementieren (hierin auch als "Maschinen", "Vorrichtungen", "Geräte" oder "Server" bezeichnet), ist das Computersystem3100 , das in der Abbildung aus31 dargestellt ist. Das Computersystem3100 weist einen oder mehrere Prozessoren auf, wie etwa den Prozessor3104 . Der Prozessor3104 ist mit einer Kommunikationsinfrastruktur3106 (z. B. einem Bus oder einem Netzwerk) verbunden. Verschiedene Ausführungsbeispiele können in Bezug auf dieses beispielhafte Computersystem beschrieben werden. Nach dem Lesen der vorliegenden Beschreibung ist es für den Fachmann auf dem Gebiet jedoch erkennbar, wie die Erfindung unter Verwendung anderer Computersysteme und/oder Computerarchitekturen implementiert werden kann. - Das Computersystem
3100 kann auch einen Hauptspeicher3108 aufweisen, vorzugsweise einen Direktzugriffsspeicher (RAM), und es kann ferner einen sekundären Speicher3110 aufweisen. Der sekundäre Speicher3110 kann zum Beispiel ein Festplattenlaufwerk3112 und/oder ein entfernbares bzw. Wechselspeicherlaufwerk3114 aufweisen, das ein Floppy-Diskettenlaufwerk, ein Magnetbandlaufwerk, ein optisches Plattenlaufwerk, etc. darstellt. Das Wechselspeicherlaufwerk3114 liest aus einer entfernbaren bzw. Wechselspeichereinheit3118 bzw. beschreibt diese auf allgemein bekannte Art und Weise. Die Wechselspeichereinheit3118 stellt eine Floppy-Diskette, ein Magnetband, eine optische Disk, etc. dar. Wie dies erkennbar ist, weist die Wechselspeichereinheit3118 ein in einem Computer einsetzbares Speichermedium auf, auf dem Computersoftware und/oder Daten gespeichert sind. - Der sekundäre Speicher
3110 kann auch weitere ähnliche Einrichtungen aufweisen, die es ermöglichen, dass Computerprogramme oder Eingabedaten in das Computersystem3100 geladen werden. Zu derartigen Einrichtungen können zum Beispiel eine Wechselspeichereinheit3122 und eine Schnittstelle3120 zählen. Zu den Beispielen dafür zählen eine Programmkassette und eine Kassettenschnittstelle (wie diese etwa in Videospielvorrichtungen vorhanden sind), ein Wechselspeicherchip (wie etwa ein EPROM oder PROM) und ein zugeordneter Steckplatz sowie sonstige Wechselspeichereinheiten3122 und Schnittstellen3120 , die es ermöglichen, dass Software und Daten von der Wechselspeichereinheit3122 zu dem Computersystem3100 übertragen werden. - Das Computersystem
3100 kann ferner eine Kommunikationsschnittstelle3124 aufweisen. Die Kommunikationsschnittstelle3124 ermöglicht es, dass Software und Daten zwischen dem Computersystem3100 und externen Vorrichtungen übertragen werden. Zu den Beispielen für die Kommunikationsschnittstelle3124 können unter anderem ein Modem, eine Netzwerkkarte (z. B. eine Ethernet-Karte), ein Kommunikations-Port, ein PCMCIA-Steckplatz und eine PCMCIA-Karte, etc. zählen. Software und Daten, die über die Kommunikationsschnittstelle3124 übertragen werden, sind in Form von Signalen3128 gegeben, bei denen es sich um elektronische, elektromagnetische, optische oder andere Signale handeln kann, die von der Kommunikationsschnittstelle3124 empfangen werden können. Diese Signale3128 werden an die Kommunikationsschnittstelle3124 über einen Kommunikationspfad (d. h. Kanal)3126 bereitgestellt. Dieser Kanal3126 führt Signale3128 in das und aus dem Computersystem3100 und kann implementiert werden unter Verwendung von Draht oder Kabel, Lichtwellenleitern, einer Telefonleitung, eines Mobiltelefonvermittlungsabschnitts, eines HF-Links und sonstiger Kommunikationskanäle. - In einem Ausführungsbeispiel der vorliegenden Erfindung können die Signale
3128 Inhalte oder verschiedene Signale, die von Prozessen erzeugt werden, die auf dem Computersystem3100 erzeugt werden, übermitteln, um Blockdateien zu erfassen bzw. zu senden und um das Zusammensetzen einer Nutzlast zu verwalten. - In dem vorliegenden Dokument werden die Begriffe "Computerprogrammmedium" und "in einem Computer einsetzbares Medium" eingesetzt, um allgemein Medien zu bezeichnen, wie etwa ein Wechselspeicherlaufwerk
3114 , eine in einem Festplattenlaufwerk3112 installierte Festplatte und die Signale3128 . Diese Computerprogrammprodukte sind Einrichtungen, die Software an das Computersystem3100 bereitstellen. Die vorliegende Erfindung weist derartige Computerprogrammprodukte auf. - Computerprogramme (auch als Computersteuerlogik bezeichnet) werden in dem Hauptspeicher
3108 und/oder dem sekundären Speicher3110 gespeichert. Die Computerprogramme können auch über die Kommunikationsschnittstelle3124 empfangen werden. Wenn derartige Computerprogramme ausgeführt werden, ermöglichen sie es, dass das Computersystem3100 die Merkmale der vorliegenden Erfindung ausführt, wie dies hierin beschrieben ist. Im Besonderen ermöglichen es die Computerprogramme, wenn sie ausgeführt werden, dass der Prozessor3104 die Merkmale der vorliegenden Erfindung ausführt. Folglich stellen derartige Computerprogramme Steuereinheiten des Computersystems3100 dar. - D. Schlussfolgerung
- Zu den Vorteilen der vorliegenden Erfindung zählen die Fähigkeiten, Dateisystemobjekte von jedem Knoten eines Netzwerks von Knoten zu speichern, zu verteilen, zu verwalten und zu synchronisieren, ohne die Darstellung des Objekts an den Benutzer zu verzögern, wobei aber auch gleichzeitig nur ein Mindestmaß an Speicherplatz erforderlich ist. Die Erfindung ermöglicht die Festlegung und Durchsetzung von Servicequalitätsrichtlinien über eine generische Dateisystemschnittstelle. Die Erfindung integriert Speichervorrichtungen und Dateisysteme in einem lokalen oder Wide Area-Netzwerk und sorgt dafür, dass die Vorrichtungen als eine mit einer integrierten Dateisystemansicht funktionieren. Ein Dateisystemserver gemäß der vorliegenden Erfindung ist in der Lage, ein "selektives und dynamisches Caching" auszuführen, um Endbenutzern eine riesige Bibliothek von Inhalten bereitzustellen, mit begrenzten Speicher- und Netzwerkressourcen. Die Dateiserver sind zu Clustern zusammengefasst, die durch eine zustandslose Lastverteilungseinrichtung unterstützt werden können.
- Die vorstehende Beschreibung der Ausführungsbeispiele dient dazu, es Fachleuten auf dem Gebiet zu ermöglichen, die vorliegende Erfindung zu implementieren oder zu nutzen. Die Erfindung wurde zwar speziell in Bezug auf deren Ausführungsbeispiele dargestellt und beschrieben, wobei hiermit für den Fachmann auf dem Gebiet festgestellt wird, dass verschiedene Abänderungen in Bezug auf Ausführung und Einzelheiten diesbezüglich vorgenommen werden können, ohne dabei vom Umfang der vorliegenden Erfindung abzuweichen, der durch die folgenden Ansprüche definiert ist.
Claims (5)
- Verfahren zur effizienten Speicherverwaltung (
420 ) in einem verteilten Netzwerk (100 ) mit einer Mehrzahl von verbundenen Knoten, wobei das Verfahren die folgenden Schritte umfasst: das Bestimmen (2830 ,2934 ), wenn ein bestimmter Dateispeicherparameter einen Pruning-Schwellenwert überschreitet; und das Ausführen eines Pruning-Zyklus, wobei dies folgendes aufweist: (a) das Identifizieren (2840 ) der dem Speicher zugeordneten Inhaltskomponenten; (b) das selektive Pruning (2850 ) der Inhaltskomponenten zumindest teilweise auf der Basis der Nutzungsstatistik, so dass der Dateispeicherparameter auf einen Wert unterhalb des Pruning-Schwellenwerts reduziert wird; und (c) das Aktualisieren von Metadaten (2860 ), die den Inhaltskomponenten zugeordnet sind, um die aktualisierten Speichersystemparameter zu reflektieren; gekennzeichnet durch: (d) das Präsentieren des Inhalts des aktualisierten Speichernetzwerks als ein virtuelles Dateisystem, so dass alle Dateien für jeden Knoten lokal zugänglich erscheinen. - Verfahren nach Anspruch 1, wobei dieses ferner den folgenden Schritt umfasst: das Bereitstellen der Dateien an Benutzer unabhängig von der physikalischen Position der Inahltskomponenten.
- Verfahren nach Anspruch 2, wobei dieses ferner den folgenden Schritt umfasst: das Bereitstellen der Dateien an Benutzer mit der gleichen Rate, wie dies möglich wäre, wenn die ganze Datei lokal gespeichert werden würde.
- Verfahren nach Anspruch 3, wobei: der Schritt des Bereitstellens weniger Netzwerkübertragungsverkehr insgesamt erfordert, als wie dieser erforderlich wäre, wenn die ganze Datei über einen einzigen Knoten dem Benutzer bereitgestellt werden würde.
- Verfahren nach Anspruch 2, wobei: der Schritt des Bereitstellens parallel zu dem Pruning-Schritt ausgeführt wird.
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26628600P | 2000-10-26 | 2000-10-26 | |
US266286P | 2000-10-26 | ||
US27840901P | 2001-03-23 | 2001-03-23 | |
US27840801P | 2001-03-23 | 2001-03-23 | |
US27846901P | 2001-03-23 | 2001-03-23 | |
US27828501P | 2001-03-23 | 2001-03-23 | |
US278408P | 2001-03-23 | ||
US278409P | 2001-03-23 | ||
US278285P | 2001-03-23 | ||
US278469P | 2001-03-23 | ||
US09/681,644 US6970939B2 (en) | 2000-10-26 | 2001-05-15 | Method and apparatus for large payload distribution in a network |
US681644 | 2001-05-15 | ||
PCT/US2001/042785 WO2002035359A2 (en) | 2000-10-26 | 2001-10-26 | Method and system for managing distributed content and related metadata |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60131900D1 DE60131900D1 (de) | 2008-01-24 |
DE60131900T2 true DE60131900T2 (de) | 2008-12-04 |
Family
ID=27559463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60131900T Expired - Lifetime DE60131900T2 (de) | 2000-10-26 | 2001-10-26 | Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten |
Country Status (7)
Country | Link |
---|---|
US (1) | US7272613B2 (de) |
EP (1) | EP1364510B1 (de) |
AT (1) | ATE381191T1 (de) |
AU (1) | AU2002214659A1 (de) |
DE (1) | DE60131900T2 (de) |
HK (1) | HK1058279A1 (de) |
WO (1) | WO2002035359A2 (de) |
Families Citing this family (1277)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058696B1 (en) * | 1996-11-22 | 2006-06-06 | Mangosoft Corporation | Internet-based shared file service with native PC client access and semantics |
US6453334B1 (en) | 1997-06-16 | 2002-09-17 | Streamtheory, Inc. | Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching |
US7281168B1 (en) | 2000-03-03 | 2007-10-09 | Intel Corporation | Failover architecture for local devices that access remote storage |
US7203731B1 (en) | 2000-03-03 | 2007-04-10 | Intel Corporation | Dynamic replication of files in a network storage system |
US7266555B1 (en) | 2000-03-03 | 2007-09-04 | Intel Corporation | Methods and apparatus for accessing remote storage through use of a local device |
US6952737B1 (en) * | 2000-03-03 | 2005-10-04 | Intel Corporation | Method and apparatus for accessing remote storage in a distributed storage cluster architecture |
US7428540B1 (en) | 2000-03-03 | 2008-09-23 | Intel Corporation | Network storage system |
US7506034B2 (en) * | 2000-03-03 | 2009-03-17 | Intel Corporation | Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user |
US7380007B1 (en) * | 2000-06-30 | 2008-05-27 | Aol Llc, A Delaware Limited Liability Company | Automatic user session |
US8281022B1 (en) * | 2000-06-30 | 2012-10-02 | Emc Corporation | Method and apparatus for implementing high-performance, scaleable data processing and storage systems |
AU2002248158A1 (en) * | 2000-11-02 | 2002-08-12 | Pirus Networks | Tcp/udp acceleration |
US8831995B2 (en) | 2000-11-06 | 2014-09-09 | Numecent Holdings, Inc. | Optimized server for streamed applications |
US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US6912543B2 (en) * | 2000-11-14 | 2005-06-28 | International Business Machines Corporation | Object-oriented method and system for transferring a file system |
US7596139B2 (en) | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
US7346928B1 (en) * | 2000-12-01 | 2008-03-18 | Network Appliance, Inc. | Decentralized appliance virus scanning |
US7778981B2 (en) * | 2000-12-01 | 2010-08-17 | Netapp, Inc. | Policy engine to control the servicing of requests received by a storage server |
US7266556B1 (en) | 2000-12-29 | 2007-09-04 | Intel Corporation | Failover architecture for a distributed storage system |
US7627897B2 (en) * | 2001-01-03 | 2009-12-01 | Portauthority Technologies Inc. | Method and apparatus for a reactive defense against illegal distribution of multimedia content in file sharing networks |
US7788335B2 (en) | 2001-01-11 | 2010-08-31 | F5 Networks, Inc. | Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system |
US20040133606A1 (en) | 2003-01-02 | 2004-07-08 | Z-Force Communications, Inc. | Directory aggregation for files distributed over a plurality of servers in a switched file system |
US8195760B2 (en) | 2001-01-11 | 2012-06-05 | F5 Networks, Inc. | File aggregation in a switched file system |
US8239354B2 (en) | 2005-03-03 | 2012-08-07 | F5 Networks, Inc. | System and method for managing small-size files in an aggregated file system |
US7509322B2 (en) | 2001-01-11 | 2009-03-24 | F5 Networks, Inc. | Aggregated lock management for locking aggregated files in a switched file system |
US7512673B2 (en) | 2001-01-11 | 2009-03-31 | Attune Systems, Inc. | Rule based aggregation of files and transactions in a switched file system |
JP2005502096A (ja) | 2001-01-11 | 2005-01-20 | ゼット−フォース コミュニケイションズ インコーポレイテッド | ファイルスイッチ及び交換ファイルシステム |
US20040019658A1 (en) * | 2001-03-26 | 2004-01-29 | Microsoft Corporation | Metadata retrieval protocols and namespace identifiers |
US6643845B2 (en) * | 2001-04-16 | 2003-11-11 | Handyglove, Llc | Magnetic work glove |
US7110525B1 (en) | 2001-06-25 | 2006-09-19 | Toby Heller | Agent training sensitive call routing system |
EP1298878A1 (de) * | 2001-09-26 | 2003-04-02 | Telefonaktiebolaget L M Ericsson (Publ) | Hierarchische Cachespeicherung in Telekommunikationsnetzen |
US7415539B2 (en) * | 2001-09-28 | 2008-08-19 | Siebel Systems, Inc. | Method and apparatus for detecting insufficient memory for data extraction processes |
JP2003131924A (ja) * | 2001-10-19 | 2003-05-09 | Fujitsu Ltd | リモートアクセスプログラム、リモートアクセス要求処理プログラム、およびクライアントコンピュータ |
US7958199B2 (en) * | 2001-11-02 | 2011-06-07 | Oracle America, Inc. | Switching systems and methods for storage management in digital networks |
FI115358B (fi) * | 2001-11-05 | 2005-04-15 | Nokia Corp | Tilaton kuormanjako |
US7194563B2 (en) * | 2001-12-05 | 2007-03-20 | Scientific-Atlanta, Inc. | Disk driver cluster management of time shift buffer with file allocation table structure |
ATE497207T1 (de) * | 2001-12-06 | 2011-02-15 | Toyota Motor Sales Usa Inc | Fahrzeug-abspiel-system |
US7962011B2 (en) | 2001-12-06 | 2011-06-14 | Plourde Jr Harold J | Controlling substantially constant buffer capacity for personal video recording with consistent user interface of available disk space |
US20030108044A1 (en) * | 2001-12-11 | 2003-06-12 | Roland Hendel | Stateless TCP/IP protocol |
US7360034B1 (en) * | 2001-12-28 | 2008-04-15 | Network Appliance, Inc. | Architecture for creating and maintaining virtual filers on a filer |
US6931410B2 (en) * | 2002-01-11 | 2005-08-16 | International Business Machines Corporation | Method, apparatus, and program for separate representations of file system locations from referring file systems |
US20030142129A1 (en) * | 2002-01-31 | 2003-07-31 | Kleven Michael L. | Content processing and distribution systems and processes |
US7043503B2 (en) * | 2002-02-15 | 2006-05-09 | International Business Machines Corporation | Ditto address indicating true disk address for actual data blocks stored in one of an inode of the file system and subsequent snapshot |
US7117201B2 (en) * | 2002-03-20 | 2006-10-03 | Hewlett-Packard Development Company, L.P. | Resource searching |
US7096228B2 (en) * | 2002-03-27 | 2006-08-22 | Microsoft Corporation | Method and system for managing data records on a computer network |
WO2003087982A2 (en) | 2002-04-08 | 2003-10-23 | Cyanea Systems Corp. | Method and system for problem determination in distributed enterprise applications |
GB2387684A (en) * | 2002-04-19 | 2003-10-22 | Hewlett Packard Co | Management of a long term digital document storage system |
US7526519B2 (en) * | 2002-05-01 | 2009-04-28 | Bea Systems, Inc. | High availability application view deployment |
US7468975B1 (en) | 2002-05-06 | 2008-12-23 | Foundry Networks, Inc. | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US7187687B1 (en) | 2002-05-06 | 2007-03-06 | Foundry Networks, Inc. | Pipeline method and system for switching packets |
US20030220860A1 (en) * | 2002-05-24 | 2003-11-27 | Hewlett-Packard Development Company,L.P. | Knowledge discovery through an analytic learning cycle |
US20040039754A1 (en) * | 2002-05-31 | 2004-02-26 | Harple Daniel L. | Method and system for cataloging and managing the distribution of distributed digital assets |
US7219096B2 (en) * | 2002-06-06 | 2007-05-15 | International Business Machines Corporation | Method for migrating open files on a busy file system |
US9344235B1 (en) * | 2002-06-07 | 2016-05-17 | Datacore Software Corporation | Network managed volumes |
US7089323B2 (en) * | 2002-06-21 | 2006-08-08 | Microsoft Corporation | Method for multicasting a message on a computer network |
US7870244B2 (en) * | 2002-06-25 | 2011-01-11 | International Business Machines Corporation | Monitoring performance of applications in a distributed environment |
JP3687631B2 (ja) * | 2002-06-26 | 2005-08-24 | 日本電気株式会社 | コンテンツ配信システム、コンテンツ配信方法、無線回線制御装置及びプログラム |
US7334099B2 (en) * | 2002-06-28 | 2008-02-19 | Microsoft Corporation | Method and system for managing image files |
US7293150B2 (en) | 2002-06-28 | 2007-11-06 | Microsoft Corporation | Method and system for creating and restoring an image file |
US7362349B2 (en) * | 2002-07-10 | 2008-04-22 | Seiko Epson Corporation | Multi-participant conference system with controllable content delivery using a client monitor back-channel |
JP4240930B2 (ja) | 2002-07-15 | 2009-03-18 | 株式会社日立製作所 | 複数ネットワークストレージの仮送想一元化方法及び装置 |
JP2004054721A (ja) * | 2002-07-23 | 2004-02-19 | Hitachi Ltd | ネットワークストレージ仮想化方法 |
US7289500B1 (en) * | 2003-07-17 | 2007-10-30 | Novell, Inc. | Method and system for reliable multicast data transmission |
US7047321B1 (en) * | 2002-08-26 | 2006-05-16 | Network Appliance, Inc. | Unblocking an operating system thread for managing input/output requests to hardware devices |
US7882081B2 (en) * | 2002-08-30 | 2011-02-01 | Netapp, Inc. | Optimized disk repository for the storage and retrieval of mostly sequential data |
US7146389B2 (en) * | 2002-08-30 | 2006-12-05 | Hitachi, Ltd. | Method for rebalancing free disk space among network storages virtualized into a single file system view |
CA2497305A1 (en) * | 2002-09-10 | 2004-03-25 | Exagrid Systems, Inc. | Primary and remote data backup with nodal failover |
US8181205B2 (en) | 2002-09-24 | 2012-05-15 | Russ Samuel H | PVR channel and PVR IPG information |
US20040068523A1 (en) * | 2002-10-07 | 2004-04-08 | Keith Robert Olan | Method and system for full asynchronous master-to-master file synchronization |
US7509645B2 (en) * | 2002-10-17 | 2009-03-24 | Intel Corporation | Methods and apparatus for load balancing storage nodes in a distributed network attached storage system |
US20040093427A1 (en) * | 2002-10-29 | 2004-05-13 | Lopez Ricardo Jorge | Service diversity for communication system |
US7991827B1 (en) | 2002-11-13 | 2011-08-02 | Mcafee, Inc. | Network analysis system and method utilizing collected metadata |
US7567993B2 (en) | 2002-12-09 | 2009-07-28 | Netapp, Inc. | Method and system for creating and using removable disk based copies of backup data |
US8024172B2 (en) | 2002-12-09 | 2011-09-20 | Netapp, Inc. | Method and system for emulating tape libraries |
US9314691B2 (en) | 2002-12-10 | 2016-04-19 | Sony Computer Entertainment America Llc | System and method for compressing video frames or portions thereof based on feedback information from a client device |
US8549574B2 (en) | 2002-12-10 | 2013-10-01 | Ol2, Inc. | Method of combining linear content and interactive content compressed together as streaming interactive video |
US8366552B2 (en) | 2002-12-10 | 2013-02-05 | Ol2, Inc. | System and method for multi-stream video compression |
US10201760B2 (en) | 2002-12-10 | 2019-02-12 | Sony Interactive Entertainment America Llc | System and method for compressing video based on detected intraframe motion |
US9192859B2 (en) | 2002-12-10 | 2015-11-24 | Sony Computer Entertainment America Llc | System and method for compressing video based on latency measurements and other feedback |
US20090118019A1 (en) | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US9446305B2 (en) | 2002-12-10 | 2016-09-20 | Sony Interactive Entertainment America Llc | System and method for improving the graphics performance of hosted applications |
US8711923B2 (en) | 2002-12-10 | 2014-04-29 | Ol2, Inc. | System and method for selecting a video encoding format based on feedback data |
US8964830B2 (en) | 2002-12-10 | 2015-02-24 | Ol2, Inc. | System and method for multi-stream video compression using multiple encoding formats |
US9138644B2 (en) | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US9108107B2 (en) | 2002-12-10 | 2015-08-18 | Sony Computer Entertainment America Llc | Hosting and broadcasting virtual events using streaming interactive video |
US9077991B2 (en) | 2002-12-10 | 2015-07-07 | Sony Computer Entertainment America Llc | System and method for utilizing forward error correction with video compression |
US9061207B2 (en) | 2002-12-10 | 2015-06-23 | Sony Computer Entertainment America Llc | Temporary decoder apparatus and method |
US8526490B2 (en) | 2002-12-10 | 2013-09-03 | Ol2, Inc. | System and method for video compression using feedback including data related to the successful receipt of video content |
US20040128269A1 (en) * | 2002-12-27 | 2004-07-01 | Milligan Charles A. | System and method for managing data through families of inter-related metadata tables |
US7877511B1 (en) | 2003-01-13 | 2011-01-25 | F5 Networks, Inc. | Method and apparatus for adaptive services networking |
US9372870B1 (en) | 2003-01-21 | 2016-06-21 | Peer Fusion, Inc. | Peer to peer code generator and decoder for digital systems and cluster storage system |
US8626820B1 (en) | 2003-01-21 | 2014-01-07 | Peer Fusion, Inc. | Peer to peer code generator and decoder for digital systems |
JP2004234158A (ja) * | 2003-01-29 | 2004-08-19 | Sony Corp | 情報処理装置、およびコンテンツ管理方法、コンテンツ情報管理方法、並びにコンピュータ・プログラム |
US7240361B2 (en) * | 2003-01-31 | 2007-07-03 | Qwest Communications International Inc. | Systems and methods for controlled transmittance in a telecommunication system |
JP2004234558A (ja) * | 2003-01-31 | 2004-08-19 | Hitachi Ltd | 記憶デバイス制御装置、及びプログラム |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US7890633B2 (en) * | 2003-02-13 | 2011-02-15 | Oracle America, Inc. | System and method of extending virtual address resolution for mapping networks |
WO2004073657A2 (en) * | 2003-02-19 | 2004-09-02 | Protein Design Labs, Inc. | Methods of diagnosis of cancer and other diseases, composition and methods of screening for modulators of cancer and other diseases |
US20040179538A1 (en) * | 2003-03-13 | 2004-09-16 | Makofka Douglas S. | System and method for delivery network resource management in a broadband |
JP4265245B2 (ja) * | 2003-03-17 | 2009-05-20 | 株式会社日立製作所 | 計算機システム |
US7216253B2 (en) * | 2003-03-26 | 2007-05-08 | Pillar Data Systems, Inc. | Methods and systems for management of systems metadata |
JP2004295464A (ja) * | 2003-03-27 | 2004-10-21 | Hitachi Ltd | 計算機システム |
US20040215802A1 (en) * | 2003-04-08 | 2004-10-28 | Lisa Amini | System and method for resource-efficient live media streaming to heterogeneous clients |
US20040215747A1 (en) * | 2003-04-11 | 2004-10-28 | Jonathan Maron | System and method for a configuration repository |
WO2004097624A1 (en) * | 2003-04-24 | 2004-11-11 | Neopath Networks, Inc. | Large file support for a network file server |
US7587422B2 (en) * | 2003-04-24 | 2009-09-08 | Neopath Networks, Inc. | Transparent file replication using namespace replication |
US7346664B2 (en) * | 2003-04-24 | 2008-03-18 | Neopath Networks, Inc. | Transparent file migration using namespace replication |
US9420072B2 (en) | 2003-04-25 | 2016-08-16 | Z124 | Smartphone databoost |
US20040236830A1 (en) * | 2003-05-15 | 2004-11-25 | Steve Nelson | Annotation management system |
US6901072B1 (en) | 2003-05-15 | 2005-05-31 | Foundry Networks, Inc. | System and method for high speed packet transmission implementing dual transmit and receive pipelines |
JP3663199B2 (ja) * | 2003-05-16 | 2005-06-22 | 三洋電機株式会社 | 迷惑メール自動判定機能を有する通信装置 |
US20040230655A1 (en) * | 2003-05-16 | 2004-11-18 | Chia-Hsin Li | Method and system for media playback architecture |
JP4562115B2 (ja) * | 2003-06-11 | 2010-10-13 | ソニー株式会社 | ファイル生成装置および方法、プログラム、並びに記録媒体 |
US8533254B1 (en) * | 2003-06-17 | 2013-09-10 | F5 Networks, Inc. | Method and system for replicating content over a network |
US20040267705A1 (en) * | 2003-06-17 | 2004-12-30 | Connie Lemus | Memory with file deletion system |
EP1634176B1 (de) * | 2003-06-18 | 2014-07-02 | Fujitsu Technology Solutions Intellectual Property GmbH | Clusteranordnung für dezentrale lastverteilung |
WO2005008439A2 (en) * | 2003-07-11 | 2005-01-27 | Computer Associates Think, Inc. | San/storage self-healing/capacity planning system and method |
US7349906B2 (en) * | 2003-07-15 | 2008-03-25 | Hewlett-Packard Development Company, L.P. | System and method having improved efficiency for distributing a file among a plurality of recipients |
US7650563B2 (en) * | 2003-07-18 | 2010-01-19 | Microsoft Corporation | Aggregating metadata for media content from multiple devices |
KR100984497B1 (ko) * | 2003-07-24 | 2010-10-01 | 파나소닉 주식회사 | 파일 관리 방법 및 정보 처리 장치 |
US7379989B2 (en) * | 2003-07-31 | 2008-05-27 | International Business Machines Corporation | Method for dual agent processes and dual active server processes |
US8112449B2 (en) * | 2003-08-01 | 2012-02-07 | Qwest Communications International Inc. | Systems and methods for implementing a content object access point |
US7536674B2 (en) * | 2003-08-13 | 2009-05-19 | Intel Corporation | Method and system for configuring network processing software to exploit packet flow data locality |
JP2005071227A (ja) * | 2003-08-27 | 2005-03-17 | Sony Corp | メタデータ流通管理システム,メタデータ流通管理装置,個人別メタデータ管理装置,クライアント端末,メタデータ流通管理方法およびコンピュータプログラム |
US20050050243A1 (en) * | 2003-08-29 | 2005-03-03 | Clark Stacey A. | Modified core-edge topology for a fibre channel network |
US7143112B2 (en) | 2003-09-10 | 2006-11-28 | Hitachi, Ltd. | Method and apparatus for data integration |
US8539081B2 (en) * | 2003-09-15 | 2013-09-17 | Neopath Networks, Inc. | Enabling proxy services using referral mechanisms |
JP4257783B2 (ja) * | 2003-10-23 | 2009-04-22 | 株式会社日立製作所 | 論理分割可能な記憶装置及び記憶装置システム |
US7127545B1 (en) * | 2003-11-19 | 2006-10-24 | Veritas Operating Corporation | System and method for dynamically loadable storage device I/O policy modules |
US7333993B2 (en) * | 2003-11-25 | 2008-02-19 | Network Appliance, Inc. | Adaptive file readahead technique for multiple read streams |
US9075851B2 (en) * | 2003-12-09 | 2015-07-07 | Emc Corporation | Method and apparatus for data retention in a storage system |
US20050131965A1 (en) * | 2003-12-11 | 2005-06-16 | Lam Wai T. | System and method for replicating data |
EP1545059B1 (de) * | 2003-12-16 | 2007-03-07 | Alcatel | Anordnung mit einem Terminal, einem Zugangsmultiplexer und einem Netzwerk |
US8103772B2 (en) | 2003-12-24 | 2012-01-24 | Sap Aktiengesellschaft | Cluster extension in distributed systems using tree method |
US8499078B2 (en) * | 2003-12-24 | 2013-07-30 | Sap Aktiengesellschaft | Address generation in distributed systems using tree method |
US20050216823A1 (en) * | 2003-12-30 | 2005-09-29 | Microsoft Corporation | Assigning textual ads based on article history |
US8386503B2 (en) | 2004-01-16 | 2013-02-26 | International Business Machines Corporation | Method and apparatus for entity removal from a content management solution implementing time-based flagging for certainty in a relational database environment |
US20050165912A1 (en) * | 2004-01-23 | 2005-07-28 | Colbeck Scott J. | GUI-based grid computing data management apparatus method and system |
JP4227035B2 (ja) | 2004-02-03 | 2009-02-18 | 株式会社日立製作所 | 計算機システム、管理装置、ストレージ装置及びコンピュータ装置 |
JP4859348B2 (ja) * | 2004-02-18 | 2012-01-25 | 大日本印刷株式会社 | コンピュータシステム |
US7680864B2 (en) * | 2004-03-02 | 2010-03-16 | Intel Corporation | Method and apparatus for managing access to stored objects based on retention policy |
WO2005099188A1 (ja) * | 2004-03-05 | 2005-10-20 | Nec Corporation | 通信品質管理方法および装置 |
US7698699B2 (en) * | 2004-03-22 | 2010-04-13 | Microsoft Corporation | Computing device with relatively limited storage space and operating/file system thereof |
US8069192B2 (en) * | 2004-03-22 | 2011-11-29 | Microsoft Corporation | Computing device with relatively limited storage space and operating / file system thereof |
US7817659B2 (en) * | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US7167880B2 (en) * | 2004-04-14 | 2007-01-23 | Hitachi, Ltd. | Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling |
US7418454B2 (en) | 2004-04-16 | 2008-08-26 | Microsoft Corporation | Data overlay, self-organized metadata overlay, and application level multicasting |
US8190741B2 (en) * | 2004-04-23 | 2012-05-29 | Neopath Networks, Inc. | Customizing a namespace in a decentralized storage environment |
US8195627B2 (en) | 2004-04-23 | 2012-06-05 | Neopath Networks, Inc. | Storage policy monitoring for a storage network |
US7720796B2 (en) * | 2004-04-23 | 2010-05-18 | Neopath Networks, Inc. | Directory and file mirroring for migration, snapshot, and replication |
US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
US8108429B2 (en) | 2004-05-07 | 2012-01-31 | Quest Software, Inc. | System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services |
US7565661B2 (en) | 2004-05-10 | 2009-07-21 | Siew Yong Sim-Tang | Method and system for real-time event journaling to provide enterprise data services |
US7649854B2 (en) * | 2004-05-19 | 2010-01-19 | Bea Systems, Inc. | System and method for providing channels in application servers and transaction-based systems |
EP1759311A2 (de) * | 2004-05-21 | 2007-03-07 | Computer Associates Think, Inc. | Ununterbrochene datenbank-index-umorganisation bzw. verschiebung |
US7707618B1 (en) * | 2004-05-28 | 2010-04-27 | Netapp, Inc. | System and method for implementing access controls using file protocol rule sets |
US7209967B2 (en) * | 2004-06-01 | 2007-04-24 | Hitachi, Ltd. | Dynamic load balancing of a storage system |
US7631098B2 (en) * | 2004-06-08 | 2009-12-08 | International Business Machines Corporation | Method, system and program product for optimized concurrent data download within a grid computing environment |
US7680834B1 (en) | 2004-06-08 | 2010-03-16 | Bakbone Software, Inc. | Method and system for no downtime resychronization for real-time, continuous data protection |
GB0412815D0 (en) * | 2004-06-09 | 2004-07-14 | Hewlett Packard Development Co | Pathname translation method and system |
US7685128B2 (en) * | 2004-06-10 | 2010-03-23 | International Business Machines Corporation | Remote access agent for caching in a SAN file system |
US7536693B1 (en) * | 2004-06-30 | 2009-05-19 | Sun Microsystems, Inc. | Method for load spreading of requests in a distributed data storage system |
US7552356B1 (en) | 2004-06-30 | 2009-06-23 | Sun Microsystems, Inc. | Distributed data storage system for fixed content |
US7734643B1 (en) | 2004-06-30 | 2010-06-08 | Oracle America, Inc. | Method for distributed storage of data |
US20060041580A1 (en) * | 2004-07-09 | 2006-02-23 | Intransa, Inc. | Method and system for managing distributed storage |
US7277985B2 (en) | 2004-07-13 | 2007-10-02 | International Business Machines Corporation | Method, system and program product for storing downloadable content on a plurality of enterprise storage system (ESS) cells |
US20060031230A1 (en) * | 2004-07-21 | 2006-02-09 | Kumar Sinha M | Data storage systems |
US7640274B2 (en) * | 2004-07-21 | 2009-12-29 | Tinker Jeffrey L | Distributed storage architecture based on block map caching and VFS stackable file system modules |
US8412685B2 (en) * | 2004-07-26 | 2013-04-02 | Riverbed Technology, Inc. | Method and system for managing data |
US7657581B2 (en) * | 2004-07-29 | 2010-02-02 | Archivas, Inc. | Metadata management for fixed content distributed data storage |
JP4626210B2 (ja) * | 2004-07-30 | 2011-02-02 | ソニー株式会社 | コンテンツ提供システム,コンテンツ提供サーバ,情報処理装置およびコンピュータプログラム |
US8521687B2 (en) * | 2004-08-03 | 2013-08-27 | International Business Machines Corporation | Apparatus, system, and method for selecting optimal replica sources in a grid computing environment |
US8832595B2 (en) * | 2004-08-06 | 2014-09-09 | Nokia Corporation | Mobile communications terminal and method |
US8335807B1 (en) * | 2004-08-30 | 2012-12-18 | Sprint Communications Company, L.P. | File distribution system and method |
US7979404B2 (en) | 2004-09-17 | 2011-07-12 | Quest Software, Inc. | Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data |
WO2006036811A2 (en) * | 2004-09-22 | 2006-04-06 | Xyratex Technnology Limited | System and method for configuring memory devices for use in a network |
JP4281658B2 (ja) * | 2004-09-24 | 2009-06-17 | 日本電気株式会社 | ファイルアクセスサービスシステムとスイッチ装置及びクオータ管理方法並びにプログラム |
DE102004047367A1 (de) * | 2004-09-29 | 2006-03-30 | Siemens Ag | Verfahren zum Verteilen von Software und Konfigurationsdaten mit Zeitüberwachung sowie entsprechendes Datennetz |
US7657543B1 (en) * | 2004-10-12 | 2010-02-02 | Sun Microsystems, Inc. | Method and system for creating and using shadow roots |
US7904913B2 (en) | 2004-11-02 | 2011-03-08 | Bakbone Software, Inc. | Management interface for a system that provides automated, real-time, continuous data protection |
JP2008527468A (ja) | 2004-11-13 | 2008-07-24 | ストリーム セオリー,インコーポレイテッド | ハイブリッド・ローカル/リモート・ストリーミング |
US7389298B2 (en) * | 2004-11-18 | 2008-06-17 | International Business Machines Corporation | Seamless remote traversal of multiple NFSv4 exported file systems |
US7457930B2 (en) * | 2004-11-19 | 2008-11-25 | International Business Machines Corporation | Method for application transparent autonomic data replication improving access performance for a storage area network aware file system |
US7464124B2 (en) | 2004-11-19 | 2008-12-09 | International Business Machines Corporation | Method for autonomic data caching and copying on a storage area network aware file system using copy services |
US7383406B2 (en) | 2004-11-19 | 2008-06-03 | International Business Machines Corporation | Application transparent autonomic availability on a storage area network aware file system |
JP4341072B2 (ja) * | 2004-12-16 | 2009-10-07 | 日本電気株式会社 | データ配置管理方法及びシステムと装置およびプログラム |
KR100758281B1 (ko) * | 2004-12-20 | 2007-09-12 | 한국전자통신연구원 | 다중 서비스 타입 관리 기능을 가지는 컨텐츠 분배 관리시스템 및 그 방법 |
KR100700717B1 (ko) * | 2004-12-22 | 2007-03-27 | 한국전자통신연구원 | 컨텐트 구분에 의한 전송시스템의 클러스터링 장치 및 방법 |
US7613704B2 (en) * | 2005-01-19 | 2009-11-03 | Hewlett-Packard Development Company, L.P. | Enterprise digital asset management system and method |
US7885970B2 (en) | 2005-01-20 | 2011-02-08 | F5 Networks, Inc. | Scalable system for partitioning and accessing metadata over multiple servers |
US20060182050A1 (en) * | 2005-01-28 | 2006-08-17 | Hewlett-Packard Development Company, L.P. | Storage replication system with data tracking |
US7562125B2 (en) * | 2005-02-02 | 2009-07-14 | Cisco Technology, Inc. | Techniques for locating distributed objects on a network based on physical communication costs |
US7958347B1 (en) | 2005-02-04 | 2011-06-07 | F5 Networks, Inc. | Methods and apparatus for implementing authentication |
EP1688841A1 (de) * | 2005-02-04 | 2006-08-09 | Sap Ag | Parallele dynamische Verarbeitung |
JP2006227843A (ja) * | 2005-02-16 | 2006-08-31 | Sony Corp | コンテンツ情報管理システム、コンテンツ情報管理装置及びコンテンツ情報管理方法、並びにコンピュータ・プログラム |
US20060200517A1 (en) * | 2005-03-03 | 2006-09-07 | Steve Nelson | Method and apparatus for real time multi-party conference document copier |
US9176955B2 (en) * | 2005-03-09 | 2015-11-03 | Vvond, Inc. | Method and apparatus for sharing media files among network nodes |
US7191215B2 (en) * | 2005-03-09 | 2007-03-13 | Marquee, Inc. | Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines |
US7937379B2 (en) | 2005-03-09 | 2011-05-03 | Vudu, Inc. | Fragmentation of a file for instant access |
US8904463B2 (en) | 2005-03-09 | 2014-12-02 | Vudu, Inc. | Live video broadcasting on distributed networks |
US20080022343A1 (en) * | 2006-07-24 | 2008-01-24 | Vvond, Inc. | Multiple audio streams |
US20090025046A1 (en) * | 2005-03-09 | 2009-01-22 | Wond, Llc | Hybrid architecture for media services |
US8219635B2 (en) | 2005-03-09 | 2012-07-10 | Vudu, Inc. | Continuous data feeding in a distributed environment |
US8887224B2 (en) | 2005-03-09 | 2014-11-11 | Vudu, Inc. | Updating content libraries by transmitting release data |
US7698451B2 (en) | 2005-03-09 | 2010-04-13 | Vudu, Inc. | Method and apparatus for instant playback of a movie title |
US7536390B2 (en) * | 2005-03-11 | 2009-05-19 | Microsoft Corporation | Accessing Web content from any virtualized store |
US8024523B2 (en) | 2007-11-07 | 2011-09-20 | Endeavors Technologies, Inc. | Opportunistic block transmission with time constraints |
US8108579B2 (en) * | 2005-03-31 | 2012-01-31 | Qualcomm Incorporated | Mechanism and method for managing data storage |
US8055680B2 (en) * | 2005-04-19 | 2011-11-08 | International Business Machines Corporation | Assigning access control lists to a hierarchical namespace to optimize ACL inheritance |
US7675861B2 (en) * | 2005-04-25 | 2010-03-09 | Cisco Technology, Inc. | Active probe target management |
US7711897B1 (en) | 2005-06-10 | 2010-05-04 | American Megatrends, Inc. | Method, system, apparatus, and computer-readable medium for improving disk array performance |
US8099511B1 (en) | 2005-06-11 | 2012-01-17 | Vudu, Inc. | Instantaneous media-on-demand |
US7739318B2 (en) * | 2005-06-20 | 2010-06-15 | Netapp, Inc. | System and method for maintaining mappings from data containers to their parent directories |
EP1900189B1 (de) * | 2005-06-29 | 2018-04-18 | Cisco Technology, Inc. | Paralleles dateisystemtraversal zur transparenten spiegelung von verzeichnissen und dateien |
US7801890B1 (en) * | 2005-07-18 | 2010-09-21 | Adobe Systems Inc. | Methods and apparatus to identify accessed digital content |
US7689602B1 (en) * | 2005-07-20 | 2010-03-30 | Bakbone Software, Inc. | Method of creating hierarchical indices for a distributed object system |
US7788521B1 (en) | 2005-07-20 | 2010-08-31 | Bakbone Software, Inc. | Method and system for virtual on-demand recovery for real-time, continuous data protection |
US9558498B2 (en) * | 2005-07-29 | 2017-01-31 | Excalibur Ip, Llc | System and method for advertisement management |
US8539604B2 (en) * | 2005-08-03 | 2013-09-17 | International Business Machines Corporation | Method, system and program product for versioning access control settings |
US8856091B2 (en) * | 2005-09-09 | 2014-10-07 | Open Invention Network, Llc | Method and apparatus for sequencing transactions globally in distributed database cluster |
US20070061379A1 (en) * | 2005-09-09 | 2007-03-15 | Frankie Wong | Method and apparatus for sequencing transactions globally in a distributed database cluster |
US7567966B2 (en) | 2005-09-15 | 2009-07-28 | International Business Machines Corporation | Method and apparatus for managing multi-stream input/output requests in a network file server |
US11474903B1 (en) | 2005-09-30 | 2022-10-18 | Pure Storage, Inc. | Rebuilding of encoded data slices using locally decodable code segments |
US10356177B2 (en) | 2005-09-30 | 2019-07-16 | International Business Machines Corporation | Prioritizing ranges to rebuild based on namespace health |
US10270858B2 (en) | 2005-09-30 | 2019-04-23 | International Business Machines Corporation | Inducing memory device idle time through rolling read prioritizations |
US10866754B2 (en) | 2010-04-26 | 2020-12-15 | Pure Storage, Inc. | Content archiving in a distributed storage network |
US10250686B2 (en) | 2005-09-30 | 2019-04-02 | International Business Machines Corporation | Finding alternate storage locations to support failing disk migration |
US7953937B2 (en) | 2005-09-30 | 2011-05-31 | Cleversafe, Inc. | Systems, methods, and apparatus for subdividing data for storage in a dispersed data storage grid |
US10257276B2 (en) | 2005-09-30 | 2019-04-09 | International Business Machines Corporation | Predictive rebalancing according to future usage expectations |
US11416339B1 (en) | 2005-09-30 | 2022-08-16 | Pure Storage, Inc. | Validating requests based on stored vault information |
US10044807B2 (en) | 2005-09-30 | 2018-08-07 | International Business Machines Corporation | Optimistic checked writes |
US10938418B2 (en) | 2005-09-30 | 2021-03-02 | Pure Storage, Inc. | Online disk replacement/removal |
US10282440B2 (en) | 2015-03-31 | 2019-05-07 | International Business Machines Corporation | Prioritizing rebuilding of encoded data slices |
US9632872B2 (en) | 2012-06-05 | 2017-04-25 | International Business Machines Corporation | Reprioritizing pending dispersed storage network requests |
US8131689B2 (en) * | 2005-09-30 | 2012-03-06 | Panagiotis Tsirigotis | Accumulating access frequency and file attributes for supporting policy based storage management |
US10855769B2 (en) | 2005-09-30 | 2020-12-01 | Pure Storage, Inc. | Prioritizing memory devices to replace based on namespace health |
US9063881B2 (en) | 2010-04-26 | 2015-06-23 | Cleversafe, Inc. | Slice retrieval in accordance with an access sequence in a dispersed storage network |
US8209363B2 (en) * | 2007-10-09 | 2012-06-26 | Cleversafe, Inc. | File system adapted for use with a dispersed data storage network |
US11620185B2 (en) | 2005-09-30 | 2023-04-04 | Pure Storage, Inc. | Integrity processing in a dispersed storage network |
US9027080B2 (en) | 2008-03-31 | 2015-05-05 | Cleversafe, Inc. | Proxy access to a dispersed storage network |
US9774684B2 (en) | 2005-09-30 | 2017-09-26 | International Business Machines Corporation | Storing data in a dispersed storage network |
US10154034B2 (en) | 2010-04-26 | 2018-12-11 | International Business Machines Corporation | Cooperative data access request authorization in a dispersed storage network |
US11909418B1 (en) | 2005-09-30 | 2024-02-20 | Pure Storage, Inc. | Access authentication in a dispersed storage network |
US8352782B2 (en) * | 2005-09-30 | 2013-01-08 | Cleversafe, Inc. | Range based rebuilder for use with a dispersed data storage network |
US9996413B2 (en) * | 2007-10-09 | 2018-06-12 | International Business Machines Corporation | Ensuring data integrity on a dispersed storage grid |
US11221917B1 (en) | 2005-09-30 | 2022-01-11 | Pure Storage, Inc. | Integrity processing in a dispersed storage network |
US7574570B2 (en) * | 2005-09-30 | 2009-08-11 | Cleversafe Inc | Billing system for information dispersal system |
US10051057B2 (en) | 2005-09-30 | 2018-08-14 | International Business Machines Corporation | Prioritizing read locations based on an error history |
US8171101B2 (en) * | 2005-09-30 | 2012-05-01 | Cleversafe, Inc. | Smart access to a dispersed data storage network |
US10289688B2 (en) | 2010-06-22 | 2019-05-14 | International Business Machines Corporation | Metadata access in a dispersed storage network |
US10747616B2 (en) | 2015-03-31 | 2020-08-18 | Pure Storage, Inc. | Adapting rebuilding of encoded data slices in a dispersed storage network |
US11080138B1 (en) | 2010-04-26 | 2021-08-03 | Pure Storage, Inc. | Storing integrity information in a vast storage system |
US10389814B2 (en) | 2005-09-30 | 2019-08-20 | Pure Storage, Inc. | Prioritizing memory devices to replace based on namespace health |
US10432726B2 (en) | 2005-09-30 | 2019-10-01 | Pure Storage, Inc. | Last-resort operations to save at-risk-data |
US8595435B2 (en) * | 2009-07-30 | 2013-11-26 | Cleversafe, Inc. | Dispersed storage write process |
US7904475B2 (en) * | 2007-10-09 | 2011-03-08 | Cleversafe, Inc. | Virtualized data storage vaults on a dispersed data storage network |
US10169229B2 (en) | 2012-06-05 | 2019-01-01 | International Business Machines Corporation | Protocols for expanding existing sites in a dispersed storage network |
US8880799B2 (en) * | 2005-09-30 | 2014-11-04 | Cleversafe, Inc. | Rebuilding data on a dispersed storage network |
US8285878B2 (en) * | 2007-10-09 | 2012-10-09 | Cleversafe, Inc. | Block based access to a dispersed data storage network |
US11340988B2 (en) | 2005-09-30 | 2022-05-24 | Pure Storage, Inc. | Generating integrity information in a vast storage system |
US11272009B1 (en) | 2005-09-30 | 2022-03-08 | Pure Storage, Inc. | Managed data slice maintenance in a distributed storage system |
US10860424B1 (en) | 2005-09-30 | 2020-12-08 | Pure Storage, Inc. | Background verification processing in a storage network |
US11327674B2 (en) | 2012-06-05 | 2022-05-10 | Pure Storage, Inc. | Storage vault tiering and data migration in a distributed storage network |
US9632722B2 (en) | 2010-05-19 | 2017-04-25 | International Business Machines Corporation | Balancing storage unit utilization within a dispersed storage network |
US8694668B2 (en) * | 2005-09-30 | 2014-04-08 | Cleversafe, Inc. | Streaming media software interface to a dispersed data storage network |
US11841770B2 (en) | 2005-09-30 | 2023-12-12 | Pure Storage, Inc. | Storage unit connection security in a storage network and methods for use therewith |
US8555109B2 (en) * | 2009-07-30 | 2013-10-08 | Cleversafe, Inc. | Method and apparatus for distributed storage integrity processing |
US8522290B2 (en) * | 2005-10-07 | 2013-08-27 | Infosys Technologies, Ltd. | Video on demand system and methods thereof |
US20080256147A1 (en) * | 2005-10-18 | 2008-10-16 | Medical Research Council | Method and a System for Storing Files |
US8938594B2 (en) * | 2005-11-04 | 2015-01-20 | Oracle America, Inc. | Method and system for metadata-based resilvering |
US8738565B2 (en) * | 2005-11-07 | 2014-05-27 | International Business Machines Corporation | Collecting data from data sources |
US20070112876A1 (en) * | 2005-11-07 | 2007-05-17 | Blaisdell Russell C | Method and apparatus for pruning data in a data warehouse |
KR100683502B1 (ko) * | 2005-12-08 | 2007-02-15 | 한국전자통신연구원 | 트래픽 신호와 제어 신호를 분리하여 제어하는 무선 액세스라우터 |
US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
US7464116B2 (en) * | 2005-12-28 | 2008-12-09 | Network Appliance, Inc. | Method and apparatus for cloning filesystems across computing systems |
US20070283329A1 (en) * | 2006-01-09 | 2007-12-06 | Infosys Technologies, Ltd. | System and method for performance monitoring and diagnosis of information technology system |
US20070174360A1 (en) * | 2006-01-11 | 2007-07-26 | Yuichi Yagawa | Storage system embedding database |
US7987160B2 (en) * | 2006-01-30 | 2011-07-26 | Microsoft Corporation | Status tool to expose metadata read and write queues |
US20070179981A1 (en) * | 2006-01-31 | 2007-08-02 | International Business Machines Corporation | Efficient data management in a cluster file system |
US8447829B1 (en) | 2006-02-10 | 2013-05-21 | Amazon Technologies, Inc. | System and method for controlling access to web services resources |
US8996482B1 (en) * | 2006-02-10 | 2015-03-31 | Amazon Technologies, Inc. | Distributed system and method for replicated storage of structured data records |
US7675854B2 (en) | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US20070214105A1 (en) * | 2006-03-08 | 2007-09-13 | Omneon Video Networks | Network topology for a scalable data storage system |
US20070226224A1 (en) * | 2006-03-08 | 2007-09-27 | Omneon Video Networks | Data storage system |
US7689630B1 (en) * | 2006-03-15 | 2010-03-30 | Richard L. Lam | Two-level bitmap structure for bit compression and data management |
US8417746B1 (en) | 2006-04-03 | 2013-04-09 | F5 Networks, Inc. | File system management with enhanced searchability |
US20070250365A1 (en) * | 2006-04-21 | 2007-10-25 | Infosys Technologies Ltd. | Grid computing systems and methods thereof |
US20070260674A1 (en) * | 2006-05-02 | 2007-11-08 | Research In Motion Limited | Push framework for delivery of dynamic mobile content |
US7941455B2 (en) * | 2006-05-31 | 2011-05-10 | Harmonic Inc. | Notification for a distributed file system |
US8412561B2 (en) * | 2006-08-09 | 2013-04-02 | Infosys Technologies, Ltd. | Business case evaluation system and methods thereof |
WO2008024037A1 (en) * | 2006-08-21 | 2008-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | A distributed server network for providing triple and play services to end users |
US8296812B1 (en) | 2006-09-01 | 2012-10-23 | Vudu, Inc. | Streaming video using erasure encoding |
US8442989B2 (en) * | 2006-09-05 | 2013-05-14 | Thomson Licensing | Method for assigning multimedia data to distributed storage devices |
US8244694B2 (en) * | 2006-09-12 | 2012-08-14 | International Business Machines Corporation | Dynamic schema assembly to accommodate application-specific metadata |
US10354516B2 (en) | 2006-09-15 | 2019-07-16 | Tyco Safety Products Canada, Ltd. | Method and apparatus for automated activation of a security system |
US20080077638A1 (en) * | 2006-09-21 | 2008-03-27 | Microsoft Corporation | Distributed storage in a computing environment |
WO2008038271A1 (en) * | 2006-09-28 | 2008-04-03 | Xeround Systems Ltd. | An apparatus and method for a distributed storage global database |
US8943218B2 (en) | 2006-10-12 | 2015-01-27 | Concurrent Computer Corporation | Method and apparatus for a fault resilient collaborative media serving array |
US8312507B2 (en) | 2006-10-17 | 2012-11-13 | A10 Networks, Inc. | System and method to apply network traffic policy to an application session |
US8584199B1 (en) | 2006-10-17 | 2013-11-12 | A10 Networks, Inc. | System and method to apply a packet routing policy to an application session |
US8261345B2 (en) | 2006-10-23 | 2012-09-04 | Endeavors Technologies, Inc. | Rule-based application access management |
US7519602B2 (en) * | 2006-10-31 | 2009-04-14 | Sap Ag | Systems and methods for information exchange using object warehousing |
US9489456B1 (en) * | 2006-11-17 | 2016-11-08 | Blue Coat Systems, Inc. | Previewing file information over a network |
US9946791B1 (en) * | 2006-11-21 | 2018-04-17 | Google Llc | Making modified content available |
US8238255B2 (en) | 2006-11-22 | 2012-08-07 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
US7853691B2 (en) * | 2006-11-29 | 2010-12-14 | Broadcom Corporation | Method and system for securing a network utilizing IPsec and MACsec protocols |
US7865887B2 (en) | 2006-11-30 | 2011-01-04 | Sap Ag | Context based event handling and execution with prioritization and interrupt management |
US7613947B1 (en) | 2006-11-30 | 2009-11-03 | Netapp, Inc. | System and method for storage takeover |
US7711683B1 (en) * | 2006-11-30 | 2010-05-04 | Netapp, Inc. | Method and system for maintaining disk location via homeness |
US8019723B2 (en) * | 2006-12-20 | 2011-09-13 | International Business Machines Corporation | Deferred copy target pull of volume data |
US7925626B2 (en) * | 2006-12-20 | 2011-04-12 | International Business Machines Corporation | Immediate copy target pull of volume data |
US8006281B2 (en) | 2006-12-21 | 2011-08-23 | Microsoft Corporation | Network accessible trusted code |
US8395996B2 (en) | 2007-01-11 | 2013-03-12 | Foundry Networks, Llc | Techniques for processing incoming failure detection protocol packets |
US8561199B2 (en) * | 2007-01-11 | 2013-10-15 | International Business Machines Corporation | Method and system for secure lightweight stream processing |
US7930263B2 (en) * | 2007-01-12 | 2011-04-19 | Health Information Flow, Inc. | Knowledge utilization |
US20080172448A1 (en) * | 2007-01-16 | 2008-07-17 | Microsoft Corporation | Packetized boot service broadcasting |
EP2835951B1 (de) * | 2007-01-17 | 2018-08-22 | Intertrust Technologies Corporation | Verfahren, systeme und vorrichtung zur teilung fragmentierter dateien |
CA2577030A1 (en) * | 2007-01-31 | 2008-07-31 | Unlimi-Tech Software Inc. | Improved data transfer method, system and protocol |
US20080208806A1 (en) * | 2007-02-28 | 2008-08-28 | Microsoft Corporation | Techniques for a web services data access layer |
US20080205376A1 (en) * | 2007-02-28 | 2008-08-28 | Michael Patmon | Redundant router having load sharing functionality |
US7747634B2 (en) * | 2007-03-08 | 2010-06-29 | Microsoft Corporation | Rich data tunneling |
US20080228773A1 (en) * | 2007-03-14 | 2008-09-18 | Hand Held Products, Inc. | Apparatus and method for data input device |
US20080225837A1 (en) * | 2007-03-16 | 2008-09-18 | Novell, Inc. | System and Method for Multi-Layer Distributed Switching |
US8131723B2 (en) | 2007-03-30 | 2012-03-06 | Quest Software, Inc. | Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity |
US7827147B1 (en) | 2007-03-30 | 2010-11-02 | Data Center Technologies | System and method for automatically redistributing metadata across managers |
US8364648B1 (en) | 2007-04-09 | 2013-01-29 | Quest Software, Inc. | Recovering a database to any point-in-time in the past with guaranteed data consistency |
US8311990B2 (en) * | 2007-04-16 | 2012-11-13 | Michael Martinek | Fragmented data file forensic recovery system and method |
US8775450B2 (en) | 2007-04-19 | 2014-07-08 | Sap Ag | Systems and methods for information exchange using object warehousing |
US7877644B2 (en) * | 2007-04-19 | 2011-01-25 | International Business Machines Corporation | Computer application performance optimization system |
US8086652B1 (en) * | 2007-04-27 | 2011-12-27 | Netapp, Inc. | Storage system-based hole punching for reclaiming unused space from a data container |
US20080288563A1 (en) * | 2007-05-14 | 2008-11-20 | Hinshaw Foster D | Allocation and redistribution of data among storage devices |
US8682916B2 (en) | 2007-05-25 | 2014-03-25 | F5 Networks, Inc. | Remote file virtualization in a switched file system |
US9578288B2 (en) * | 2007-06-08 | 2017-02-21 | At&T Intellectual Property I, L.P. | Peer-to-peer distributed storage for internet protocol television |
US8560691B2 (en) * | 2007-06-19 | 2013-10-15 | Microsoft Corporation | Relocating item in distributed storage system |
GB0712640D0 (en) * | 2007-06-28 | 2007-08-08 | Symbian Software Ltd | Domputing device having a merged directory hierarchy from multiple filesystems |
US8615798B2 (en) * | 2007-06-29 | 2013-12-24 | International Business Machines Corporation | Optimizing a data deduplication system using client authentication information |
US8271859B2 (en) | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
US7856437B2 (en) * | 2007-07-31 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Storing nodes representing respective chunks of files in a data store |
US9177115B2 (en) | 2007-08-22 | 2015-11-03 | International Business Machines Corporation | Data subscription management system |
US8671256B2 (en) * | 2007-08-27 | 2014-03-11 | International Business Machines Corporation | Migrating contents of a memory on a virtual machine |
US9274949B2 (en) * | 2007-08-27 | 2016-03-01 | International Business Machines Corporation | Tracking data updates during memory migration |
US8694990B2 (en) * | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
US8661211B2 (en) * | 2007-08-27 | 2014-02-25 | International Business Machines Corporation | Method for migrating contents of a memory on a virtual machine |
US8149839B1 (en) | 2007-09-26 | 2012-04-03 | Foundry Networks, Llc | Selection of trunk ports and paths using rotation |
US8046378B1 (en) | 2007-09-26 | 2011-10-25 | Network Appliance, Inc. | Universal quota entry identification |
US8131784B1 (en) * | 2007-09-26 | 2012-03-06 | Network Appliance, Inc. | Multiple node quota filter |
US7783666B1 (en) | 2007-09-26 | 2010-08-24 | Netapp, Inc. | Controlling access to storage resources by using access pattern based quotas |
US8185614B2 (en) * | 2007-10-09 | 2012-05-22 | Cleversafe, Inc. | Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry |
US8478865B2 (en) * | 2007-10-09 | 2013-07-02 | Cleversafe, Inc. | Systems, methods, and apparatus for matching a connection request with a network interface adapted for use with a dispersed data storage network |
US10027478B2 (en) | 2007-10-09 | 2018-07-17 | International Business Machines Corporation | Differential key backup |
US9697171B2 (en) | 2007-10-09 | 2017-07-04 | Internaitonal Business Machines Corporation | Multi-writer revision synchronization in a dispersed storage network |
US8965956B2 (en) | 2007-10-09 | 2015-02-24 | Cleversafe, Inc. | Integrated client for use with a dispersed data storage network |
US9888076B2 (en) | 2007-10-09 | 2018-02-06 | International Business Machines Corporation | Encoded data slice caching in a distributed storage network |
US8549351B2 (en) * | 2007-10-09 | 2013-10-01 | Cleversafe, Inc. | Pessimistic data reading in a dispersed storage network |
US8533256B2 (en) * | 2007-10-09 | 2013-09-10 | Cleversafe, Inc. | Object interface to a dispersed data storage network |
US9959076B2 (en) | 2007-10-09 | 2018-05-01 | International Business Machines Corporation | Optimized disk load distribution |
US8572429B2 (en) * | 2007-10-09 | 2013-10-29 | Cleversafe, Inc. | Optimistic data writing in a dispersed storage network |
US8819179B2 (en) | 2007-10-09 | 2014-08-26 | Cleversafe, Inc. | Data revision synchronization in a dispersed storage network |
CN101952810B (zh) * | 2007-10-24 | 2013-10-30 | 兰特罗尼克斯公司 | 用于中心站分配虚拟ip地址的各种方法和设备 |
DE112007003693B4 (de) * | 2007-10-25 | 2014-05-15 | Hewlett-Packard Development Co., L.P. | Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung |
US8140637B2 (en) * | 2007-10-25 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Communicating chunks between devices |
CN101855636B (zh) | 2007-10-25 | 2016-03-16 | 惠普开发有限公司 | 数据处理设备及数据处理方法 |
US20090119375A1 (en) * | 2007-11-05 | 2009-05-07 | Research In Motion Limited | Method and system for optimizing delivery of mobile content using differential metadata updates |
US8892738B2 (en) | 2007-11-07 | 2014-11-18 | Numecent Holdings, Inc. | Deriving component statistics for a stream enabled application |
US20100268750A1 (en) * | 2007-11-08 | 2010-10-21 | Koninklijke Philips Electronics N.V. | Method and electronic device for managing content |
US8117244B2 (en) | 2007-11-12 | 2012-02-14 | F5 Networks, Inc. | Non-disruptive file migration |
US8548953B2 (en) | 2007-11-12 | 2013-10-01 | F5 Networks, Inc. | File deduplication using storage tiers |
US8180747B2 (en) | 2007-11-12 | 2012-05-15 | F5 Networks, Inc. | Load sharing cluster file systems |
US9168457B2 (en) | 2010-09-14 | 2015-10-27 | Sony Computer Entertainment America Llc | System and method for retaining system state |
US8352785B1 (en) | 2007-12-13 | 2013-01-08 | F5 Networks, Inc. | Methods for generating a unified virtual snapshot and systems thereof |
US9507784B2 (en) | 2007-12-21 | 2016-11-29 | Netapp, Inc. | Selective extraction of information from a mirrored image file |
US8224864B1 (en) * | 2008-01-07 | 2012-07-17 | Network Appliance, Inc. | Striping directories across a striped volume set by the filenames contained in the directories |
JP2009182458A (ja) * | 2008-01-29 | 2009-08-13 | Sony Corp | 通信装置、通信システム、通信方法及びプログラム |
KR20090087269A (ko) * | 2008-02-12 | 2009-08-17 | 삼성전자주식회사 | 컨텍스트 기반 정보 처리 방법 및 장치, 그리고 컴퓨터기록 매체 |
US7899850B2 (en) * | 2008-02-22 | 2011-03-01 | Bycast, Inc. | Relational objects for the optimized management of fixed-content storage systems |
US8224831B2 (en) * | 2008-02-27 | 2012-07-17 | Dell Products L.P. | Virtualization of metadata for file optimization |
US8219534B2 (en) * | 2008-02-27 | 2012-07-10 | Dell Products L.P. | Multiple file compaction for network attached storage |
US8327017B1 (en) * | 2008-03-12 | 2012-12-04 | United Services Automobile Association (Usaa) | Systems and methods for an autonomous intranet |
JP2009237763A (ja) * | 2008-03-26 | 2009-10-15 | Hitachi Ltd | サーバシステム及びその制御方法 |
CN101547161B (zh) | 2008-03-28 | 2012-09-26 | 阿里巴巴集团控股有限公司 | 文件夹传输系统、文件夹传输装置及文件夹传输方法 |
US9501355B2 (en) | 2008-03-31 | 2016-11-22 | International Business Machines Corporation | Storing data and directory information in a distributed storage network |
US9002906B1 (en) * | 2008-03-31 | 2015-04-07 | Emc Corporation | System and method for handling large transactions in a storage virtualization system |
US8103628B2 (en) | 2008-04-09 | 2012-01-24 | Harmonic Inc. | Directed placement of data in a redundant data storage system |
US8200638B1 (en) | 2008-04-30 | 2012-06-12 | Netapp, Inc. | Individual file restore from block-level incremental backups by using client-server backup protocol |
US8949187B1 (en) * | 2008-05-30 | 2015-02-03 | Symantec Corporation | Systems and methods for creating and managing backups based on health information |
US20090307329A1 (en) * | 2008-06-06 | 2009-12-10 | Chris Olston | Adaptive file placement in a distributed file system |
US20090319285A1 (en) * | 2008-06-20 | 2009-12-24 | Microsoft Corporation | Techniques for managing disruptive business events |
US8560578B2 (en) * | 2008-06-26 | 2013-10-15 | Microsoft Corporation | Common block storage infrastructure |
US8549582B1 (en) | 2008-07-11 | 2013-10-01 | F5 Networks, Inc. | Methods for handling a multi-protocol content name and systems thereof |
US9323681B2 (en) | 2008-09-18 | 2016-04-26 | Avere Systems, Inc. | File storage system, cache appliance, and method |
US8214404B2 (en) * | 2008-07-11 | 2012-07-03 | Avere Systems, Inc. | Media aware distributed data layout |
US8819011B2 (en) * | 2008-07-16 | 2014-08-26 | Cleversafe, Inc. | Command line interpreter for accessing a data object stored in a distributed storage network |
US8630987B2 (en) * | 2008-07-16 | 2014-01-14 | Cleversafe, Inc. | System and method for accessing a data object stored in a distributed storage network |
US8103718B2 (en) * | 2008-07-31 | 2012-01-24 | Microsoft Corporation | Content discovery and transfer between mobile communications nodes |
US8776038B2 (en) | 2008-08-07 | 2014-07-08 | Code Systems Corporation | Method and system for configuration of virtualized software applications |
US8434093B2 (en) | 2008-08-07 | 2013-04-30 | Code Systems Corporation | Method and system for virtualization of software applications |
US8243589B1 (en) * | 2008-08-14 | 2012-08-14 | United Services Automobile Association (Usaa) | Systems and methods for data center load balancing |
US8706878B1 (en) | 2008-08-21 | 2014-04-22 | United Services Automobile Association | Preferential loading in data centers |
US20100070544A1 (en) * | 2008-09-12 | 2010-03-18 | Microsoft Corporation | Virtual block-level storage over a file system |
AU2010276462B1 (en) | 2010-12-27 | 2012-01-12 | Limelight Networks, Inc. | Partial object caching |
WO2012105967A1 (en) * | 2011-02-01 | 2012-08-09 | Limelight Networks, Inc. | Asset management architecture for content delivery networks |
US8458290B2 (en) | 2011-02-01 | 2013-06-04 | Limelight Networks, Inc. | Multicast mapped look-up on content delivery networks |
AU2010202034B1 (en) | 2010-04-07 | 2010-12-23 | Limelight Networks, Inc. | Partial object distribution in content delivery network |
BRPI0918658A2 (pt) * | 2008-09-19 | 2015-12-01 | Limelight Networks Inc | distribuição de vinheta de servidor de fluxo de rede de entrega de contéudo. |
US8600937B1 (en) * | 2008-09-30 | 2013-12-03 | Emc Corporation | System and method for fast volume cloning |
SE533007C2 (sv) | 2008-10-24 | 2010-06-08 | Ilt Productions Ab | Distribuerad datalagring |
US8510352B2 (en) * | 2008-10-24 | 2013-08-13 | Microsoft Corporation | Virtualized boot block with discovery volume |
US8868675B2 (en) * | 2008-12-04 | 2014-10-21 | Cisco Technology, Inc. | Network optimization using distributed virtual resources |
US9197678B2 (en) * | 2008-12-11 | 2015-11-24 | Skype | Method and system for data transmission |
US8166067B2 (en) * | 2008-12-26 | 2012-04-24 | Sandisk Il Ltd. | Method and apparatus for providing access to files based on user identity |
US8943409B2 (en) * | 2008-12-26 | 2015-01-27 | Sandisk Il Ltd. | Storage device managing playable content |
US20100169395A1 (en) * | 2008-12-26 | 2010-07-01 | Sandisk Il Ltd. | Device and method for filtering a file system |
US8239395B2 (en) * | 2008-12-26 | 2012-08-07 | Sandisk Il Ltd. | Storage device presenting to hosts only files compatible with a defined host capability |
US8898267B2 (en) * | 2009-01-19 | 2014-11-25 | Netapp, Inc. | Modifying information lifecycle management rules in a distributed system |
US8417969B2 (en) * | 2009-02-19 | 2013-04-09 | Microsoft Corporation | Storage volume protection supporting legacy systems |
US8073886B2 (en) | 2009-02-20 | 2011-12-06 | Microsoft Corporation | Non-privileged access to data independent of filesystem implementation |
US9348842B2 (en) * | 2009-03-23 | 2016-05-24 | Riverbed Technology, Inc. | Virtualized data storage system optimizations |
US20100257218A1 (en) * | 2009-04-03 | 2010-10-07 | Konstantin Iliev Vassilev | Merging multiple heterogeneous file systems into a single virtual unified file system |
US8656187B2 (en) * | 2009-04-20 | 2014-02-18 | Cleversafe, Inc. | Dispersed storage secure data decoding |
US10104045B2 (en) | 2009-04-20 | 2018-10-16 | International Business Machines Corporation | Verifying data security in a dispersed storage network |
US8819781B2 (en) * | 2009-04-20 | 2014-08-26 | Cleversafe, Inc. | Management of network devices within a dispersed data storage network |
US9483656B2 (en) | 2009-04-20 | 2016-11-01 | International Business Machines Corporation | Efficient and secure data storage utilizing a dispersed data storage system |
US10447474B2 (en) * | 2009-04-20 | 2019-10-15 | Pure Storage, Inc. | Dispersed data storage system data decoding and decryption |
US9092294B2 (en) * | 2009-04-20 | 2015-07-28 | Cleversafe, Inc. | Systems, apparatus, and methods for utilizing a reachability set to manage a network upgrade |
US11868498B1 (en) | 2009-04-20 | 2024-01-09 | Pure Storage, Inc. | Storage integrity processing in a storage network |
US8744071B2 (en) * | 2009-04-20 | 2014-06-03 | Cleversafe, Inc. | Dispersed data storage system data encryption and encoding |
US8504847B2 (en) * | 2009-04-20 | 2013-08-06 | Cleversafe, Inc. | Securing data in a dispersed storage network using shared secret slices |
US8601259B2 (en) * | 2009-04-20 | 2013-12-03 | Cleversafe, Inc. | Securing data in a dispersed storage network using security sentinel value |
US20100275219A1 (en) * | 2009-04-23 | 2010-10-28 | International Business Machines Corporation | Scsi persistent reserve management |
US9239840B1 (en) | 2009-04-24 | 2016-01-19 | Swish Data Corporation | Backup media conversion via intelligent virtual appliance adapter |
US9087066B2 (en) * | 2009-04-24 | 2015-07-21 | Swish Data Corporation | Virtual disk from network shares and file servers |
US8090901B2 (en) * | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
CN101645038A (zh) * | 2009-05-20 | 2010-02-10 | 中国科学院声学研究所 | 基于彼特森的网络存储结构的数据存储方法 |
US8416692B2 (en) * | 2009-05-28 | 2013-04-09 | Microsoft Corporation | Load balancing across layer-2 domains |
US9497039B2 (en) * | 2009-05-28 | 2016-11-15 | Microsoft Technology Licensing, Llc | Agile data center network architecture |
US8504529B1 (en) * | 2009-06-19 | 2013-08-06 | Netapp, Inc. | System and method for restoring data to a storage device based on a backup image |
US10230692B2 (en) * | 2009-06-30 | 2019-03-12 | International Business Machines Corporation | Distributed storage processing module |
US20110004750A1 (en) * | 2009-07-03 | 2011-01-06 | Barracuda Networks, Inc | Hierarchical skipping method for optimizing data transfer through retrieval and identification of non-redundant components |
US8280895B2 (en) * | 2009-07-03 | 2012-10-02 | Barracuda Networks Inc | Multi-streamed method for optimizing data transfer through parallelized interlacing of data based upon sorted characteristics to minimize latencies inherent in the system |
CN101621405B (zh) * | 2009-07-07 | 2012-02-29 | 中兴通讯股份有限公司 | 分布式管理监控系统及其监控方法、创建方法 |
US8489685B2 (en) | 2009-07-17 | 2013-07-16 | Aryaka Networks, Inc. | Application acceleration as a service system and method |
US8706980B2 (en) * | 2009-07-30 | 2014-04-22 | Cleversafe, Inc. | Method and apparatus for slice partial rebuilding in a dispersed storage network |
US9558059B2 (en) | 2009-07-30 | 2017-01-31 | International Business Machines Corporation | Detecting data requiring rebuilding in a dispersed storage network |
US9009575B2 (en) | 2009-07-30 | 2015-04-14 | Cleversafe, Inc. | Rebuilding a data revision in a dispersed storage network |
US9208025B2 (en) | 2009-07-30 | 2015-12-08 | Cleversafe, Inc. | Virtual memory mapping in a dispersed storage network |
US10108492B2 (en) | 2009-07-30 | 2018-10-23 | International Business Machines Corporation | Rebuilding data stored in a dispersed storage network |
US8489915B2 (en) * | 2009-07-30 | 2013-07-16 | Cleversafe, Inc. | Method and apparatus for storage integrity processing based on error types in a dispersed storage network |
US9207870B2 (en) | 2009-07-30 | 2015-12-08 | Cleversafe, Inc. | Allocating storage units in a dispersed storage network |
US8560798B2 (en) * | 2009-07-30 | 2013-10-15 | Cleversafe, Inc. | Dispersed storage network virtual address space |
US8352719B2 (en) | 2009-07-31 | 2013-01-08 | Cleversafe, Inc. | Computing device booting utilizing dispersed storage |
US9959131B2 (en) * | 2009-08-03 | 2018-05-01 | Quantum Corporation | Systems and methods for providing a file system viewing of a storeage environment |
US9167277B2 (en) * | 2009-08-03 | 2015-10-20 | Cleversafe, Inc. | Dispersed storage network data manipulation |
US8560855B2 (en) * | 2009-08-27 | 2013-10-15 | Cleversafe, Inc. | Verification of dispersed storage network access control information |
US9690513B2 (en) * | 2009-08-27 | 2017-06-27 | International Business Machines Corporation | Dispersed storage processing unit and methods with operating system diversity for use in a dispersed storage system |
US9411810B2 (en) | 2009-08-27 | 2016-08-09 | International Business Machines Corporation | Method and apparatus for identifying data inconsistency in a dispersed storage network |
US8949695B2 (en) | 2009-08-27 | 2015-02-03 | Cleversafe, Inc. | Method and apparatus for nested dispersed storage |
US8473531B2 (en) * | 2009-09-03 | 2013-06-25 | Quantum Corporation | Presenting a file system for a file containing items |
CN102025515A (zh) | 2009-09-14 | 2011-04-20 | 阿里巴巴集团控股有限公司 | 基于文件目录的文件传输方法及其装置和系统 |
US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
US8689354B2 (en) | 2009-09-29 | 2014-04-01 | Cleversafe, Inc. | Method and apparatus for accessing secure data in a dispersed storage system |
US8473677B2 (en) * | 2009-09-29 | 2013-06-25 | Cleversafe, Inc. | Distributed storage network memory access based on memory state |
US8924387B2 (en) * | 2009-09-29 | 2014-12-30 | Cleversafe, Inc. | Social networking utilizing a dispersed storage network |
US8478937B2 (en) | 2009-09-30 | 2013-07-02 | Cleversafe, Inc. | Method and apparatus for dispersed storage memory device utilization |
US8438456B2 (en) * | 2009-10-05 | 2013-05-07 | Cleversafe, Inc. | Method and apparatus for dispersed storage of streaming data |
US8996909B2 (en) * | 2009-10-08 | 2015-03-31 | Microsoft Corporation | Modeling distribution and failover database connectivity behavior |
US9960967B2 (en) | 2009-10-21 | 2018-05-01 | A10 Networks, Inc. | Determining an application delivery server based on geo-location information |
US10757187B2 (en) | 2009-10-29 | 2020-08-25 | Pure Storage, Inc. | Streaming all-or-nothing encoding with random offset support |
US8522074B2 (en) * | 2009-10-29 | 2013-08-27 | Cleversafe, Inc. | Intentionally introduced storage deviations in a dispersed storage network |
US9774678B2 (en) | 2009-10-29 | 2017-09-26 | International Business Machines Corporation | Temporarily storing data in a dispersed storage network |
US8732206B2 (en) * | 2009-10-29 | 2014-05-20 | Cleversafe, Inc. | Distributed storage timestamped revisions |
US9661356B2 (en) | 2009-10-29 | 2017-05-23 | International Business Machines Corporation | Distribution of unique copies of broadcast data utilizing fault-tolerant retrieval from dispersed storage |
US10389845B2 (en) | 2009-10-29 | 2019-08-20 | Pure Storage, Inc. | Determining how to service requests based on several indicators |
US9311185B2 (en) | 2009-10-30 | 2016-04-12 | Cleversafe, Inc. | Dispersed storage unit solicitation method and apparatus |
US8589637B2 (en) * | 2009-10-30 | 2013-11-19 | Cleversafe, Inc. | Concurrent set storage in distributed storage network |
US8351600B2 (en) * | 2009-10-30 | 2013-01-08 | Cleversafe, Inc. | Distributed storage network and method for encrypting and decrypting data using hash functions |
US9195408B2 (en) | 2009-10-30 | 2015-11-24 | Cleversafe, Inc. | Highly autonomous dispersed storage system retrieval method |
US8769035B2 (en) | 2009-10-30 | 2014-07-01 | Cleversafe, Inc. | Distributed storage network for storing a data object based on storage requirements |
US9413529B2 (en) | 2009-10-30 | 2016-08-09 | International Business Machines Corporation | Distributed storage network and method for storing and retrieving encryption keys |
US10073737B2 (en) | 2009-10-30 | 2018-09-11 | International Business Machines Corporation | Slice location identification |
US8572282B2 (en) * | 2009-10-30 | 2013-10-29 | Cleversafe, Inc. | Router assisted dispersed storage network method and apparatus |
US9098376B2 (en) | 2009-10-30 | 2015-08-04 | Cleversafe, Inc. | Distributed storage network for modification of a data object |
US9667701B2 (en) | 2009-10-30 | 2017-05-30 | International Business Machines Corporation | Robust reception of data utilizing encoded data slices |
US10721269B1 (en) | 2009-11-06 | 2020-07-21 | F5 Networks, Inc. | Methods and system for returning requests with javascript for clients before passing a request to a server |
US9270298B2 (en) | 2009-11-24 | 2016-02-23 | International Business Machines Corporation | Selecting storage units to rebuild an encoded data slice |
US8918897B2 (en) * | 2009-11-24 | 2014-12-23 | Cleversafe, Inc. | Dispersed storage network data slice integrity verification |
US9152514B2 (en) | 2009-11-24 | 2015-10-06 | Cleversafe, Inc. | Rebuilding a data segment in a dispersed storage network |
US9501349B2 (en) | 2009-11-24 | 2016-11-22 | International Business Machines Corporation | Changing dispersed storage error encoding parameters |
US9836352B2 (en) | 2009-11-25 | 2017-12-05 | International Business Machines Corporation | Detecting a utilization imbalance between dispersed storage network storage units |
US9489264B2 (en) | 2009-11-25 | 2016-11-08 | International Business Machines Corporation | Storing an encoded data slice as a set of sub-slices |
US9996548B2 (en) | 2009-11-25 | 2018-06-12 | International Business Machines Corporation | Dispersed storage using localized peer-to-peer capable wireless devices in a peer-to-peer or femto cell supported carrier served fashion |
US8527807B2 (en) | 2009-11-25 | 2013-09-03 | Cleversafe, Inc. | Localized dispersed storage memory system |
US10015141B2 (en) | 2009-11-25 | 2018-07-03 | International Business Machines Corporation | Dispersed data storage in a VPN group of devices |
US9672109B2 (en) | 2009-11-25 | 2017-06-06 | International Business Machines Corporation | Adaptive dispersed storage network (DSN) and system |
US8621268B2 (en) * | 2009-11-25 | 2013-12-31 | Cleversafe, Inc. | Write threshold utilization in a dispersed storage system |
US8688907B2 (en) * | 2009-11-25 | 2014-04-01 | Cleversafe, Inc. | Large scale subscription based dispersed storage network |
US8819452B2 (en) * | 2009-11-25 | 2014-08-26 | Cleversafe, Inc. | Efficient storage of encrypted data in a dispersed storage network |
US9626248B2 (en) | 2009-11-25 | 2017-04-18 | International Business Machines Corporation | Likelihood based rebuilding of missing encoded data slices |
US8321569B2 (en) * | 2009-12-17 | 2012-11-27 | International Business Machines Corporation | Server resource allocation |
US8762343B2 (en) | 2009-12-29 | 2014-06-24 | Cleversafe, Inc. | Dispersed storage of software |
US9507735B2 (en) | 2009-12-29 | 2016-11-29 | International Business Machines Corporation | Digital content retrieval utilizing dispersed storage |
US9798467B2 (en) | 2009-12-29 | 2017-10-24 | International Business Machines Corporation | Security checks for proxied requests |
US10237281B2 (en) | 2009-12-29 | 2019-03-19 | International Business Machines Corporation | Access policy updates in a dispersed storage network |
US20180335967A1 (en) | 2009-12-29 | 2018-11-22 | International Business Machines Corporation | User customizable data processing plan in a dispersed storage network |
US10067831B2 (en) | 2009-12-29 | 2018-09-04 | International Business Machines Corporation | Slice migration in a dispersed storage network |
US9727266B2 (en) | 2009-12-29 | 2017-08-08 | International Business Machines Corporation | Selecting storage units in a dispersed storage network |
US9152489B2 (en) | 2009-12-29 | 2015-10-06 | Cleversafe, Inc. | Revision synchronization of a dispersed storage network |
US8468368B2 (en) * | 2009-12-29 | 2013-06-18 | Cleversafe, Inc. | Data encryption parameter dispersal |
US10158648B2 (en) | 2009-12-29 | 2018-12-18 | International Business Machines Corporation | Policy-based access in a dispersed storage network |
US10133632B2 (en) | 2009-12-29 | 2018-11-20 | International Business Machines Corporation | Determining completion of migration in a dispersed storage network |
US9672108B2 (en) | 2009-12-29 | 2017-06-06 | International Business Machines Corporation | Dispersed storage network (DSN) and system with improved security |
US9305597B2 (en) | 2009-12-29 | 2016-04-05 | Cleversafe, Inc. | Accessing stored multi-media content based on a subscription priority level |
US9413393B2 (en) | 2009-12-29 | 2016-08-09 | International Business Machines Corporation | Encoding multi-media content for a centralized digital video storage system |
US10031669B2 (en) | 2009-12-29 | 2018-07-24 | International Business Machines Corporation | Scheduling migration related traffic to be non-disruptive and performant |
US10289505B2 (en) | 2009-12-29 | 2019-05-14 | International Business Machines Corporation | Dispersed multi-media content for a centralized digital video storage system |
US10001923B2 (en) | 2009-12-29 | 2018-06-19 | International Business Machines Corporation | Generation collapse |
US8352831B2 (en) * | 2009-12-29 | 2013-01-08 | Cleversafe, Inc. | Digital content distribution utilizing dispersed storage |
US9922063B2 (en) | 2009-12-29 | 2018-03-20 | International Business Machines Corporation | Secure storage of secret data in a dispersed storage network |
US9866595B2 (en) | 2009-12-29 | 2018-01-09 | International Busines Machines Corporation | Policy based slice deletion in a dispersed storage network |
US8990585B2 (en) | 2009-12-29 | 2015-03-24 | Cleversafe, Inc. | Time based dispersed storage access |
US10148788B2 (en) | 2009-12-29 | 2018-12-04 | International Business Machines Corporation | Method for providing schedulers in a distributed storage network |
US9330241B2 (en) | 2009-12-29 | 2016-05-03 | International Business Machines Corporation | Applying digital rights management to multi-media file playback |
US9369526B2 (en) | 2009-12-29 | 2016-06-14 | International Business Machines Corporation | Distributed storage time synchronization based on retrieval delay |
US10372686B2 (en) | 2009-12-29 | 2019-08-06 | International Business Machines Corporation | Policy-based storage in a dispersed storage network |
US8954958B2 (en) | 2010-01-11 | 2015-02-10 | Code Systems Corporation | Method of configuring a virtual application |
US8285692B2 (en) * | 2010-01-15 | 2012-10-09 | Oracle America, Inc. | Method and system for attribute encapsulated data resolution and transcoding |
US8959183B2 (en) | 2010-01-27 | 2015-02-17 | Code Systems Corporation | System for downloading and executing a virtual application |
US9104517B2 (en) | 2010-01-27 | 2015-08-11 | Code Systems Corporation | System for downloading and executing a virtual application |
US9043548B2 (en) | 2010-01-28 | 2015-05-26 | Cleversafe, Inc. | Streaming content storage |
US8918674B2 (en) | 2010-01-28 | 2014-12-23 | Cleversafe, Inc. | Directory file system in a dispersed storage network |
US8954667B2 (en) * | 2010-01-28 | 2015-02-10 | Cleversafe, Inc. | Data migration in a dispersed storage network |
US9201732B2 (en) | 2010-01-28 | 2015-12-01 | Cleversafe, Inc. | Selective activation of memory to retrieve data in a dispersed storage network |
US9760440B2 (en) | 2010-01-28 | 2017-09-12 | International Business Machines Corporation | Site-based namespace allocation |
US8959366B2 (en) | 2010-01-28 | 2015-02-17 | Cleversafe, Inc. | De-sequencing encoded data slices |
US11301592B2 (en) | 2010-01-28 | 2022-04-12 | Pure Storage, Inc. | Distributed storage with data obfuscation and method for use therewith |
US8522113B2 (en) * | 2010-01-28 | 2013-08-27 | Cleversafe, Inc. | Selecting storage facilities and dispersal parameters in a dispersed storage network |
US9229748B2 (en) | 2010-01-29 | 2016-01-05 | Code Systems Corporation | Method and system for improving startup performance and interoperability of a virtual application |
US8204860B1 (en) | 2010-02-09 | 2012-06-19 | F5 Networks, Inc. | Methods and systems for snapshot reconstitution |
US9195500B1 (en) | 2010-02-09 | 2015-11-24 | F5 Networks, Inc. | Methods for seamless storage importing and devices thereof |
US9058334B2 (en) * | 2010-02-11 | 2015-06-16 | Emc Corporation | Parallel file system processing |
US20180365105A1 (en) | 2014-06-05 | 2018-12-20 | International Business Machines Corporation | Establishing an operation execution schedule in a dispersed storage network |
US10268374B2 (en) | 2010-02-27 | 2019-04-23 | International Business Machines Corporation | Redundant array of independent discs and dispersed storage network system re-director |
US9606867B2 (en) | 2014-06-05 | 2017-03-28 | International Business Machines Corporation | Maintaining data storage in accordance with an access metric |
US9311184B2 (en) * | 2010-02-27 | 2016-04-12 | Cleversafe, Inc. | Storing raid data as encoded data slices in a dispersed storage network |
US10324791B2 (en) | 2010-11-01 | 2019-06-18 | International Business Machines Corporation | Selectable parallel processing of dispersed storage error encoding |
US10007575B2 (en) | 2010-02-27 | 2018-06-26 | International Business Machines Corporation | Alternative multiple memory format storage in a storage network |
US9135115B2 (en) | 2010-02-27 | 2015-09-15 | Cleversafe, Inc. | Storing data in multiple formats including a dispersed storage format |
US11429486B1 (en) | 2010-02-27 | 2022-08-30 | Pure Storage, Inc. | Rebuilding data via locally decodable redundancy in a vast storage network |
US10216647B2 (en) | 2010-02-27 | 2019-02-26 | International Business Machines Corporation | Compacting dispersed storage space |
US10275347B2 (en) * | 2010-03-08 | 2019-04-30 | Excalibur Ip, Llc | System, method and computer program product for managing caches |
JP5336405B2 (ja) * | 2010-03-10 | 2013-11-06 | 富士フイルム株式会社 | 社内情報閲覧用サーバ・システムおよびその制御方法 |
US8566552B2 (en) | 2010-03-12 | 2013-10-22 | Cleversafe, Inc. | Dispersed storage network resource allocation |
US8707091B2 (en) * | 2010-03-15 | 2014-04-22 | Cleversafe, Inc. | Failsafe directory file system in a dispersed storage network |
US9170884B2 (en) | 2010-03-16 | 2015-10-27 | Cleversafe, Inc. | Utilizing cached encoded data slices in a dispersed storage network |
US9229824B2 (en) | 2010-03-16 | 2016-01-05 | International Business Machines Corporation | Caching rebuilt encoded data slices in a dispersed storage network |
US8938013B2 (en) * | 2010-03-16 | 2015-01-20 | Cleversafe, Inc. | Dispersal of priority data in a dispersed storage network |
US20110239231A1 (en) * | 2010-03-23 | 2011-09-29 | International Business Machines Corporation | Migrating electronic document version contents and version metadata as a collection with a single operation |
US9391716B2 (en) | 2010-04-05 | 2016-07-12 | Microsoft Technology Licensing, Llc | Data center using wireless communication |
US8763009B2 (en) | 2010-04-17 | 2014-06-24 | Code Systems Corporation | Method of hosting a first application in a second application |
US9170892B2 (en) | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US9813529B2 (en) | 2011-04-28 | 2017-11-07 | Microsoft Technology Licensing, Llc | Effective circuits in packet-switched networks |
US9454441B2 (en) | 2010-04-19 | 2016-09-27 | Microsoft Technology Licensing, Llc | Data layout for recovery and durability |
US8620724B2 (en) * | 2010-04-20 | 2013-12-31 | Accenture Global Services Limited | Integration framework for enterprise content management systems |
EP2387200B1 (de) | 2010-04-23 | 2014-02-12 | Compuverde AB | Verteilte Datenspeicherung |
US8625635B2 (en) | 2010-04-26 | 2014-01-07 | Cleversafe, Inc. | Dispersed storage network frame protocol header |
US9495117B2 (en) | 2010-04-26 | 2016-11-15 | International Business Machines Corporation | Storing data in a dispersed storage network |
US8914669B2 (en) | 2010-04-26 | 2014-12-16 | Cleversafe, Inc. | Secure rebuilding of an encoded data slice in a dispersed storage network |
US9606858B2 (en) | 2010-04-26 | 2017-03-28 | International Business Machines Corporation | Temporarily storing an encoded data slice |
US8938552B2 (en) | 2010-08-02 | 2015-01-20 | Cleversafe, Inc. | Resolving a protocol issue within a dispersed storage network |
US10956292B1 (en) | 2010-04-26 | 2021-03-23 | Pure Storage, Inc. | Utilizing integrity information for data retrieval in a vast storage system |
US9092386B2 (en) | 2010-04-26 | 2015-07-28 | Cleversafe, Inc. | Indicating an error within a dispersed storage network |
US10447767B2 (en) | 2010-04-26 | 2019-10-15 | Pure Storage, Inc. | Resolving a performance issue within a dispersed storage network |
US9898373B2 (en) | 2010-04-26 | 2018-02-20 | International Business Machines Corporation | Prioritizing rebuilding of stored data in a dispersed storage network |
US11740972B1 (en) | 2010-05-19 | 2023-08-29 | Pure Storage, Inc. | Migrating data in a vast storage network |
US8521697B2 (en) | 2010-05-19 | 2013-08-27 | Cleversafe, Inc. | Rebuilding data in multiple dispersed storage networks |
US8621580B2 (en) | 2010-05-19 | 2013-12-31 | Cleversafe, Inc. | Retrieving access information in a dispersed storage network |
US10193689B2 (en) | 2010-05-19 | 2019-01-29 | International Business Machines Corporation | Storing access information in a dispersed storage network |
US10353774B2 (en) | 2015-10-30 | 2019-07-16 | International Business Machines Corporation | Utilizing storage unit latency data in a dispersed storage network |
US10911230B2 (en) | 2010-05-19 | 2021-02-02 | Pure Storage, Inc. | Securely activating functionality of a computing device in a dispersed storage network |
US8448044B2 (en) | 2010-05-19 | 2013-05-21 | Cleversafe, Inc. | Retrieving data from a dispersed storage network in accordance with a retrieval threshold |
US8909858B2 (en) | 2010-06-09 | 2014-12-09 | Cleversafe, Inc. | Storing encoded data slices in a dispersed storage network |
US8612831B2 (en) | 2010-06-22 | 2013-12-17 | Cleversafe, Inc. | Accessing data stored in a dispersed storage memory |
US8321487B1 (en) * | 2010-06-30 | 2012-11-27 | Emc Corporation | Recovery of directory information |
US9218359B2 (en) | 2010-07-02 | 2015-12-22 | Code Systems Corporation | Method and system for profiling virtual application resource utilization patterns by executing virtualized application |
US9131263B2 (en) | 2010-07-09 | 2015-09-08 | Sling Media, Inc. | Methods and apparatus for controlled removal of content from a distributed network |
US8347100B1 (en) | 2010-07-14 | 2013-01-01 | F5 Networks, Inc. | Methods for DNSSEC proxying and deployment amelioration and systems thereof |
US20190095101A1 (en) | 2010-08-02 | 2019-03-28 | International Business Machines Corporation | Authenticating a credential in a dispersed storage network |
US9063968B2 (en) | 2010-08-02 | 2015-06-23 | Cleversafe, Inc. | Identifying a compromised encoded data slice |
US10162524B2 (en) | 2010-08-02 | 2018-12-25 | International Business Machines Corporation | Determining whether to compress a data segment in a dispersed storage network |
US8627114B2 (en) | 2010-08-02 | 2014-01-07 | Cleversafe, Inc. | Authenticating a data access request to a dispersed storage network |
US9077734B2 (en) | 2010-08-02 | 2015-07-07 | Cleversafe, Inc. | Authentication of devices of a dispersed storage network |
US9940195B2 (en) | 2010-08-25 | 2018-04-10 | International Business Machines Corporation | Encryption of slice partials |
US10255135B2 (en) | 2010-08-25 | 2019-04-09 | International Business Machines Corporation | Method and apparatus for non-interactive information dispersal |
US8904226B2 (en) | 2010-08-26 | 2014-12-02 | Cleversafe, Inc. | Migrating stored copies of a file to stored encoded data slices |
US8788576B2 (en) * | 2010-09-27 | 2014-07-22 | Z124 | High speed parallel data exchange with receiver side data handling |
US8751682B2 (en) | 2010-09-27 | 2014-06-10 | Z124 | Data transfer using high speed connection, high integrity connection, and descriptor |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
TWI592805B (zh) * | 2010-10-01 | 2017-07-21 | 傅冠彰 | 網路儲存與計算資源分享系統與方法 |
US9571230B2 (en) | 2010-10-06 | 2017-02-14 | International Business Machines Corporation | Adjusting routing of data within a network path |
US10298957B2 (en) | 2010-10-06 | 2019-05-21 | International Business Machines Corporation | Content-based encoding in a multiple routing path communications system |
US10970168B2 (en) | 2010-10-06 | 2021-04-06 | Pure Storage, Inc. | Adjusting dispersed storage error encoding parameters based on path performance |
US9843412B2 (en) | 2010-10-06 | 2017-12-12 | International Business Machines Corporation | Optimizing routing of data across a communications network |
US8656138B2 (en) | 2010-10-06 | 2014-02-18 | Cleversafe, Inc. | Efficiently accessing an encoded data slice utilizing a memory bin |
US8918693B2 (en) | 2010-10-06 | 2014-12-23 | Cleversafe, Inc. | Data transmission utilizing data processing and dispersed storage error encoding |
US9286298B1 (en) | 2010-10-14 | 2016-03-15 | F5 Networks, Inc. | Methods for enhancing management of backup data sets and devices thereof |
US10209967B2 (en) | 2010-10-18 | 2019-02-19 | Infosys Technologies Ltd. | System and method for detecting preventative maintenance operations in computer source code |
US9021015B2 (en) | 2010-10-18 | 2015-04-28 | Code Systems Corporation | Method and system for publishing virtual applications to a web server |
JP5822452B2 (ja) * | 2010-10-22 | 2015-11-24 | 株式会社インテック | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
US9209976B2 (en) | 2010-10-29 | 2015-12-08 | Code Systems Corporation | Method and system for restricting execution of virtual applications to a managed process environment |
US10082970B2 (en) | 2010-11-01 | 2018-09-25 | International Business Machines Corporation | Storing an effective dynamic width of encoded data slices |
US10146645B2 (en) | 2010-11-01 | 2018-12-04 | International Business Machines Corporation | Multiple memory format storage in a storage network |
US10805042B2 (en) | 2010-11-01 | 2020-10-13 | Pure Storage, Inc. | Creating transmission data slices for use in a dispersed storage network |
US10289318B2 (en) | 2010-11-01 | 2019-05-14 | International Business Machines Corporation | Adjusting optimistic writes in a dispersed storage network |
US9015499B2 (en) | 2010-11-01 | 2015-04-21 | Cleversafe, Inc. | Verifying data integrity utilizing dispersed storage |
US8707105B2 (en) | 2010-11-01 | 2014-04-22 | Cleversafe, Inc. | Updating a set of memory devices in a dispersed storage network |
US10768833B2 (en) | 2010-11-01 | 2020-09-08 | Pure Storage, Inc. | Object dispersal load balancing |
US8627065B2 (en) | 2010-11-09 | 2014-01-07 | Cleversafe, Inc. | Validating a certificate chain in a dispersed storage network |
US9590838B2 (en) | 2010-11-09 | 2017-03-07 | International Business Machines Corporation | Transferring data of a dispersed storage network |
US11061597B2 (en) | 2010-11-09 | 2021-07-13 | Pure Storage, Inc. | Supporting live migrations and re-balancing with a virtual storage unit |
US10394757B2 (en) | 2010-11-18 | 2019-08-27 | Microsoft Technology Licensing, Llc | Scalable chunk store for data deduplication |
US10216759B2 (en) | 2010-11-22 | 2019-02-26 | Microsoft Technology Licensing, Llc | Heterogeneous file optimization |
US9336139B2 (en) | 2010-11-29 | 2016-05-10 | Cleversafe, Inc. | Selecting a memory for storage of an encoded data slice in a dispersed storage network |
US11789631B2 (en) | 2010-11-29 | 2023-10-17 | Pure Storage, Inc. | Utilizing metadata storage trees in a vast storage network |
US9454431B2 (en) | 2010-11-29 | 2016-09-27 | International Business Machines Corporation | Memory selection for slice storage in a dispersed storage network |
US8856846B2 (en) * | 2010-11-29 | 2014-10-07 | At&T Intellectual Property I, L.P. | Content placement |
US11307930B1 (en) | 2010-11-29 | 2022-04-19 | Pure Storage, Inc. | Optimized selection of participants in distributed data rebuild/verification |
US10922179B2 (en) | 2010-11-29 | 2021-02-16 | Pure Storage, Inc. | Post rebuild verification |
US10372350B2 (en) | 2010-11-29 | 2019-08-06 | Pure Storage, Inc. | Shared ownership of namespace ranges |
US10802763B2 (en) | 2010-11-29 | 2020-10-13 | Pure Storage, Inc. | Remote storage verification |
US9609052B2 (en) | 2010-12-02 | 2017-03-28 | A10 Networks, Inc. | Distributing application traffic to servers based on dynamic service response time |
US9170882B2 (en) | 2010-12-22 | 2015-10-27 | Cleversafe, Inc. | Retrieving data segments from a dispersed storage network |
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
US8683231B2 (en) | 2010-12-27 | 2014-03-25 | Cleversafe, Inc. | Obfuscating data stored in a dispersed storage network |
SE1051394A1 (sv) * | 2010-12-30 | 2011-10-13 | Axiomatics Ab | A system and method for evaluating a reverse query |
US9646164B2 (en) | 2010-12-30 | 2017-05-09 | Aziomatics Ab | System and method for evaluating a reverse query |
US8478858B2 (en) | 2011-02-01 | 2013-07-02 | Limelight Networks, Inc. | Policy management for content storage in content delivery networks |
US8521813B2 (en) | 2011-02-01 | 2013-08-27 | Limelight Networks, Inc. | Content replication workflow in content delivery networks |
US8396970B2 (en) | 2011-02-01 | 2013-03-12 | Limelight Networks, Inc. | Content processing between locations workflow in content delivery networks |
US8615577B2 (en) | 2011-02-01 | 2013-12-24 | Limelight Networks, Inc. | Policy based processing of content objects in a content delivery network using mutators |
US8291083B2 (en) | 2011-02-01 | 2012-10-16 | Limelight Networks, Inc. | Distributed landing pad and brick topology for content storage in content delivery networks |
US8726127B2 (en) | 2011-02-01 | 2014-05-13 | Cleversafe, Inc. | Utilizing a dispersed storage network access token module to access a dispersed storage network memory |
US8688949B2 (en) | 2011-02-01 | 2014-04-01 | Cleversafe, Inc. | Modifying data storage in response to detection of a memory system imbalance |
TWI424322B (zh) * | 2011-02-08 | 2014-01-21 | Kinghood Technology Co Ltd | 提供大量資料流存取的資料流管理系統 |
US8910022B2 (en) | 2011-03-02 | 2014-12-09 | Cleversafe, Inc. | Retrieval of encoded data slices and encoded instruction slices by a computing device |
US9658911B2 (en) | 2011-03-02 | 2017-05-23 | International Business Machines Corporation | Selecting a directory of a dispersed storage network |
US8510267B2 (en) * | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
US8843804B2 (en) | 2011-04-01 | 2014-09-23 | Cleversafe, Inc. | Adjusting a dispersal parameter of dispersedly stored data |
US10298684B2 (en) | 2011-04-01 | 2019-05-21 | International Business Machines Corporation | Adaptive replication of dispersed data to improve data access performance |
US8874990B2 (en) | 2011-04-01 | 2014-10-28 | Cleversafe, Inc. | Pre-fetching data segments stored in a dispersed storage network |
US11418580B2 (en) | 2011-04-01 | 2022-08-16 | Pure Storage, Inc. | Selective generation of secure signatures in a distributed storage network |
US8649995B2 (en) | 2011-04-07 | 2014-02-11 | Infosys Technologies, Ltd. | System and method for efficient test case generation using input dependency information |
US8707393B2 (en) | 2011-05-09 | 2014-04-22 | Cleversafe, Inc. | Providing dispersed storage network location information of a hypertext markup language file |
US8996910B2 (en) | 2011-05-09 | 2015-03-31 | Cleversafe, Inc. | Assigning a dispersed storage network address range in a maintenance free storage container |
US20170192684A1 (en) | 2011-05-09 | 2017-07-06 | International Business Machines Corporation | Auditing a transaction in a dispersed storage network |
US9219604B2 (en) | 2011-05-09 | 2015-12-22 | Cleversafe, Inc. | Generating an encrypted message for storage |
US9298550B2 (en) | 2011-05-09 | 2016-03-29 | Cleversafe, Inc. | Assigning a dispersed storage network address range in a maintenance free storage container |
US10949301B2 (en) | 2011-06-06 | 2021-03-16 | Pure Storage, Inc. | Pre-positioning pre-stored content in a content distribution system |
US10061650B2 (en) | 2011-06-06 | 2018-08-28 | International Business Machines Corporation | Priority based rebuilding |
US8756480B2 (en) | 2011-06-06 | 2014-06-17 | Cleversafe, Inc. | Prioritized deleting of slices stored in a dispersed storage network |
US8656253B2 (en) | 2011-06-06 | 2014-02-18 | Cleversafe, Inc. | Storing portions of data in a dispersed storage network |
US10042709B2 (en) | 2011-06-06 | 2018-08-07 | International Business Machines Corporation | Rebuild prioritization during a plurality of concurrent data object write operations |
US8396836B1 (en) | 2011-06-30 | 2013-03-12 | F5 Networks, Inc. | System for mitigating file virtualization storage import latency |
US8924770B2 (en) | 2011-07-06 | 2014-12-30 | Cleversafe, Inc. | Rebuilding a data slice of a maintenance free storage container |
US8762770B2 (en) | 2011-07-06 | 2014-06-24 | Cleversafe, Inc. | Distribution of a customized preview of multi-media content |
US9553817B1 (en) | 2011-07-14 | 2017-01-24 | Sprint Communications Company L.P. | Diverse transmission of packet content |
EP2737431A4 (de) | 2011-07-27 | 2015-03-25 | Cleversafe Inc | Erzeugung von verteilten speichernetzwerkereignisaufzeichnungen |
US10678619B2 (en) | 2011-07-27 | 2020-06-09 | Pure Storage, Inc. | Unified logs and device statistics |
US11016702B2 (en) | 2011-07-27 | 2021-05-25 | Pure Storage, Inc. | Hierarchical event tree |
US8683008B1 (en) | 2011-08-04 | 2014-03-25 | Google Inc. | Management of pre-fetched mapping data incorporating user-specified locations |
US9772784B2 (en) | 2011-08-10 | 2017-09-26 | Nutanix, Inc. | Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure |
US9229823B2 (en) | 2011-08-17 | 2016-01-05 | International Business Machines Corporation | Storage and retrieval of dispersed storage network access information |
US10454678B2 (en) | 2011-08-17 | 2019-10-22 | Pure Storage, Inc. | Accesor-based audit trails |
US9971802B2 (en) | 2011-08-17 | 2018-05-15 | International Business Machines Corporation | Audit record transformation in a dispersed storage network |
US10120756B2 (en) | 2011-08-17 | 2018-11-06 | International Business Machines Corporation | Audit object generation in a dispersed storage network |
US8954448B1 (en) | 2011-08-31 | 2015-02-10 | Amazon Technologies, Inc. | Presenting content related to current media consumption |
US8990171B2 (en) | 2011-09-01 | 2015-03-24 | Microsoft Corporation | Optimization of a partially deduplicated file |
US8645978B2 (en) | 2011-09-02 | 2014-02-04 | Compuverde Ab | Method for data maintenance |
US9626378B2 (en) | 2011-09-02 | 2017-04-18 | Compuverde Ab | Method for handling requests in a storage system and a storage node for a storage system |
US8650365B2 (en) | 2011-09-02 | 2014-02-11 | Compuverde Ab | Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes |
US8769138B2 (en) | 2011-09-02 | 2014-07-01 | Compuverde Ab | Method for data retrieval from a distributed data storage system |
US9021053B2 (en) | 2011-09-02 | 2015-04-28 | Compuverde Ab | Method and device for writing data to a data storage system comprising a plurality of data storage nodes |
US8997124B2 (en) | 2011-09-02 | 2015-03-31 | Compuverde Ab | Method for updating data in a distributed data storage system |
US10235237B2 (en) | 2011-09-06 | 2019-03-19 | Intertnational Business Machines Corporation | Decoding data streams in a distributed storage network |
US8930649B2 (en) | 2011-09-06 | 2015-01-06 | Cleversafe, Inc. | Concurrent coding of data streams |
US8204966B1 (en) | 2011-09-26 | 2012-06-19 | Google Inc. | Map tile data pre-fetching based on user activity analysis |
US8280414B1 (en) | 2011-09-26 | 2012-10-02 | Google Inc. | Map tile data pre-fetching based on mobile device generated event analysis |
US9774721B2 (en) | 2011-09-27 | 2017-09-26 | Z124 | LTE upgrade module |
US9495012B2 (en) | 2011-09-27 | 2016-11-15 | Z124 | Secondary single screen mode activation through user interface activation |
US9274864B2 (en) | 2011-10-04 | 2016-03-01 | International Business Machines Corporation | Accessing large amounts of data in a dispersed storage network |
US8677214B2 (en) | 2011-10-04 | 2014-03-18 | Cleversafe, Inc. | Encoding data utilizing a zero information gain function |
US8555130B2 (en) | 2011-10-04 | 2013-10-08 | Cleversafe, Inc. | Storing encoded data slices in a dispersed storage unit |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
JP5818630B2 (ja) * | 2011-10-25 | 2015-11-18 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 仕様検証方法、プログラム及びシステム |
US8463850B1 (en) | 2011-10-26 | 2013-06-11 | F5 Networks, Inc. | System and method of algorithmically generating a server side transaction identifier |
US9304843B2 (en) | 2011-11-01 | 2016-04-05 | Cleversafe, Inc. | Highly secure method for accessing a dispersed storage network |
US10365969B2 (en) | 2011-11-01 | 2019-07-30 | International Business Machines Corporation | Multiple wireless communication systems stream slices based on geography |
US10496500B2 (en) | 2011-11-01 | 2019-12-03 | Pure Storage, Inc. | Preemptively reading extra encoded data slices |
US10437678B2 (en) | 2011-11-01 | 2019-10-08 | Pure Storage, Inc. | Updating an encoded data slice |
US9798616B2 (en) | 2011-11-01 | 2017-10-24 | International Business Machines Corporation | Wireless sending a set of encoded data slices |
US11329830B1 (en) | 2011-11-01 | 2022-05-10 | Pure Storage, Inc. | Dispersed credentials |
US8627066B2 (en) | 2011-11-03 | 2014-01-07 | Cleversafe, Inc. | Processing a dispersed storage network access request utilizing certificate chain validation information |
US9047019B2 (en) * | 2011-11-08 | 2015-06-02 | Sybase, Inc. | Shared temporary storage management in a shared disk database cluster |
US9275374B1 (en) | 2011-11-15 | 2016-03-01 | Google Inc. | Method and apparatus for pre-fetching place page data based upon analysis of user activities |
US8886715B1 (en) | 2011-11-16 | 2014-11-11 | Google Inc. | Dynamically determining a tile budget when pre-fetching data in a client device |
US9063951B1 (en) | 2011-11-16 | 2015-06-23 | Google Inc. | Pre-fetching map data based on a tile budget |
US8711181B1 (en) | 2011-11-16 | 2014-04-29 | Google Inc. | Pre-fetching map data using variable map tile radius |
US8848906B2 (en) | 2011-11-28 | 2014-09-30 | Cleversafe, Inc. | Encrypting data for storage in a dispersed storage network |
US10055283B2 (en) | 2011-11-28 | 2018-08-21 | International Business Machines Corporation | Securely distributing random keys in a dispersed storage network |
US10469578B2 (en) | 2011-11-28 | 2019-11-05 | Pure Storage, Inc. | Prioritization of messages of a dispersed storage network |
US10318445B2 (en) | 2011-11-28 | 2019-06-11 | International Business Machines Corporation | Priority level adaptation in a dispersed storage network |
US20130138705A1 (en) * | 2011-11-28 | 2013-05-30 | Hitachi, Ltd. | Storage system controller, storage system, and access control method |
US11474958B1 (en) | 2011-11-28 | 2022-10-18 | Pure Storage, Inc. | Generating and queuing system messages with priorities in a storage network |
US10387071B2 (en) | 2011-11-28 | 2019-08-20 | Pure Storage, Inc. | On-the-fly cancellation of unnecessary read requests |
US10558592B2 (en) | 2011-11-28 | 2020-02-11 | Pure Storage, Inc. | Priority level adaptation in a dispersed storage network |
US10977194B2 (en) | 2011-11-28 | 2021-04-13 | Pure Storage, Inc. | Securely storing random keys in a dispersed storage network |
US9386088B2 (en) | 2011-11-29 | 2016-07-05 | A10 Networks, Inc. | Accelerating service processing using fast path TCP |
US20130138884A1 (en) * | 2011-11-30 | 2013-05-30 | Hitachi, Ltd. | Load distribution system |
US9305107B2 (en) | 2011-12-08 | 2016-04-05 | Google Inc. | Method and apparatus for pre-fetching place page data for subsequent display on a mobile computing device |
US9197713B2 (en) | 2011-12-09 | 2015-11-24 | Google Inc. | Method and apparatus for pre-fetching remote resources for subsequent display on a mobile computing device |
US10346218B2 (en) | 2011-12-12 | 2019-07-09 | International Business Machines Corporation | Partial task allocation in a dispersed storage network |
US9141468B2 (en) | 2011-12-12 | 2015-09-22 | Cleversafe, Inc. | Managing memory utilization in a distributed storage and task network |
US9674155B2 (en) | 2011-12-12 | 2017-06-06 | International Business Machines Corporation | Encrypting segmented data in a distributed computing system |
US9817701B2 (en) | 2011-12-12 | 2017-11-14 | International Business Machines Corporation | Threshold computing in a distributed computing system |
US8898542B2 (en) | 2011-12-12 | 2014-11-25 | Cleversafe, Inc. | Executing partial tasks in a distributed storage and task network |
US20180083930A1 (en) | 2011-12-12 | 2018-03-22 | International Business Machines Corporation | Reads for dispersed computation jobs |
US10176045B2 (en) | 2011-12-12 | 2019-01-08 | International Business Machines Corporation | Internet based shared memory in a distributed computing system |
US10348640B2 (en) | 2011-12-12 | 2019-07-09 | International Business Machines Corporation | Partial task execution in a dispersed storage network |
US10666596B2 (en) | 2011-12-12 | 2020-05-26 | Pure Storage, Inc. | Messaging via a shared memory of a distributed computing system |
US10104168B2 (en) | 2011-12-12 | 2018-10-16 | International Business Machines Corporation | Method for managing throughput in a distributed storage network |
US10146621B2 (en) | 2011-12-12 | 2018-12-04 | International Business Machines Corporation | Chaining computes in a distributed computing system |
US20130238900A1 (en) | 2011-12-12 | 2013-09-12 | Cleversafe, Inc. | Dispersed storage network secure hierarchical file directory |
US8803920B2 (en) | 2011-12-12 | 2014-08-12 | Google Inc. | Pre-fetching map tile data along a route |
US10360106B2 (en) | 2011-12-12 | 2019-07-23 | International Business Machines Corporation | Throttled real-time writes |
US9009567B2 (en) | 2011-12-12 | 2015-04-14 | Cleversafe, Inc. | Encrypting distributed computing data |
US9389088B2 (en) | 2011-12-12 | 2016-07-12 | Google Inc. | Method of pre-fetching map data for rendering and offline routing |
US9430286B2 (en) | 2011-12-12 | 2016-08-30 | International Business Machines Corporation | Authorizing distributed task processing in a distributed storage network |
US9584359B2 (en) | 2011-12-12 | 2017-02-28 | International Business Machines Corporation | Distributed storage and computing of interim data |
US8832296B2 (en) * | 2011-12-15 | 2014-09-09 | Microsoft Corporation | Fast application streaming using on-demand staging |
US8938550B2 (en) * | 2011-12-15 | 2015-01-20 | Microsoft Corporation | Autonomous network streaming |
US9094364B2 (en) | 2011-12-23 | 2015-07-28 | A10 Networks, Inc. | Methods to manage services over a service gateway |
US9154367B1 (en) * | 2011-12-27 | 2015-10-06 | Google Inc. | Load balancing and content preservation |
US10860563B2 (en) * | 2012-01-06 | 2020-12-08 | Microsoft Technology Licensing, Llc | Distributed database with modular blocks and associated log files |
US8850054B2 (en) * | 2012-01-17 | 2014-09-30 | International Business Machines Corporation | Hypertext transfer protocol live streaming |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US9146810B2 (en) | 2012-01-31 | 2015-09-29 | Cleversafe, Inc. | Identifying a potentially compromised encoded data slice |
US9514132B2 (en) | 2012-01-31 | 2016-12-06 | International Business Machines Corporation | Secure data migration in a dispersed storage network |
US9465861B2 (en) | 2012-01-31 | 2016-10-11 | International Business Machines Corporation | Retrieving indexed data from a dispersed storage network |
US9891995B2 (en) | 2012-01-31 | 2018-02-13 | International Business Machines Corporation | Cooperative decentralized rebuild scanning |
US10671585B2 (en) | 2012-01-31 | 2020-06-02 | Pure Storage, Inc. | Storing indexed data to a dispersed storage network |
US9203902B2 (en) | 2012-01-31 | 2015-12-01 | Cleversafe, Inc. | Securely and reliably storing data in a dispersed storage network |
US9020912B1 (en) | 2012-02-20 | 2015-04-28 | F5 Networks, Inc. | Methods for accessing data in a compressed file system and devices thereof |
US9588994B2 (en) | 2012-03-02 | 2017-03-07 | International Business Machines Corporation | Transferring task execution in a distributed storage and task network |
US9355120B1 (en) * | 2012-03-02 | 2016-05-31 | Netapp, Inc. | Systems and methods for managing files in a content storage system |
US9171031B2 (en) | 2012-03-02 | 2015-10-27 | Cleversafe, Inc. | Merging index nodes of a hierarchical dispersed storage index |
US10157051B2 (en) | 2012-03-02 | 2018-12-18 | International Business Machines Corporation | Upgrading devices in a dispersed storage network |
US11232093B2 (en) | 2012-03-02 | 2022-01-25 | Pure Storage, Inc. | Slice migration in a dispersed storage network |
US10402393B2 (en) | 2012-03-02 | 2019-09-03 | Pure Storage, Inc. | Slice migration in a dispersed storage network |
US20130254248A1 (en) * | 2012-03-23 | 2013-09-26 | Alcatel-Lucent Usa Inc. | Method And Apparatus For A Distributed File System In A Cloud Network |
US9118618B2 (en) | 2012-03-29 | 2015-08-25 | A10 Networks, Inc. | Hardware-based packet editor |
CN102611758B (zh) * | 2012-03-30 | 2016-08-17 | 浪潮电子信息产业股份有限公司 | 一种利用负载均衡器同步集群数据的方法 |
WO2013155392A1 (en) * | 2012-04-13 | 2013-10-17 | Citrix Systems, Inc. | Systems and methods for trap monitoring in multi-core and cluster systems |
US10621044B2 (en) | 2012-04-25 | 2020-04-14 | Pure Storage, Inc. | Mapping slice groupings in a dispersed storage network |
US10795766B2 (en) | 2012-04-25 | 2020-10-06 | Pure Storage, Inc. | Mapping slice groupings in a dispersed storage network |
US9380032B2 (en) | 2012-04-25 | 2016-06-28 | International Business Machines Corporation | Encrypting data for storage in a dispersed storage network |
US9332387B2 (en) | 2012-05-02 | 2016-05-03 | Google Inc. | Prefetching and caching map data based on mobile network coverage |
US10474395B2 (en) | 2012-06-05 | 2019-11-12 | Pure Storage, Inc. | Abstracting namespace mapping in a dispersed storage network through multiple hierarchies |
US10073638B2 (en) | 2012-06-05 | 2018-09-11 | International Business Machines Corporation | Automatic namespace ordering determination |
US9613052B2 (en) | 2012-06-05 | 2017-04-04 | International Business Machines Corporation | Establishing trust within a cloud computing system |
US10447471B2 (en) | 2012-06-05 | 2019-10-15 | Pure Storage, Inc. | Systematic secret sharing |
US10002047B2 (en) | 2012-06-05 | 2018-06-19 | International Business Machines Corporation | Read-if-not-revision-equals protocol message |
US20180336097A1 (en) | 2012-06-25 | 2018-11-22 | International Business Machines Corporation | Namespace affinity and failover for processing units in a dispersed storage network |
US10114697B2 (en) | 2012-06-25 | 2018-10-30 | International Business Machines Corporation | Large object parallel writing |
US10120574B2 (en) | 2012-06-25 | 2018-11-06 | International Business Machines Corporation | Reversible data modifications within DS units |
US11093327B1 (en) | 2012-06-25 | 2021-08-17 | Pure Storage, Inc. | Failure abatement approach for failed storage units common to multiple vaults |
US10157011B2 (en) | 2012-06-25 | 2018-12-18 | International Business Machines Corporation | Temporary suspension of vault access |
US9141297B2 (en) | 2012-06-25 | 2015-09-22 | Cleversafe, Inc. | Verifying encoded data slice integrity in a dispersed storage network |
US9110833B2 (en) | 2012-06-25 | 2015-08-18 | Cleversafe, Inc. | Non-temporarily storing temporarily stored data in a dispersed storage network |
US10430276B2 (en) | 2012-06-25 | 2019-10-01 | Pure Storage, Inc. | Optimal orderings of processing unit priorities in a dispersed storage network |
US9223799B1 (en) * | 2012-06-29 | 2015-12-29 | Emc Corporation | Lightweight metadata sharing protocol for location transparent file access |
US8782221B2 (en) | 2012-07-05 | 2014-07-15 | A10 Networks, Inc. | Method to allocate buffer for TCP proxy session based on dynamic network conditions |
US8904224B2 (en) * | 2012-07-20 | 2014-12-02 | International Business Machines Corporation | Providing replication and fail-over as a network service in data centers |
US8849942B1 (en) | 2012-07-31 | 2014-09-30 | Google Inc. | Application programming interface for prefetching map data |
US10651975B2 (en) | 2012-08-02 | 2020-05-12 | Pure Storage, Inc. | Forwarding data amongst cooperative DSTN processing units of a massive data ingestion system |
US9258177B2 (en) | 2012-08-02 | 2016-02-09 | International Business Machines Corporation | Storing a data stream in a set of storage devices |
US9778856B2 (en) * | 2012-08-30 | 2017-10-03 | Microsoft Technology Licensing, Llc | Block-level access to parallel storage |
US9875158B2 (en) | 2012-08-31 | 2018-01-23 | International Business Machines Corporation | Slice storage in a dispersed storage network |
US10331518B2 (en) | 2012-08-31 | 2019-06-25 | International Business Machines Corporation | Encoding data in a dispersed storage network |
US10409679B2 (en) | 2012-08-31 | 2019-09-10 | Pure Storage, Inc. | Migrating data slices in a dispersed storage network |
US10409678B2 (en) | 2012-08-31 | 2019-09-10 | Pure Storage, Inc. | Self-optimizing read-ahead |
US9154298B2 (en) | 2012-08-31 | 2015-10-06 | Cleversafe, Inc. | Securely storing data in a dispersed storage network |
US11360851B2 (en) | 2012-08-31 | 2022-06-14 | Pure Storage, Inc. | Duplicating authentication information between connections |
US10241863B2 (en) | 2012-08-31 | 2019-03-26 | International Business Machines Corporation | Slice rebuilding in a dispersed storage network |
US9317508B2 (en) * | 2012-09-07 | 2016-04-19 | Red Hat, Inc. | Pro-active self-healing in a distributed file system |
US10402423B2 (en) | 2012-09-13 | 2019-09-03 | Pure Storage, Inc. | Sliding windows for batching index updates |
US10318549B2 (en) | 2012-09-13 | 2019-06-11 | International Business Machines Corporation | Batching modifications to nodes in a dispersed index |
US10417253B2 (en) | 2012-09-13 | 2019-09-17 | Pure Storage, Inc. | Multi-level data storage in a dispersed storage network |
US9483539B2 (en) | 2012-09-13 | 2016-11-01 | International Business Machines Corporation | Updating local data utilizing a distributed storage network |
US10057351B2 (en) | 2012-09-13 | 2018-08-21 | International Business Machines Corporation | Modifying information dispersal algorithm configurations in a dispersed storage network |
US10331698B2 (en) | 2012-09-13 | 2019-06-25 | International Business Machines Corporation | Rebuilding data in a dispersed storage network |
US9355036B2 (en) | 2012-09-18 | 2016-05-31 | Netapp, Inc. | System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers |
US9843484B2 (en) | 2012-09-25 | 2017-12-12 | A10 Networks, Inc. | Graceful scaling in software driven networks |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
US9705800B2 (en) | 2012-09-25 | 2017-07-11 | A10 Networks, Inc. | Load distribution in data networks |
US10002141B2 (en) | 2012-09-25 | 2018-06-19 | A10 Networks, Inc. | Distributed database in software driven networks |
US8799335B2 (en) * | 2012-09-28 | 2014-08-05 | International Business Machines Corporation | Supporting coordinated access to a file system's shared storage using automatic alignment of a parallel file access protocol and metadata management |
US9519501B1 (en) | 2012-09-30 | 2016-12-13 | F5 Networks, Inc. | Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system |
US10127111B2 (en) | 2012-10-08 | 2018-11-13 | International Business Machines Corporation | Client provided request prioritization hints |
US10331519B2 (en) | 2012-10-08 | 2019-06-25 | International Business Machines Corporation | Application of secret sharing schemes at multiple levels of a dispersed storage network |
US10606700B2 (en) | 2012-10-08 | 2020-03-31 | Pure Storage, Inc. | Enhanced dispersed storage error encoding using multiple encoding layers |
US9311179B2 (en) | 2012-10-30 | 2016-04-12 | Cleversafe, Inc. | Threshold decoding of data based on trust levels |
US9794337B2 (en) | 2012-10-30 | 2017-10-17 | International Business Machines Corporation | Balancing storage node utilization of a dispersed storage network |
US20140143779A1 (en) * | 2012-11-19 | 2014-05-22 | Raytheon Company | Contextual routing of data elements |
US9521197B2 (en) | 2012-12-05 | 2016-12-13 | International Business Machines Corporation | Utilizing data object storage tracking in a dispersed storage network |
US9811533B2 (en) | 2012-12-05 | 2017-11-07 | International Business Machines Corporation | Accessing distributed computing functions in a distributed computing system |
US10558621B2 (en) | 2012-12-05 | 2020-02-11 | Pure Storage, Inc. | Lock stealing writes for improved reliability |
US10587691B2 (en) | 2012-12-05 | 2020-03-10 | Pure Storage, Inc. | Impatient writes |
US9338225B2 (en) | 2012-12-06 | 2016-05-10 | A10 Networks, Inc. | Forwarding policies on a virtual service network |
US8924425B1 (en) | 2012-12-06 | 2014-12-30 | Netapp, Inc. | Migrating data from legacy storage systems to object storage systems |
US9348840B2 (en) * | 2012-12-14 | 2016-05-24 | Intel Corporation | Adaptive data striping and replication across multiple storage clouds for high availability and performance |
US9264499B2 (en) | 2012-12-14 | 2016-02-16 | Intel Corporation | Cloud data storage location monitoring |
US9268797B2 (en) * | 2012-12-21 | 2016-02-23 | Zetta Inc. | Systems and methods for on-line backup and disaster recovery |
US10423491B2 (en) | 2013-01-04 | 2019-09-24 | Pure Storage, Inc. | Preventing multiple round trips when writing to target widths |
US10013203B2 (en) | 2013-01-04 | 2018-07-03 | International Business Machines Corporation | Achieving storage compliance in a dispersed storage network |
US10642992B2 (en) | 2013-01-04 | 2020-05-05 | Pure Storage, Inc. | Password augmented all-or-nothin transform |
US10241866B2 (en) | 2013-01-04 | 2019-03-26 | International Business Machines Corporation | Allocating rebuilding queue entries in a dispersed storage network |
US10402270B2 (en) | 2013-01-04 | 2019-09-03 | Pure Storage, Inc. | Deterministically determining affinity for a source name range |
US9311187B2 (en) | 2013-01-04 | 2016-04-12 | Cleversafe, Inc. | Achieving storage compliance in a dispersed storage network |
US11416340B1 (en) | 2013-01-04 | 2022-08-16 | Pure Storage, Inc. | Storage system with multiple storage types in a vast storage network |
US10229002B2 (en) | 2013-01-04 | 2019-03-12 | International Business Machines Corporation | Process to migrate named objects to a dispersed or distributed storage network (DSN) |
US20190250823A1 (en) | 2013-01-04 | 2019-08-15 | International Business Machines Corporation | Efficient computation of only the required slices |
US10204009B2 (en) | 2013-01-04 | 2019-02-12 | International Business Machines Corporation | Prioritized rebuilds using dispersed indices |
US9558067B2 (en) | 2013-01-04 | 2017-01-31 | International Business Machines Corporation | Mapping storage of data in a dispersed storage network |
US9531846B2 (en) | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US9197549B2 (en) * | 2013-01-23 | 2015-11-24 | Cisco Technology, Inc. | Server load balancer traffic steering |
US20140214886A1 (en) | 2013-01-29 | 2014-07-31 | ParElastic Corporation | Adaptive multi-client saas database |
US10621021B2 (en) | 2013-02-05 | 2020-04-14 | Pure Storage, Inc. | Using dispersed data structures to point to slice or date source replicas |
US10055441B2 (en) | 2013-02-05 | 2018-08-21 | International Business Machines Corporation | Updating shared group information in a dispersed storage network |
US9043499B2 (en) | 2013-02-05 | 2015-05-26 | Cleversafe, Inc. | Modifying a dispersed storage network memory data access response plan |
US10310763B2 (en) | 2013-02-05 | 2019-06-04 | International Business Machines Corporation | Forming a distributed storage network memory without namespace aware distributed storage units |
US10664360B2 (en) | 2013-02-05 | 2020-05-26 | Pure Storage, Inc. | Identifying additional resources to accelerate rebuildling |
US10430122B2 (en) | 2013-02-05 | 2019-10-01 | Pure Storage, Inc. | Using partial rebuilding to change information dispersal algorithm (IDA) |
US10268554B2 (en) | 2013-02-05 | 2019-04-23 | International Business Machines Corporation | Using dispersed computation to change dispersal characteristics |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US9274908B2 (en) | 2013-02-26 | 2016-03-01 | International Business Machines Corporation | Resolving write conflicts in a dispersed storage network |
US11036392B2 (en) | 2013-02-26 | 2021-06-15 | Pure Storage, Inc. | Determining when to use convergent encryption |
US10642489B2 (en) | 2013-02-26 | 2020-05-05 | Pure Storage, Inc. | Determining when to initiate an intra-distributed storage unit rebuild vs. an inter-distributed storage unit rebuild |
US9554418B1 (en) | 2013-02-28 | 2017-01-24 | F5 Networks, Inc. | Device for topology hiding of a visited network |
US9900252B2 (en) | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
WO2014144837A1 (en) | 2013-03-15 | 2014-09-18 | A10 Networks, Inc. | Processing data packets using a policy based network path |
CN105191225A (zh) * | 2013-03-28 | 2015-12-23 | 株式会社东芝 | 通信装置、通信方法、以及通信程序 |
US10075523B2 (en) | 2013-04-01 | 2018-09-11 | International Business Machines Corporation | Efficient storage of data in a dispersed storage network |
US9363132B2 (en) * | 2013-04-24 | 2016-06-07 | International Business Machines Corporation | Maximizing throughput of streaming media by simultaneously connecting to streaming media server over multiple independent network connections |
US10027761B2 (en) | 2013-05-03 | 2018-07-17 | A10 Networks, Inc. | Facilitating a secure 3 party network session by a network device |
US10223213B2 (en) | 2013-05-03 | 2019-03-05 | International Business Machines Corporation | Salted zero expansion all or nothing transformation |
WO2014179753A2 (en) | 2013-05-03 | 2014-11-06 | A10 Networks, Inc. | Facilitating secure network traffic by an application delivery controller |
US9456035B2 (en) | 2013-05-03 | 2016-09-27 | International Business Machines Corporation | Storing related data in a dispersed storage network |
US9405609B2 (en) | 2013-05-22 | 2016-08-02 | International Business Machines Corporation | Storing data in accordance with a performance threshold |
US9432341B2 (en) | 2013-05-30 | 2016-08-30 | International Business Machines Corporation | Securing data in a dispersed storage network |
US9424132B2 (en) | 2013-05-30 | 2016-08-23 | International Business Machines Corporation | Adjusting dispersed storage network traffic due to rebuilding |
US11226860B1 (en) | 2013-05-30 | 2022-01-18 | Pure Storage, Inc. | Difference based rebuild list scanning |
US9350800B2 (en) | 2013-06-05 | 2016-05-24 | Microsoft Technology Licensing, Llc | Defragmenting clusters with reserved resources |
US10133635B2 (en) | 2013-07-01 | 2018-11-20 | International Business Machines Corporation | Low-width vault in distributed storage system |
US10169369B2 (en) | 2013-07-01 | 2019-01-01 | International Business Machines Corporation | Meeting storage requirements with limited storage resources |
US11221916B2 (en) | 2013-07-01 | 2022-01-11 | Pure Storage, Inc. | Prioritized data reconstruction in a dispersed storage network |
US9501360B2 (en) | 2013-07-01 | 2016-11-22 | International Business Machines Corporation | Rebuilding data while reading data in a dispersed storage network |
US9652470B2 (en) | 2013-07-01 | 2017-05-16 | International Business Machines Corporation | Storing data in a dispersed storage network |
EP2836901B1 (de) * | 2013-07-02 | 2017-09-06 | Hitachi Data Systems Engineering UK Limited | Verfahren und vorrichtung zur virtualisierung eines dateisystems, datenspeichersystem zur virtualisierung eines dateisystems und dateiserver zur verwendung in einem datenspeichersystem |
US9626125B2 (en) | 2013-07-31 | 2017-04-18 | International Business Machines Corporation | Accounting for data that needs to be rebuilt or deleted |
US20180188964A1 (en) | 2013-07-31 | 2018-07-05 | International Business Machines Corporation | Managed storage unit shutdown in a distributed storage network |
US10180880B2 (en) | 2013-07-31 | 2019-01-15 | International Business Machines Corporation | Adaptive rebuilding rates based on sampling and inference |
US10681134B2 (en) | 2013-07-31 | 2020-06-09 | Pure Storage, Inc. | Accelerated learning in adaptive rebuilding by applying observations to other samples |
US9848044B2 (en) | 2013-07-31 | 2017-12-19 | International Business Machines Corporation | Distributed storage network with coordinated partial task execution and methods for use therewith |
US11422907B2 (en) | 2013-08-19 | 2022-08-23 | Microsoft Technology Licensing, Llc | Disconnected operation for systems utilizing cloud storage |
US9304997B2 (en) * | 2013-08-27 | 2016-04-05 | Netapp, Inc. | Asynchronously migrating a file system |
US9311331B2 (en) | 2013-08-27 | 2016-04-12 | Netapp, Inc. | Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system |
US20160041996A1 (en) | 2014-08-11 | 2016-02-11 | Netapp, Inc. | System and method for developing and implementing a migration plan for migrating a file system |
US9311314B2 (en) * | 2013-08-27 | 2016-04-12 | Netapp, Inc. | System and method for migrating data from a source file system to a destination file system with use of attribute manipulation |
US9300692B2 (en) | 2013-08-27 | 2016-03-29 | Netapp, Inc. | System and method for implementing data migration while preserving security policies of a source filer |
US10860529B2 (en) | 2014-08-11 | 2020-12-08 | Netapp Inc. | System and method for planning and configuring a file system migration |
US10601918B2 (en) | 2013-08-29 | 2020-03-24 | Pure Storage, Inc. | Rotating inactive storage units in a distributed storage network |
US10686880B2 (en) | 2013-08-29 | 2020-06-16 | Pure Storage, Inc. | Dispersed storage based on range availability and methods for use therewith |
US10489071B2 (en) | 2013-08-29 | 2019-11-26 | Pure Storage, Inc. | Vault provisioning within dispersed or distributed storage network (DSN) |
US9661074B2 (en) | 2013-08-29 | 2017-05-23 | International Business Machines Corporations | Updating de-duplication tracking data for a dispersed storage network |
US10514857B2 (en) | 2013-08-29 | 2019-12-24 | Pure Storage, Inc. | Dynamic adjusting of parameters based on resource scoring |
US10484474B2 (en) | 2013-08-29 | 2019-11-19 | Pure Storage, Inc. | Rotating offline DS units |
US8718445B1 (en) | 2013-09-03 | 2014-05-06 | Penthera Partners, Inc. | Commercials on mobile devices |
US10291503B2 (en) | 2013-09-26 | 2019-05-14 | Taiwan Semiconductor Manufacturing Co., Ltd. | File block placement in a distributed network |
US10341208B2 (en) | 2013-09-26 | 2019-07-02 | Taiwan Semiconductor Manufacturing Co., Ltd. | File block placement in a distributed network |
US9633041B2 (en) * | 2013-09-26 | 2017-04-25 | Taiwan Semiconductor Manufacturing Co., Ltd. | File block placement in a distributed file system network |
US9244916B2 (en) * | 2013-10-01 | 2016-01-26 | Penthera Partners, Inc. | Downloading media objects |
US9857974B2 (en) | 2013-10-03 | 2018-01-02 | International Business Machines Corporation | Session execution decision |
US9781208B2 (en) | 2013-11-01 | 2017-10-03 | International Business Machines Corporation | Obtaining dispersed storage network system registry information |
US10182115B2 (en) | 2013-11-01 | 2019-01-15 | International Business Machines Corporation | Changing rebuild priority for a class of data |
US10304096B2 (en) | 2013-11-01 | 2019-05-28 | International Business Machines Corporation | Renting a pipe to a storage system |
US10230770B2 (en) | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
US9900316B2 (en) | 2013-12-04 | 2018-02-20 | International Business Machines Corporation | Accessing storage units of a dispersed storage network |
US9594639B2 (en) | 2014-01-06 | 2017-03-14 | International Business Machines Corporation | Configuring storage resources of a dispersed storage network |
US10922181B2 (en) | 2014-01-06 | 2021-02-16 | Pure Storage, Inc. | Using storage locations greater than an IDA width in a dispersed storage network |
US11340993B2 (en) | 2014-01-06 | 2022-05-24 | Pure Storage, Inc. | Deferred rebuilding with alternate storage locations |
US9280780B2 (en) | 2014-01-27 | 2016-03-08 | Umbel Corporation | Systems and methods of generating and using a bitmap index |
US9778987B2 (en) | 2014-01-31 | 2017-10-03 | International Business Machines Corporation | Writing encoded data slices in a dispersed storage network |
US9552261B2 (en) | 2014-01-31 | 2017-01-24 | International Business Machines Corporation | Recovering data from microslices in a dispersed storage network |
US10318382B2 (en) | 2014-01-31 | 2019-06-11 | International Business Machines Corporation | Determining missing encoded data slices |
US11204836B1 (en) | 2014-01-31 | 2021-12-21 | Pure Storage, Inc. | Using trap slices for anomaly detection in a distributed storage network |
US9798631B2 (en) | 2014-02-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Block storage by decoupling ordering from durability |
US9529834B2 (en) | 2014-02-26 | 2016-12-27 | International Business Machines Corporation | Concatenating data objects for storage in a dispersed storage network |
US9665429B2 (en) | 2014-02-26 | 2017-05-30 | International Business Machines Corporation | Storage of data with verification in a dispersed storage network |
US10769016B2 (en) | 2014-02-26 | 2020-09-08 | Pure Storage, Inc. | Storing a plurality of correlated data in a dispersed storage network |
US10635312B2 (en) | 2014-02-26 | 2020-04-28 | Pure Storage, Inc. | Recovering data in a dispersed storage network |
US10678638B2 (en) | 2014-02-26 | 2020-06-09 | Pure Storage, Inc. | Resolving write conflicts in a dispersed storage network |
US10140182B2 (en) | 2014-02-26 | 2018-11-27 | International Business Machines Corporation | Modifying allocation of storage resources in a dispersed storage network |
US11016941B2 (en) | 2014-02-28 | 2021-05-25 | Red Hat, Inc. | Delayed asynchronous file replication in a distributed file system |
US9590843B2 (en) | 2014-03-12 | 2017-03-07 | Nutanix, Inc. | Method and system for providing distributed management in a networked virtualization environment |
US9965505B2 (en) * | 2014-03-19 | 2018-05-08 | Red Hat, Inc. | Identifying files in change logs using file content location identifiers |
US9986029B2 (en) | 2014-03-19 | 2018-05-29 | Red Hat, Inc. | File replication using file content location identifiers |
US20150271072A1 (en) * | 2014-03-24 | 2015-09-24 | Cisco Technology, Inc. | Method and apparatus for rate controlled content streaming from cache |
US9942152B2 (en) | 2014-03-25 | 2018-04-10 | A10 Networks, Inc. | Forwarding data packets using a service-based forwarding policy |
US9330103B1 (en) * | 2014-03-28 | 2016-05-03 | Emc Corporation | Preserving file handles when moving file system operation between storage processors |
US9942162B2 (en) | 2014-03-31 | 2018-04-10 | A10 Networks, Inc. | Active application response delay time |
US20150288680A1 (en) | 2014-04-02 | 2015-10-08 | Cleversafe, Inc. | Distributing registry information in a dispersed storage network |
US10761917B2 (en) | 2014-04-02 | 2020-09-01 | Pure Storage, Inc. | Using global namespace addressing in a dispersed storage network |
US10015152B2 (en) | 2014-04-02 | 2018-07-03 | International Business Machines Corporation | Securing data in a dispersed storage network |
US10020826B2 (en) | 2014-04-02 | 2018-07-10 | International Business Machines Corporation | Generating molecular encoding information for data storage |
US10681138B2 (en) | 2014-04-02 | 2020-06-09 | Pure Storage, Inc. | Storing and retrieving multi-format content in a distributed storage network |
US20190087599A1 (en) | 2014-04-02 | 2019-03-21 | International Business Machines Corporation | Compressing a slice name listing in a dispersed storage network |
US11347590B1 (en) | 2014-04-02 | 2022-05-31 | Pure Storage, Inc. | Rebuilding data in a distributed storage network |
US9697228B2 (en) * | 2014-04-14 | 2017-07-04 | Vembu Technologies Private Limited | Secure relational file system with version control, deduplication, and error correction |
US10394476B2 (en) | 2014-04-30 | 2019-08-27 | Pure Storage, Inc. | Multi-level stage locality selection on a large system |
US9735967B2 (en) | 2014-04-30 | 2017-08-15 | International Business Machines Corporation | Self-validating request message structure and operation |
US10296263B2 (en) | 2014-04-30 | 2019-05-21 | International Business Machines Corporation | Dispersed bloom filter for determining presence of an object |
US9612882B2 (en) | 2014-04-30 | 2017-04-04 | International Business Machines Corporation | Retrieving multi-generational stored data in a dispersed storage network |
US10802732B2 (en) | 2014-04-30 | 2020-10-13 | Pure Storage, Inc. | Multi-level stage locality selection on a large system |
US10496671B1 (en) * | 2014-05-05 | 2019-12-03 | EMC IP Holding Company LLC | Zone consistency |
US10542049B2 (en) * | 2014-05-09 | 2020-01-21 | Nutanix, Inc. | Mechanism for providing external access to a secured networked virtualization environment |
US9699251B2 (en) * | 2014-05-13 | 2017-07-04 | Nutanix, Inc. | Mechanism for providing load balancing to an external node utilizing a clustered environment for storage management |
US10735137B2 (en) | 2016-03-15 | 2020-08-04 | ClineHair Commercial Endeavors | Distributed storage system data management and security |
US20190036648A1 (en) * | 2014-05-13 | 2019-01-31 | Datomia Research Labs Ou | Distributed secure data storage and transmission of streaming media content |
US9740472B1 (en) | 2014-05-15 | 2017-08-22 | Nutanix, Inc. | Mechanism for performing rolling upgrades in a networked virtualization environment |
US9733958B2 (en) | 2014-05-15 | 2017-08-15 | Nutanix, Inc. | Mechanism for performing rolling updates with data unavailability check in a networked virtualization environment for storage management |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US10445339B1 (en) | 2014-05-28 | 2019-10-15 | EMC IP Holding Company LLC | Distributed contextual analytics |
US9986061B2 (en) | 2014-06-03 | 2018-05-29 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
US9992229B2 (en) | 2014-06-03 | 2018-06-05 | A10 Networks, Inc. | Programming a data network device using user defined scripts with licenses |
US10129122B2 (en) | 2014-06-03 | 2018-11-13 | A10 Networks, Inc. | User defined objects for network devices |
US10095872B2 (en) | 2014-06-05 | 2018-10-09 | International Business Machines Corporation | Accessing data based on a dispersed storage network rebuilding issue |
US10509577B2 (en) | 2014-06-05 | 2019-12-17 | Pure Storage, Inc. | Reliable storage in a dispersed storage network |
US9766981B2 (en) * | 2014-06-10 | 2017-09-19 | Institute For Information Industry | Synchronization apparatus, method, and non-transitory computer readable storage medium |
US9824133B1 (en) * | 2014-06-20 | 2017-11-21 | Amazon Technologies, Inc. | Cloud analytics marketplace |
CN106575296B (zh) * | 2014-06-20 | 2020-04-03 | 亚马逊技术股份有限公司 | 用于托管的分析的动态n维立方体 |
US9882949B1 (en) | 2014-06-20 | 2018-01-30 | Amazon Technologies, Inc. | Dynamic detection of data correlations based on realtime data |
EP3158478B1 (de) | 2014-06-20 | 2023-06-07 | Amazon Technologies, Inc. | Einbettbare cloud-analytik |
US11868372B1 (en) | 2014-06-20 | 2024-01-09 | Amazon Technologies, Inc. | Automated hierarchy detection for cloud-based analytics |
US9229997B1 (en) | 2014-06-20 | 2016-01-05 | Amazon Technologies, Inc. | Embeddable cloud analytics |
US9690520B2 (en) | 2014-06-30 | 2017-06-27 | International Business Machines Corporation | Recovering an encoded data slice in a dispersed storage network |
US9841925B2 (en) | 2014-06-30 | 2017-12-12 | International Business Machines Corporation | Adjusting timing of storing data in a dispersed storage network |
US10459797B2 (en) | 2014-06-30 | 2019-10-29 | Pure Storage, Inc. | Making trade-offs between rebuild scanning and failing memory device flexibility |
US9838478B2 (en) | 2014-06-30 | 2017-12-05 | International Business Machines Corporation | Identifying a task execution resource of a dispersed storage network |
US11606431B2 (en) | 2014-06-30 | 2023-03-14 | Pure Storage, Inc. | Maintaining failure independence for storage of a set of encoded data slices |
US11099763B1 (en) | 2014-06-30 | 2021-08-24 | Pure Storage, Inc. | Migrating generational storage to a decentralized agreement protocol paradigm |
US10447612B2 (en) | 2014-06-30 | 2019-10-15 | Pure Storage, Inc. | Migrating encoded data slices in a dispersed storage network |
US11398988B1 (en) | 2014-06-30 | 2022-07-26 | Pure Storage, Inc. | Selection of access resources in a distributed storage network |
US10042564B2 (en) | 2014-06-30 | 2018-08-07 | International Business Machines Corporation | Accessing data while migrating storage of the data |
US10440105B2 (en) | 2014-06-30 | 2019-10-08 | Pure Storage, Inc. | Using a decentralized agreement protocol to rank storage locations for target width |
US10673946B2 (en) | 2014-06-30 | 2020-06-02 | Pure Storage, Inc. | Using separate weighting scores for different types of data in a decentralized agreement protocol |
US11838851B1 (en) | 2014-07-15 | 2023-12-05 | F5, Inc. | Methods for managing L7 traffic classification and devices thereof |
US11728964B2 (en) | 2014-07-31 | 2023-08-15 | Pure Storage, Inc. | Performance aided data migration in a distributed storage network |
US10089036B2 (en) | 2014-07-31 | 2018-10-02 | International Business Machines Corporation | Migrating data in a distributed storage network |
US10644874B2 (en) | 2014-07-31 | 2020-05-05 | Pure Storage, Inc. | Limiting brute force attacks against dispersed credentials in a distributed storage system |
US10613936B2 (en) | 2014-07-31 | 2020-04-07 | Pure Storage, Inc. | Fractional slices in a distributed storage system |
US10089315B2 (en) * | 2014-08-22 | 2018-10-02 | AsterionDB, Inc. | Systems, apparatus, and methods for accessing data from a database as a file |
US10402395B2 (en) | 2014-09-05 | 2019-09-03 | Pure Storage, Inc. | Facilitating data consistency in a dispersed storage network |
US11442921B1 (en) | 2014-09-05 | 2022-09-13 | Pure Storage, Inc. | Data access in a dispersed storage network with consistency |
US10176191B2 (en) | 2014-09-05 | 2019-01-08 | International Business Machines Corporation | Recovering from conflicts that emerge from eventually consistent operations |
US10049120B2 (en) | 2014-09-05 | 2018-08-14 | International Business Machines Corporation | Consistency based access of data in a dispersed storage network |
US10268545B2 (en) | 2014-09-08 | 2019-04-23 | International Business Machines Corporation | Using reinforcement learning to select a DS processing unit |
US9591076B2 (en) | 2014-09-08 | 2017-03-07 | International Business Machines Corporation | Maintaining a desired number of storage units |
US10146622B2 (en) | 2014-09-08 | 2018-12-04 | International Business Machines Corporation | Combining deduplication with locality for efficient and fast storage |
US10257274B2 (en) * | 2014-09-15 | 2019-04-09 | Foundation for Research and Technology—Hellas (FORTH) | Tiered heterogeneous fast layer shared storage substrate apparatuses, methods, and systems |
US20180101457A1 (en) | 2014-10-29 | 2018-04-12 | International Business Machines Corporation | Retrying failed write operations in a dispersed storage network |
US10459792B2 (en) | 2014-10-29 | 2019-10-29 | Pure Storage, Inc. | Using an eventually consistent dispersed memory to implement storage tiers |
US9916114B2 (en) | 2014-10-29 | 2018-03-13 | International Business Machines Corporation | Deterministically sharing a plurality of processing resources |
US10282135B2 (en) | 2014-10-29 | 2019-05-07 | International Business Machines Corporation | Strong consistency write threshold |
US10481833B2 (en) | 2014-10-29 | 2019-11-19 | Pure Storage, Inc. | Transferring data encoding functions in a distributed storage network |
US10095582B2 (en) | 2014-10-29 | 2018-10-09 | International Business Machines Corporation | Partial rebuilding techniques in a dispersed storage unit |
US10223033B2 (en) | 2014-10-29 | 2019-03-05 | International Business Machines Corporation | Coordinating arrival times of data slices in a dispersed storage network |
US9838477B2 (en) * | 2014-10-30 | 2017-12-05 | Netapp, Inc. | Techniques for storing and distributing metadata among nodes in a storage cluster system |
GB201419498D0 (en) * | 2014-10-31 | 2014-12-17 | Ocado Innovation Ltd | System and method for fulfilling E-commerce orders from a hierarchy of fulfilment centres |
US10268467B2 (en) | 2014-11-11 | 2019-04-23 | A10 Networks, Inc. | Policy-driven management of application traffic for providing services to cloud-based applications |
US10051052B2 (en) * | 2014-11-18 | 2018-08-14 | Red Hat, Inc. | Replication with adustable consistency levels |
US10182013B1 (en) | 2014-12-01 | 2019-01-15 | F5 Networks, Inc. | Methods for managing progressive image delivery and devices thereof |
US10521298B2 (en) | 2014-12-02 | 2019-12-31 | Pure Storage, Inc. | Temporarily storing dropped and rebuilt slices in a DSN memory |
US10503592B2 (en) | 2014-12-02 | 2019-12-10 | Pure Storage, Inc. | Overcoming bottlenecks in partial and traditional rebuild operations |
US10558527B2 (en) | 2014-12-02 | 2020-02-11 | Pure Storage, Inc. | Rebuilding strategy in memory managed multi-site duplication |
US10481832B2 (en) | 2014-12-02 | 2019-11-19 | Pure Storage, Inc. | Applying a probability function to avoid storage operations for already-deleted data |
US10402271B2 (en) | 2014-12-02 | 2019-09-03 | Pure Storage, Inc. | Overcoming bottlenecks in zero information gain (ZIG) rebuild operations |
US10120739B2 (en) | 2014-12-02 | 2018-11-06 | International Business Machines Corporation | Prioritized data rebuilding in a dispersed storage network |
US9727275B2 (en) | 2014-12-02 | 2017-08-08 | International Business Machines Corporation | Coordinating storage of data in dispersed storage networks |
US9930115B1 (en) | 2014-12-18 | 2018-03-27 | EMC IP Holding Company LLC | Virtual network storage function layer comprising one or more virtual network storage function instances |
US10356169B1 (en) | 2014-12-23 | 2019-07-16 | EMC IP Holding Company LLC | Virtual content delivery network |
US10778601B1 (en) | 2014-12-23 | 2020-09-15 | EMC IP Holding Company LLC | Automated assurance analysis providing feedback to orchestration of resources in virtualization infrastructure |
US10387252B2 (en) | 2014-12-31 | 2019-08-20 | Pure Storage, Inc. | Synchronously storing data in a plurality of dispersed storage networks |
US9727427B2 (en) | 2014-12-31 | 2017-08-08 | International Business Machines Corporation | Synchronizing storage of data copies in a dispersed storage network |
US10642687B2 (en) | 2014-12-31 | 2020-05-05 | Pure Storage, Inc. | Pessimistic reads and other smart-read enhancements with synchronized vaults |
US10623495B2 (en) | 2014-12-31 | 2020-04-14 | Pure Storage, Inc. | Keeping synchronized writes from getting out of synch |
US10126974B2 (en) | 2014-12-31 | 2018-11-13 | International Business Machines Corporation | Redistributing encoded data slices in a dispersed storage network |
US10489247B2 (en) | 2014-12-31 | 2019-11-26 | Pure Storage, Inc. | Generating time-ordered globally unique revision numbers |
US10656866B2 (en) | 2014-12-31 | 2020-05-19 | Pure Storage, Inc. | Unidirectional vault synchronization to support tiering |
US11604707B2 (en) | 2014-12-31 | 2023-03-14 | Pure Storage, Inc. | Handling failures when synchronizing objects during a write operation |
US10621042B2 (en) | 2014-12-31 | 2020-04-14 | Pure Storage, Inc. | Vault transformation within a dispersed storage network |
US10423359B2 (en) | 2014-12-31 | 2019-09-24 | Pure Storage, Inc. | Linking common attributes among a set of synchronized vaults |
US10452317B2 (en) | 2014-12-31 | 2019-10-22 | Pure Storage, Inc. | DAP redistribution operation within a dispersed storage network |
US10169123B2 (en) | 2015-01-30 | 2019-01-01 | International Business Machines Corporation | Distributed data rebuilding |
US10511665B2 (en) | 2015-01-30 | 2019-12-17 | Pure Storage, Inc. | Efficient resource reclamation after deletion of slice from common file |
US9826038B2 (en) | 2015-01-30 | 2017-11-21 | International Business Machines Corporation | Selecting a data storage resource of a dispersed storage network |
US10620878B2 (en) | 2015-01-30 | 2020-04-14 | Pure Storage, Inc. | Write threshold plus value in dispersed storage network write operations |
US10289342B2 (en) | 2015-01-30 | 2019-05-14 | International Business Machines Corporation | Data access optimization protocol in a dispersed storage network |
US10498822B2 (en) | 2015-01-30 | 2019-12-03 | Pure Storage, Inc. | Adaptive scanning rates |
US10592132B2 (en) | 2015-01-30 | 2020-03-17 | Pure Storage, Inc. | Read-foreign-slices request for improved read efficiency with bundled writes |
US10740180B2 (en) | 2015-01-30 | 2020-08-11 | Pure Storage, Inc. | Storing and retrieving data using proxies |
US10440116B2 (en) | 2015-01-30 | 2019-10-08 | Pure Storage, Inc. | Minimizing data movement through rotation of spare memory devices |
US9740547B2 (en) | 2015-01-30 | 2017-08-22 | International Business Machines Corporation | Storing data using a dual path storage approach |
US10423490B2 (en) | 2015-01-30 | 2019-09-24 | Pure Storage, Inc. | Read-source requests to support bundled writes in a distributed storage system |
US10498823B2 (en) | 2015-01-30 | 2019-12-03 | Pure Storage, Inc. | Optimally apportioning rebuilding resources |
US10506045B2 (en) | 2015-01-30 | 2019-12-10 | Pure Storage, Inc. | Memory access using deterministic function and secure seed |
US10530862B2 (en) | 2015-01-30 | 2020-01-07 | Pure Storage, Inc. | Determining slices to rebuild from low-level failures |
US10642507B2 (en) | 2015-01-30 | 2020-05-05 | Nutanix, Inc. | Pulsed leader consensus management |
US10594793B2 (en) | 2015-01-30 | 2020-03-17 | Pure Storage, Inc. | Read-prepare requests to multiple memories |
US11895138B1 (en) | 2015-02-02 | 2024-02-06 | F5, Inc. | Methods for improving web scanner accuracy and devices thereof |
US10313243B2 (en) | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US11188665B2 (en) | 2015-02-27 | 2021-11-30 | Pure Storage, Inc. | Using internal sensors to detect adverse interference and take defensive actions |
US10503591B2 (en) | 2015-02-27 | 2019-12-10 | Pure Storage, Inc. | Selecting retrieval locations in a dispersed storage network |
US10437677B2 (en) | 2015-02-27 | 2019-10-08 | Pure Storage, Inc. | Optimized distributed rebuilding within a dispersed storage network |
US10069915B2 (en) | 2015-02-27 | 2018-09-04 | International Business Machines Corporation | Storing data in a dispersed storage network |
US10530861B2 (en) | 2015-02-27 | 2020-01-07 | Pure Storage, Inc. | Utilizing multiple storage pools in a dispersed storage network |
US10387067B2 (en) | 2015-02-27 | 2019-08-20 | Pure Storage, Inc. | Optimizing data storage in a dispersed storage network |
US10440115B2 (en) | 2015-02-27 | 2019-10-08 | Pure Storage, Inc. | Write intent messaging in a dispersed storage network |
US11836369B1 (en) | 2015-02-27 | 2023-12-05 | Pure Storage, Inc. | Storing data in an expanded storage pool of a vast storage network |
US10528425B2 (en) | 2015-02-27 | 2020-01-07 | Pure Storage, Inc. | Transitioning to an optimized data storage approach in a dispersed storage network |
US10437676B2 (en) | 2015-02-27 | 2019-10-08 | Pure Storage, Inc. | Urgent reads and using data source health to determine error recovery procedures |
US10423502B2 (en) | 2015-02-27 | 2019-09-24 | Pure Storage, Inc. | Stand-by distributed storage units |
US10409772B2 (en) | 2015-02-27 | 2019-09-10 | Pure Storage, Inc. | Accessing serially stored data in a dispersed storage network |
US10534668B2 (en) | 2015-02-27 | 2020-01-14 | Pure Storage, Inc. | Accessing data in a dispersed storage network |
US10078472B2 (en) | 2015-02-27 | 2018-09-18 | International Business Machines Corporation | Rebuilding encoded data slices in a dispersed storage network |
US10404410B2 (en) | 2015-02-27 | 2019-09-03 | Pure Storage, Inc. | Storage unit (SU) report cards |
US10657000B2 (en) | 2015-02-27 | 2020-05-19 | Pure Storage, Inc. | Optimizing data storage in a dispersed storage network |
US10579451B2 (en) | 2015-02-27 | 2020-03-03 | Pure Storage, Inc. | Pro-actively preparing a dispersed storage network memory for higher-loads |
US10275185B2 (en) | 2015-02-27 | 2019-04-30 | International Business Machines Corporation | Fail-in-place supported via decentralized or Distributed Agreement Protocol (DAP) |
US9986033B2 (en) * | 2015-03-17 | 2018-05-29 | Panzura, Inc. | Facilitating access to remote cloud services |
US10528282B2 (en) | 2015-03-31 | 2020-01-07 | Pure Storage, Inc. | Modifying and utilizing a file structure in a dispersed storage network |
US11055177B2 (en) | 2015-03-31 | 2021-07-06 | Pure Storage, Inc. | Correlating operational information with an error condition in a dispersed storage network |
US10915261B2 (en) | 2015-03-31 | 2021-02-09 | Pure Storage, Inc. | Selecting a set of storage units in a distributed storage network |
US10437515B2 (en) | 2015-03-31 | 2019-10-08 | Pure Storage, Inc. | Selecting storage units in a dispersed storage network |
US10834065B1 (en) | 2015-03-31 | 2020-11-10 | F5 Networks, Inc. | Methods for SSL protected NTLM re-authentication and devices thereof |
US10713374B2 (en) | 2015-03-31 | 2020-07-14 | Pure Storage, Inc. | Resolving detected access anomalies in a dispersed storage network |
US10079887B2 (en) | 2015-03-31 | 2018-09-18 | International Business Machines Corporation | Expanding storage capacity of a set of storage units in a distributed storage network |
US10963180B2 (en) | 2015-03-31 | 2021-03-30 | Pure Storage, Inc. | Adding incremental storage resources in a dispersed storage network |
US10852957B2 (en) | 2015-03-31 | 2020-12-01 | Pure Storage, Inc. | Migration agent employing moveslice request |
US10331384B2 (en) | 2015-03-31 | 2019-06-25 | International Business Machines Corporation | Storing data utilizing a maximum accessibility approach in a dispersed storage network |
US10534661B2 (en) | 2015-03-31 | 2020-01-14 | Pure Storage, Inc. | Selecting a storage error abatement alternative in a dispersed storage network |
US10387070B2 (en) | 2015-03-31 | 2019-08-20 | Pure Storage, Inc. | Migrating data in response to adding incremental storage resources in a dispersed storage network |
US10078561B2 (en) | 2015-04-30 | 2018-09-18 | International Business Machines Corporation | Handling failing memory devices in a dispersed storage network |
US10055170B2 (en) | 2015-04-30 | 2018-08-21 | International Business Machines Corporation | Scheduling storage unit maintenance tasks in a dispersed storage network |
US10168904B2 (en) | 2015-04-30 | 2019-01-01 | International Business Machines Corporation | Quasi-error notifications in a dispersed storage network |
US10037171B2 (en) | 2015-04-30 | 2018-07-31 | International Business Machines Corporation | Accessing common data in a dispersed storage network |
US10067998B2 (en) | 2015-04-30 | 2018-09-04 | International Business Machines Corporation | Distributed sync list |
US10157094B2 (en) | 2015-04-30 | 2018-12-18 | International Business Machines Corporation | Validating system registry files in a dispersed storage network |
US10254992B2 (en) | 2015-04-30 | 2019-04-09 | International Business Machines Corporation | Rebalancing data storage in a dispersed storage network |
US10268376B2 (en) | 2015-04-30 | 2019-04-23 | International Business Machines Corporation | Automated deployment and assignment of access devices in a dispersed storage network |
US10216594B2 (en) | 2015-04-30 | 2019-02-26 | International Business Machines Corporation | Automated stalled process detection and recovery |
US9965262B2 (en) | 2015-05-21 | 2018-05-08 | International Business Machines Corporation | Application bundle pulling |
US10389850B2 (en) | 2015-05-21 | 2019-08-20 | International Business Machines Corporation | Managing redundancy among application bundles |
US10389794B2 (en) | 2015-05-21 | 2019-08-20 | International Business Machines Corporation | Managing redundancy among application bundles |
US9888057B2 (en) | 2015-05-21 | 2018-02-06 | International Business Machines Corporation | Application bundle management across mixed file system types |
US10530660B2 (en) * | 2015-05-21 | 2020-01-07 | International Business Machines Corporation | Application bundle preloading |
US10152516B2 (en) | 2015-05-21 | 2018-12-11 | International Business Machines Corporation | Managing staleness latency among application bundles |
US10430107B2 (en) | 2015-05-29 | 2019-10-01 | Pure Storage, Inc. | Identifying stored data slices during a slice migration activity in a dispersed storage network |
US10324657B2 (en) | 2015-05-29 | 2019-06-18 | International Business Machines Corporation | Accounting for data whose rebuilding is deferred |
US10523241B2 (en) | 2015-05-29 | 2019-12-31 | Pure Storage, Inc. | Object fan out write operation |
US10409522B2 (en) | 2015-05-29 | 2019-09-10 | Pure Storage, Inc. | Reclaiming storage capacity in a dispersed storage network |
US10891058B2 (en) | 2015-05-29 | 2021-01-12 | Pure Storage, Inc. | Encoding slice verification information to support verifiable rebuilding |
US10613798B2 (en) | 2015-05-29 | 2020-04-07 | Pure Storage, Inc. | Slice fanout write request |
US10169125B2 (en) | 2015-05-29 | 2019-01-01 | International Business Machines Corporation | Re-encoding data in a dispersed storage network |
US10402122B2 (en) | 2015-05-29 | 2019-09-03 | Pure Storage, Inc. | Transferring encoded data slices in a dispersed storage network |
US11115221B2 (en) | 2015-05-29 | 2021-09-07 | Pure Storage, Inc. | Verifying a rebuilt encoded data slice using slice verification information |
US10838664B2 (en) | 2015-05-29 | 2020-11-17 | Pure Storage, Inc. | Determining a storage location according to legal requirements |
US10789128B2 (en) | 2015-05-29 | 2020-09-29 | Pure Storage, Inc. | External healing mode for a dispersed storage network memory |
US9954751B2 (en) | 2015-05-29 | 2018-04-24 | Microsoft Technology Licensing, Llc | Measuring performance of a network using mirrored probe packets |
US9588815B1 (en) | 2015-06-17 | 2017-03-07 | EMC IP Holding Company LLC | Architecture for data collection and event management supporting automation in service provider cloud environments |
US11669546B2 (en) | 2015-06-30 | 2023-06-06 | Pure Storage, Inc. | Synchronizing replicated data in a storage network |
US10437671B2 (en) | 2015-06-30 | 2019-10-08 | Pure Storage, Inc. | Synchronizing replicated stored data |
US10055291B2 (en) | 2015-06-30 | 2018-08-21 | International Business Machines Corporation | Method and system for processing data access requests during data transfers |
CN107851112A (zh) * | 2015-07-08 | 2018-03-27 | 云聚公司 | 用于从摄像机安全传输信号的系统和方法 |
US11782789B2 (en) | 2015-07-31 | 2023-10-10 | Pure Storage, Inc. | Encoding data and associated metadata in a storage network |
US10229004B2 (en) | 2015-07-31 | 2019-03-12 | International Business Machines Corporation | Data transfer priority levels |
US10581976B2 (en) | 2015-08-12 | 2020-03-03 | A10 Networks, Inc. | Transmission control of protocol state exchange for dynamic stateful service insertion |
US10243791B2 (en) | 2015-08-13 | 2019-03-26 | A10 Networks, Inc. | Automated adjustment of subscriber policies |
US10176182B2 (en) * | 2015-08-31 | 2019-01-08 | International Business Machines Corporation | File deletion in storage devices based on the deletion priority rules |
US10466914B2 (en) | 2015-08-31 | 2019-11-05 | Pure Storage, Inc. | Verifying authorized access in a dispersed storage network |
US10298680B1 (en) | 2015-09-23 | 2019-05-21 | Cohesity, Inc. | Dynamic throughput ingestion of backup sources |
US10073652B2 (en) | 2015-09-24 | 2018-09-11 | International Business Machines Corporation | Performance optimized storage vaults in a dispersed storage network |
US10169147B2 (en) | 2015-10-30 | 2019-01-01 | International Business Machines Corporation | End-to-end secure data storage in a dispersed storage network |
US10346246B2 (en) | 2015-11-30 | 2019-07-09 | International Business Machines Corporation | Recovering data copies in a dispersed storage network |
US10409514B2 (en) | 2015-11-30 | 2019-09-10 | International Business Machines Corporation | IP multicast message transmission for event notifications |
US20170192688A1 (en) | 2015-12-30 | 2017-07-06 | International Business Machines Corporation | Lazy deletion of vaults in packed slice storage (pss) and zone slice storage (zss) |
US10404698B1 (en) | 2016-01-15 | 2019-09-03 | F5 Networks, Inc. | Methods for adaptive organization of web application access points in webtops and devices thereof |
US10797888B1 (en) | 2016-01-20 | 2020-10-06 | F5 Networks, Inc. | Methods for secured SCEP enrollment for client devices and devices thereof |
US10855759B2 (en) | 2016-01-26 | 2020-12-01 | Pure Storage, Inc. | Utilizing a hierarchical index in a dispersed storage network |
US11301422B2 (en) * | 2016-02-23 | 2022-04-12 | Samsung Electronics Co., Ltd. | System and methods for providing fast cacheable access to a key-value device through a filesystem interface |
US10089178B2 (en) | 2016-02-29 | 2018-10-02 | International Business Machines Corporation | Developing an accurate dispersed storage network memory performance model through training |
US10185699B2 (en) * | 2016-03-14 | 2019-01-22 | Futurewei Technologies, Inc. | Reconfigurable data interface unit for compute systems |
US10931402B2 (en) | 2016-03-15 | 2021-02-23 | Cloud Storage, Inc. | Distributed storage system data management and security |
US10831381B2 (en) | 2016-03-29 | 2020-11-10 | International Business Machines Corporation | Hierarchies of credential and access control sharing between DSN memories |
US10387248B2 (en) | 2016-03-29 | 2019-08-20 | International Business Machines Corporation | Allocating data for storage by utilizing a location-based hierarchy in a dispersed storage network |
US10419538B2 (en) | 2016-04-26 | 2019-09-17 | International Business Machines Corporation | Selecting memory for data access in a dispersed storage network |
US10169082B2 (en) | 2016-04-27 | 2019-01-01 | International Business Machines Corporation | Accessing data in accordance with an execution deadline |
US10007444B2 (en) | 2016-04-29 | 2018-06-26 | International Business Machines Corporation | Batching access requests in a dispersed storage network |
US10628399B2 (en) | 2016-04-29 | 2020-04-21 | International Business Machines Corporation | Storing data in a dispersed storage network with consistency |
US9607104B1 (en) | 2016-04-29 | 2017-03-28 | Umbel Corporation | Systems and methods of using a bitmap index to determine bicliques |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
US10091298B2 (en) | 2016-05-27 | 2018-10-02 | International Business Machines Corporation | Enhancing performance of data storage in a dispersed storage network |
US10353772B2 (en) | 2016-05-31 | 2019-07-16 | International Business Machines Corporation | Selecting data for storage in a dispersed storage network |
US10122795B2 (en) | 2016-05-31 | 2018-11-06 | International Business Machines Corporation | Consistency level driven data storage in a dispersed storage network |
US10027755B2 (en) | 2016-06-01 | 2018-07-17 | International Business Machines Corporation | Selecting storage units in one or more dispersed storage networks |
US10394650B2 (en) | 2016-06-03 | 2019-08-27 | International Business Machines Corporation | Multiple writes using inter-site storage unit relationship |
US10652350B2 (en) | 2016-06-06 | 2020-05-12 | International Business Machines Corporation | Caching for unique combination reads in a dispersed storage network |
US10735545B2 (en) | 2016-06-06 | 2020-08-04 | International Business Machines Corporation | Routing vault access requests in a dispersed storage network |
US10719499B2 (en) | 2016-06-06 | 2020-07-21 | INTERNATIONAL BUSINESS MACHINES CORPORATIOb | Establishing distributed consensus via alternate voting strategies in a dispersed storage network |
US10334045B2 (en) | 2016-06-06 | 2019-06-25 | International Business Machines Corporation | Indicating multiple encoding schemes in a dispersed storage network |
US10007438B2 (en) | 2016-06-25 | 2018-06-26 | International Business Machines Corporation | Method and system for achieving consensus using alternate voting strategies (AVS) with incomplete information |
US10564852B2 (en) | 2016-06-25 | 2020-02-18 | International Business Machines Corporation | Method and system for reducing memory device input/output operations |
US10235085B2 (en) | 2016-06-27 | 2019-03-19 | International Business Machines Corporation | Relocating storage unit data in response to detecting hotspots in a dispersed storage network |
US11115469B2 (en) | 2016-06-28 | 2021-09-07 | International Business Machines Corporation | Efficient updates within a dispersed storage network |
US10157021B2 (en) | 2016-06-29 | 2018-12-18 | International Business Machines Corporation | Processing incomplete data access transactions |
US10025505B2 (en) | 2016-06-29 | 2018-07-17 | International Business Machines Corporation | Accessing data in a dispersed storage network during write operations |
US10387286B2 (en) | 2016-06-30 | 2019-08-20 | International Business Machines Corporation | Managing configuration updates in a dispersed storage network |
US9934092B2 (en) | 2016-07-12 | 2018-04-03 | International Business Machines Corporation | Manipulating a distributed agreement protocol to identify a desired set of storage units |
US10417094B1 (en) | 2016-07-13 | 2019-09-17 | Peer Fusion, Inc. | Hyper storage cluster |
US10114696B2 (en) | 2016-07-14 | 2018-10-30 | International Business Machines Corporation | Tracking data access in a dispersed storage network |
US10534666B2 (en) | 2016-07-14 | 2020-01-14 | International Business Machines Corporation | Determining storage requirements based on licensing right in a dispersed storage network |
US10102067B2 (en) | 2016-07-14 | 2018-10-16 | International Business Machines Corporation | Performing a desired manipulation of an encoded data slice based on a metadata restriction and a storage operational condition |
US9992063B2 (en) | 2016-07-18 | 2018-06-05 | International Business Machines Corporation | Utilizing reallocation via a decentralized, or distributed, agreement protocol (DAP) for storage unit (SU) replacement |
US10360103B2 (en) | 2016-07-18 | 2019-07-23 | International Business Machines Corporation | Focused storage pool expansion to prevent a performance degradation |
US10277490B2 (en) | 2016-07-19 | 2019-04-30 | International Business Machines Corporation | Monitoring inter-site bandwidth for rebuilding |
US10769015B2 (en) | 2016-07-19 | 2020-09-08 | International Business Machines Corporation | Throttling access requests at different layers of a DSN memory |
US10554752B2 (en) | 2016-07-20 | 2020-02-04 | International Business Machines Corporation | Efficient transfer of encoded data slice sets to new or alternate storage units |
US10459796B2 (en) | 2016-07-20 | 2019-10-29 | International Business Machines Corporation | Prioritizing rebuilding based on a longevity estimate of the rebuilt slice |
US10031809B2 (en) | 2016-07-20 | 2018-07-24 | International Business Machines Corporation | Efficient method for rebuilding a set of encoded data slices |
US10127112B2 (en) | 2016-07-20 | 2018-11-13 | International Business Machines Corporation | Assigning prioritized rebuild resources optimally |
US10379744B2 (en) | 2016-07-21 | 2019-08-13 | International Business Machines Corporation | System for collecting end-user feedback and usability metrics |
US10416930B2 (en) | 2016-07-21 | 2019-09-17 | International Business Machines Corporation | Global access permit listing |
US10459790B2 (en) | 2016-07-26 | 2019-10-29 | International Business Machines Corporation | Elastic storage in a dispersed storage network |
US10395043B2 (en) | 2016-07-29 | 2019-08-27 | International Business Machines Corporation | Securely storing data in an elastically scalable dispersed storage network |
US10031805B2 (en) | 2016-08-09 | 2018-07-24 | International Business Machines Corporation | Assigning slices to storage locations based on a predicted lifespan |
US10223036B2 (en) | 2016-08-10 | 2019-03-05 | International Business Machines Corporation | Expanding a dispersed storage network (DSN) |
US10129023B2 (en) | 2016-08-11 | 2018-11-13 | International Business Machines Corporation | Enhancing security for multiple storage configurations |
US10114559B2 (en) * | 2016-08-12 | 2018-10-30 | International Business Machines Corporation | Generating node access information for a transaction accessing nodes of a data set index |
US10348829B2 (en) | 2016-08-15 | 2019-07-09 | International Business Machines Corporation | Auto indexing with customizable metadata |
US10013309B2 (en) | 2016-08-17 | 2018-07-03 | International Business Machines Corporation | Missing slice reconstruction in a dispersed storage network |
US10078468B2 (en) | 2016-08-18 | 2018-09-18 | International Business Machines Corporation | Slice migration in a dispersed storage network |
US10379778B2 (en) | 2016-08-18 | 2019-08-13 | International Business Machines Corporation | Using a master encryption key to sanitize a dispersed storage network memory |
US10389683B2 (en) | 2016-08-26 | 2019-08-20 | International Business Machines Corporation | Securing storage units in a dispersed storage network |
US10379773B2 (en) | 2016-08-29 | 2019-08-13 | International Business Machines Corporation | Storage unit for use in a dispersed storage network |
US10581807B2 (en) | 2016-08-29 | 2020-03-03 | International Business Machines Corporation | Using dispersal techniques to securely store cryptographic resources and respond to attacks |
CN106254833B (zh) * | 2016-08-30 | 2020-01-14 | 浙江宇视科技有限公司 | 一种分布式文件的下载方法及装置 |
US10061524B2 (en) | 2016-09-01 | 2018-08-28 | International Business Machines Corporation | Wear-leveling of memory devices |
US10169149B2 (en) | 2016-09-06 | 2019-01-01 | International Business Machines Corporation | Standard and non-standard dispersed storage network data access |
US10225271B2 (en) | 2016-09-09 | 2019-03-05 | International Business Machines Corporation | Distributed storage network with enhanced security monitoring |
US10387079B2 (en) | 2016-09-09 | 2019-08-20 | International Business Machines Corporation | Placement of dispersed storage data based on requestor properties |
US10547615B2 (en) * | 2016-09-12 | 2020-01-28 | International Business Machines Corporation | Security response protocol based on security alert encoded data slices of a distributed storage network |
US10558396B2 (en) | 2016-09-14 | 2020-02-11 | International Business Machines Corporation | Pre-caching data according to a current or predicted requester location |
US10558389B2 (en) | 2016-09-20 | 2020-02-11 | International Business Machines Corporation | Per-storage class quality of service (QoS) management within a distributed storage network (DSN) where the DSN stores data using dispersed storage error decoding/encoding |
US10067822B2 (en) | 2016-09-26 | 2018-09-04 | International Business Machines Corporation | Combined slice objects in alternate memory locations |
US10362092B1 (en) | 2016-10-14 | 2019-07-23 | Nutanix, Inc. | Entity management in distributed systems |
US10956393B2 (en) * | 2016-10-20 | 2021-03-23 | Hitachi, Ltd. | Data storage system and process for providing distributed storage in a scalable cluster system and computer program for such data storage system |
US10448062B2 (en) | 2016-10-26 | 2019-10-15 | International Business Machines Corporation | Pre-fetching media content to reduce peak loads |
US10394630B2 (en) | 2016-10-26 | 2019-08-27 | International Business Machines Corporation | Estimating relative data importance in a dispersed storage network |
US10585751B2 (en) | 2016-10-27 | 2020-03-10 | International Business Machines Corporation | Partial rebuild operation within a dispersed storage network including local memory and cloud-based alternative memory |
US10412198B1 (en) | 2016-10-27 | 2019-09-10 | F5 Networks, Inc. | Methods for improved transmission control protocol (TCP) performance visibility and devices thereof |
US10481977B2 (en) | 2016-10-27 | 2019-11-19 | International Business Machines Corporation | Dispersed storage of error encoded data objects having multiple resolutions |
US11169731B2 (en) * | 2016-10-31 | 2021-11-09 | International Business Machines Corporation | Managing storage resources in a dispersed storage network |
US10540247B2 (en) | 2016-11-10 | 2020-01-21 | International Business Machines Corporation | Handling degraded conditions using a redirect module |
US10585607B2 (en) | 2016-11-10 | 2020-03-10 | International Business Machines Corporation | Determining an optimum selection of functions for units in a DSN memory |
US11003658B2 (en) * | 2016-11-21 | 2021-05-11 | International Business Machines Corporation | Selectively retrieving data from remote share nothing computer clusters |
US10409495B1 (en) * | 2016-12-29 | 2019-09-10 | EMC IP Holding Company LLC | Data optimization decision control based on file system metadata |
US10114698B2 (en) | 2017-01-05 | 2018-10-30 | International Business Machines Corporation | Detecting and responding to data loss events in a dispersed storage network |
US10782921B2 (en) | 2017-01-25 | 2020-09-22 | International Business Machines Corporation | Non-writing device finalization of a write operation initiated by another device |
US10180787B2 (en) | 2017-02-09 | 2019-01-15 | International Business Machines Corporation | Dispersed storage write process with lock/persist |
US10530864B2 (en) * | 2017-02-15 | 2020-01-07 | Dell Products, L.P. | Load balancing internet-of-things (IOT) gateways |
US10241865B2 (en) | 2017-02-15 | 2019-03-26 | International Business Machines Corporation | Handling storage unit failure in a dispersed storage network |
US10579309B2 (en) | 2017-02-16 | 2020-03-03 | International Business Machines Corporation | Method for increasing throughput in a distributed storage network |
US10552341B2 (en) | 2017-02-17 | 2020-02-04 | International Business Machines Corporation | Zone storage—quickly returning to a state of consistency following an unexpected event |
US10248495B2 (en) | 2017-02-17 | 2019-04-02 | International Business Machines Corporation | Eventual consistency intent cleanup in a dispersed storage network |
US10382553B2 (en) | 2017-02-20 | 2019-08-13 | International Business Machines Corporation | Zone storage—resilient and efficient storage transactions |
US10394468B2 (en) | 2017-02-23 | 2019-08-27 | International Business Machines Corporation | Handling data slice revisions in a dispersed storage network |
US10241677B2 (en) | 2017-02-24 | 2019-03-26 | International Business Machines Corporation | Ensuring consistency between content and metadata with intents |
US9998147B1 (en) | 2017-02-27 | 2018-06-12 | International Business Machines Corporation | Method for using write intents in a distributed storage network |
US10642532B2 (en) | 2017-02-28 | 2020-05-05 | International Business Machines Corporation | Storing data sequentially in zones in a dispersed storage network |
US10372380B2 (en) | 2017-03-01 | 2019-08-06 | International Business Machines Corporation | Asserting integrity with a verifiable codec |
US10169392B2 (en) | 2017-03-08 | 2019-01-01 | International Business Machines Corporation | Persistent data structures on a dispersed storage network memory |
US11226980B2 (en) | 2017-03-13 | 2022-01-18 | International Business Machines Corporation | Replicating containers in object storage using intents |
US10235241B2 (en) | 2017-03-15 | 2019-03-19 | International Business Machines Corporation | Method for partial updating data content in a distributed storage network |
US10693640B2 (en) | 2017-03-17 | 2020-06-23 | International Business Machines Corporation | Use of key metadata during write and read operations in a dispersed storage network memory |
US10241861B2 (en) | 2017-03-23 | 2019-03-26 | International Business Machines Corporation | Method for tenant isolation in a distributed computing system |
US10133634B2 (en) | 2017-03-30 | 2018-11-20 | International Business Machines Corporation | Method for performing in-place disk format changes in a distributed storage network |
US10360391B2 (en) | 2017-04-03 | 2019-07-23 | International Business Machines Corporation | Verifiable keyed all-or-nothing transform |
US10545699B2 (en) | 2017-04-11 | 2020-01-28 | International Business Machines Corporation | Dynamic retention policies and optional deletes |
US10379961B2 (en) | 2017-04-11 | 2019-08-13 | International Business Machines Corporation | Ensuring metadata and index consistency using write intents |
US10489381B2 (en) * | 2017-04-13 | 2019-11-26 | Sap Se | Adaptive metadata refreshing |
US10146694B1 (en) * | 2017-04-28 | 2018-12-04 | EMC IP Holding Company LLC | Persistent cache layer in a distributed file system |
US10545913B1 (en) * | 2017-04-30 | 2020-01-28 | EMC IP Holding Company LLC | Data storage system with on-demand recovery of file import metadata during file system migration |
US10567492B1 (en) | 2017-05-11 | 2020-02-18 | F5 Networks, Inc. | Methods for load balancing in a federated identity environment and devices thereof |
US10567509B2 (en) | 2017-05-15 | 2020-02-18 | International Business Machines Corporation | Rebuilding derived content |
US10540323B2 (en) | 2017-05-30 | 2020-01-21 | Western Digital Technologies, Inc. | Managing I/O operations in a storage network |
US10491386B2 (en) | 2017-06-01 | 2019-11-26 | International Business Machines Corporation | Slice-level keyed encryption with support for efficient rekeying |
US10339003B2 (en) | 2017-06-01 | 2019-07-02 | International Business Machines Corporation | Processing data access transactions in a dispersed storage network using source revision indicators |
US10467097B2 (en) | 2017-06-02 | 2019-11-05 | International Business Machines Corporation | Indicating data health in a DSN memory |
US10372381B2 (en) | 2017-06-05 | 2019-08-06 | International Business Machines Corporation | Implicit leader election in a distributed storage network |
US10361813B2 (en) | 2017-06-16 | 2019-07-23 | International Business Machine Corporation | Using slice routers for improved storage placement determination |
KR102170160B1 (ko) * | 2017-06-16 | 2020-10-28 | 한국전자통신연구원 | Opc-ua 기반의 단방향 데이터 송신 장치 및 방법 |
US10534548B2 (en) | 2017-06-20 | 2020-01-14 | International Business Machines Corporation | Validating restricted operations on a client using trusted environments |
US10324855B2 (en) | 2017-06-23 | 2019-06-18 | International Business Machines Corporation | Associating a processing thread and memory section to a memory device |
US10594790B2 (en) | 2017-06-28 | 2020-03-17 | International Business Machines Corporation | Data compression in a dispersed storage network |
US10540111B2 (en) | 2017-06-28 | 2020-01-21 | International Business Machines Corporation | Managing data container instances in a dispersed storage network |
US10489693B2 (en) | 2017-08-03 | 2019-11-26 | Motorola Solutions, Inc. | Method and apparatus for distributed edge learning |
US10599502B2 (en) | 2017-08-07 | 2020-03-24 | International Business Machines Corporation | Fault detection and recovery in a distributed storage network |
US10509699B2 (en) | 2017-08-07 | 2019-12-17 | International Business Machines Corporation | Zone aware request scheduling and data placement |
US10783052B2 (en) | 2017-08-17 | 2020-09-22 | Bank Of America Corporation | Data processing system with machine learning engine to provide dynamic data transmission control functions |
US10671746B2 (en) | 2017-08-28 | 2020-06-02 | International Business Machines Corporation | Controlling access when processing intents in a dispersed storage network |
US10379942B2 (en) | 2017-09-27 | 2019-08-13 | International Business Machines Corporation | Efficient transfer of objects between containers on the same vault |
US10802713B2 (en) | 2017-09-29 | 2020-10-13 | International Business Machines Corporation | Requester-associated storage entity data |
US10409661B2 (en) | 2017-09-29 | 2019-09-10 | International Business Machines Corporation | Slice metadata for optimized dispersed storage network memory storage strategies |
US10585748B2 (en) | 2017-09-29 | 2020-03-10 | International Business Machines Corporation | Scalable cloud—assigning scores to requesters and treating requests differently based on those scores |
US10361859B2 (en) | 2017-10-06 | 2019-07-23 | Stealthpath, Inc. | Methods for internet communication security |
US10374803B2 (en) | 2017-10-06 | 2019-08-06 | Stealthpath, Inc. | Methods for internet communication security |
US10367811B2 (en) * | 2017-10-06 | 2019-07-30 | Stealthpath, Inc. | Methods for internet communication security |
US10540120B2 (en) | 2017-11-14 | 2020-01-21 | International Business Machines Corporation | Contention avoidance on associative commutative updates |
US10423497B2 (en) | 2017-11-28 | 2019-09-24 | International Business Machines Corporation | Mechanism for representing system configuration changes as a series of objects writable to an object storage container |
US10565392B2 (en) | 2017-11-28 | 2020-02-18 | International Business Machines Corporation | Secure and verifiable update operations |
US10884671B2 (en) * | 2017-11-29 | 2021-01-05 | International Business Machines Corporation | Cognitive optimization of a multi-part object |
US10785194B2 (en) | 2017-12-07 | 2020-09-22 | International Business Machines Corporation | Processing intents using trusted entities in a dispersed storage network |
US10681135B2 (en) | 2017-12-08 | 2020-06-09 | International Business Machines Corporation | Generating slices from a broadcast message and a recipient identity |
CN109960460B (zh) * | 2017-12-25 | 2022-02-25 | 上海盛霄云计算技术有限公司 | 一种分布式存储系统 |
US11223689B1 (en) | 2018-01-05 | 2022-01-11 | F5 Networks, Inc. | Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof |
WO2019162728A1 (en) * | 2018-02-25 | 2019-08-29 | Pratik Sharma | Intelligent content delivery network |
US10833943B1 (en) | 2018-03-01 | 2020-11-10 | F5 Networks, Inc. | Methods for service chaining and devices thereof |
US11412041B2 (en) | 2018-06-25 | 2022-08-09 | International Business Machines Corporation | Automatic intervention of global coordinator |
CN110740353B (zh) * | 2018-07-20 | 2021-07-09 | 阿里巴巴(中国)有限公司 | 请求识别方法及装置 |
US11194680B2 (en) | 2018-07-20 | 2021-12-07 | Nutanix, Inc. | Two node clusters recovery on a failure |
US10951395B2 (en) * | 2018-08-20 | 2021-03-16 | Fujitsu Limited | Data fetching in data exchange networks |
CN109165212A (zh) * | 2018-08-31 | 2019-01-08 | 浪潮软件集团有限公司 | 一种大数据实时监控与稽核的方法 |
US11050637B2 (en) | 2018-09-26 | 2021-06-29 | International Business Machines Corporation | Resource lifecycle optimization in disaggregated data centers |
US10831580B2 (en) * | 2018-09-26 | 2020-11-10 | International Business Machines Corporation | Diagnostic health checking and replacement of resources in disaggregated data centers |
US10754720B2 (en) | 2018-09-26 | 2020-08-25 | International Business Machines Corporation | Health check diagnostics of resources by instantiating workloads in disaggregated data centers |
US10761915B2 (en) | 2018-09-26 | 2020-09-01 | International Business Machines Corporation | Preemptive deep diagnostics and health checking of resources in disaggregated data centers |
US10838803B2 (en) | 2018-09-26 | 2020-11-17 | International Business Machines Corporation | Resource provisioning and replacement according to a resource failure analysis in disaggregated data centers |
US11188408B2 (en) | 2018-09-26 | 2021-11-30 | International Business Machines Corporation | Preemptive resource replacement according to failure pattern analysis in disaggregated data centers |
US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
US10936452B2 (en) | 2018-11-14 | 2021-03-02 | International Business Machines Corporation | Dispersed storage network failover units used to improve local reliability |
EP3918484A4 (de) | 2019-01-29 | 2023-03-29 | Cloud Storage, Inc. | Codierungs- und speicherknotenreparaturverfahren für minimumspeicherregenerierungscodes für verteilte speichersysteme |
US11245750B2 (en) * | 2019-02-16 | 2022-02-08 | International Business Machines Corporation | File server load balancing |
US10754559B1 (en) * | 2019-03-08 | 2020-08-25 | EMC IP Holding Company LLC | Active-active storage clustering with clock synchronization |
US10846194B1 (en) * | 2019-05-02 | 2020-11-24 | More Cowbell Unlimited, Inc | Methods and systems for estimating process capacity |
US11288396B2 (en) | 2019-06-18 | 2022-03-29 | International Business Machines Corporation | Data security through physical separation of data |
US20210019285A1 (en) * | 2019-07-16 | 2021-01-21 | Citrix Systems, Inc. | File download using deduplication techniques |
US11388467B1 (en) * | 2019-07-17 | 2022-07-12 | Walgreen Co. | Media content distribution platform |
US11558423B2 (en) | 2019-09-27 | 2023-01-17 | Stealthpath, Inc. | Methods for zero trust security with high quality of service |
US11514097B2 (en) * | 2019-09-30 | 2022-11-29 | Dell Products L.P. | System and method for update of data and meta data via an enumerator |
CN110636144A (zh) * | 2019-11-07 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 数据下载的方法和装置 |
FR3103299B1 (fr) | 2019-11-20 | 2023-04-28 | Amadeus Sas | Système informatique distribué pour délivrer des données |
CN111026751B (zh) * | 2019-11-22 | 2024-02-09 | 北京金山云网络技术有限公司 | 分布式表格的处理方法、装置、系统及电子设备 |
CN113127414B (zh) * | 2019-12-31 | 2023-05-23 | 贵州白山云科技股份有限公司 | 一种请求处理方法和系统及边缘节点 |
WO2021171240A1 (en) * | 2020-02-26 | 2021-09-02 | Tafur Castillo Alvaro Bernardo | Method and system for storing and accessing content |
US11593026B2 (en) | 2020-03-06 | 2023-02-28 | International Business Machines Corporation | Zone storage optimization using predictive protocol patterns |
US10970066B1 (en) * | 2020-04-08 | 2021-04-06 | International Business Machines Corporation | Duplicate code section detection for source code |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
CN113726832B (zh) * | 2020-05-26 | 2024-03-05 | 杭州海康存储科技有限公司 | 分布式存储系统的数据存储方法、装置、系统及设备 |
CN113625264A (zh) * | 2021-06-16 | 2021-11-09 | 中国铁道科学研究院集团有限公司铁道建筑研究所 | 一种并行处理铁路检测大数据的方法及系统 |
WO2023069068A1 (en) * | 2021-10-18 | 2023-04-27 | Jason Kim | Gui based methods and systems for working with large numbers of interactive items |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AUPQ504100A0 (en) * | 2000-01-11 | 2000-02-03 | Notron (No. 325) Pty Limited | A method for distribution of streamed data packets on a switched network utilising an intelligent distribution network |
US4466060A (en) | 1982-02-11 | 1984-08-14 | At&T Bell Telephone Laboratories, Incorporated | Message routing in a computer network |
US4914571A (en) * | 1987-06-15 | 1990-04-03 | International Business Machines Corporation | Locating resources in computer networks |
CA1337132C (en) * | 1988-07-15 | 1995-09-26 | Robert Filepp | Reception system for an interactive computer network and method of operation |
US5079767A (en) | 1988-09-27 | 1992-01-07 | Digital Equipment Corporation | Method of multicast message distribution |
US5367698A (en) | 1991-10-31 | 1994-11-22 | Epoch Systems, Inc. | Network file migration system |
GB2272310A (en) * | 1992-11-07 | 1994-05-11 | Ibm | Method of operating a computer in a network. |
US5903566A (en) | 1994-06-24 | 1999-05-11 | Metricom, Inc. | Method for distributing program code to intelligent nodes in a wireless mesh data communication network |
JPH08329021A (ja) | 1995-03-30 | 1996-12-13 | Mitsubishi Electric Corp | クライアントサーバシステム |
US6003030A (en) * | 1995-06-07 | 1999-12-14 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US5926101A (en) | 1995-11-16 | 1999-07-20 | Philips Electronics North America Corporation | Method and apparatus for routing messages in a network of nodes with minimal resources |
IL115263A (en) * | 1995-09-12 | 1999-04-11 | Vocaltec Ltd | System and method for distributing multi-media presentations in a computer network |
JP3741767B2 (ja) * | 1996-02-26 | 2006-02-01 | 富士通株式会社 | 光ファイバ増幅器 |
US5872773A (en) * | 1996-05-17 | 1999-02-16 | Lucent Technologies Inc. | Virtual trees routing protocol for an ATM-based mobile network |
US5812773A (en) * | 1996-07-12 | 1998-09-22 | Microsoft Corporation | System and method for the distribution of hierarchically structured data |
US5924094A (en) * | 1996-11-01 | 1999-07-13 | Current Network Technologies Corporation | Independent distributed database system |
KR100194608B1 (ko) * | 1996-11-20 | 1999-06-15 | 이계철 | Atm 통신망에서의 멀티캐스트 경로 할당방법 |
US5924116A (en) * | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
US5991804A (en) * | 1997-06-20 | 1999-11-23 | Microsoft Corporation | Continuous media file server for cold restriping following capacity change by repositioning data blocks in the multiple data servers |
US6014701A (en) * | 1997-07-03 | 2000-01-11 | Microsoft Corporation | Selecting a cost-effective bandwidth for transmitting information to an end user in a computer network |
US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
US6101534A (en) * | 1997-09-03 | 2000-08-08 | Rothschild; Leigh M. | Interactive, remote, computer interface system |
US6105029A (en) * | 1997-09-17 | 2000-08-15 | International Business Machines Corporation | Retrieving network files through parallel channels |
US7447712B2 (en) * | 1997-09-28 | 2008-11-04 | Global 360, Inc. | Structured workfolder |
US6081840A (en) * | 1997-10-14 | 2000-06-27 | Zhao; Yan | Two-level content distribution system |
US6145089A (en) * | 1997-11-10 | 2000-11-07 | Legato Systems, Inc. | Server fail-over system |
US6415373B1 (en) * | 1997-12-24 | 2002-07-02 | 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 |
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 |
US6460087B1 (en) * | 1998-02-25 | 2002-10-01 | Kdd Corporation | Method of transferring file |
US6212240B1 (en) * | 1998-06-24 | 2001-04-03 | Motorola, Inc. | Method and apparatus for conveying data between communication devices |
US20010052015A1 (en) | 1998-06-24 | 2001-12-13 | Chueng-Hsien Lin | Push-pull sevices for the internet |
US6370146B1 (en) | 1998-06-29 | 2002-04-09 | Lucent Technologies Inc. | Method and apparatus for non-disruptive addition of a new node to an inter-nodal network |
US6515967B1 (en) | 1998-06-30 | 2003-02-04 | Cisco Technology, Inc. | Method and apparatus for detecting a fault in a multicast routing infrastructure |
US6108703A (en) | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
US20020138640A1 (en) | 1998-07-22 | 2002-09-26 | Uri Raz | Apparatus and method for improving the delivery of software applications and associated data in web-based systems |
US6222530B1 (en) | 1998-08-21 | 2001-04-24 | Corporate Media Partners | System and method for a master scheduler |
US6363416B1 (en) | 1998-08-28 | 2002-03-26 | 3Com Corporation | System and method for automatic election of a representative node within a communications network with built-in redundancy |
US6765868B1 (en) * | 1998-09-22 | 2004-07-20 | International Business Machines Corp. | System and method for large file transfers in packet networks |
US6691165B1 (en) * | 1998-11-10 | 2004-02-10 | Rainfinity, Inc. | Distributed server cluster for controlling network traffic |
US6427212B1 (en) * | 1998-11-13 | 2002-07-30 | Tricord Systems, Inc. | Data fault tolerance software apparatus and method |
US6498795B1 (en) * | 1998-11-18 | 2002-12-24 | Nec Usa Inc. | Method and apparatus for active information discovery and retrieval |
US6356903B1 (en) * | 1998-12-30 | 2002-03-12 | American Management Systems, Inc. | Content management system |
US6691312B1 (en) * | 1999-03-19 | 2004-02-10 | University Of Massachusetts | Multicasting video |
US6535869B1 (en) * | 1999-03-23 | 2003-03-18 | International Business Machines Corporation | Increasing efficiency of indexing random-access files composed of fixed-length data blocks by embedding a file index therein |
US6269080B1 (en) * | 1999-04-13 | 2001-07-31 | Glenayre Electronics, Inc. | Method of multicast file distribution and synchronization |
US6523064B1 (en) * | 1999-04-29 | 2003-02-18 | Mitsubishi Electric Research Laboratories, Inc | Network gateway for collecting geographic data information |
JP3429707B2 (ja) * | 1999-06-30 | 2003-07-22 | 株式会社次世代情報放送システム研究所 | 送信装置および送信方法、受信装置および受信方法、ならびに、送受信システムおよび送受信方法 |
US6647408B1 (en) * | 1999-07-16 | 2003-11-11 | Novell, Inc. | Task distribution |
US6718486B1 (en) | 2000-01-26 | 2004-04-06 | David E. Lovejoy | Fault monitor for restarting failed instances of the fault monitor |
US6560610B1 (en) * | 1999-08-10 | 2003-05-06 | Washington University | Data structure using a tree bitmap and method for rapid classification of data in a database |
US6842896B1 (en) * | 1999-09-03 | 2005-01-11 | Rainbow Technologies, Inc. | System and method for selecting a server in a multiple server license management system |
US6785704B1 (en) * | 1999-12-20 | 2004-08-31 | Fastforward Networks | Content distribution system for operation over an internetwork including content peering arrangements |
JP3463803B2 (ja) | 1999-11-09 | 2003-11-05 | 松下電器産業株式会社 | クラスタサーバ装置 |
US6772337B1 (en) | 1999-11-09 | 2004-08-03 | Lucent Technologies Inc. | Light weight security for parallel access to multiple mirror sites |
WO2001040903A2 (en) | 1999-12-06 | 2001-06-07 | Warp Solutions, Inc. | System and method for enhancing operation of a web server cluster |
US6460039B1 (en) * | 1999-12-09 | 2002-10-01 | International Business Machines Corporation | Middleware support for primary component in a partitionable cluster environment |
US6708217B1 (en) * | 2000-01-05 | 2004-03-16 | International Business Machines Corporation | Method and system for receiving and demultiplexing multi-modal document content |
US6629110B2 (en) * | 2000-01-10 | 2003-09-30 | Connected Corporation | Administration of a differential backup system in a client-server environment |
US6587866B1 (en) * | 2000-01-10 | 2003-07-01 | Sun Microsystems, Inc. | Method for distributing packets to server nodes using network client affinity and packet distribution table |
US6711607B1 (en) | 2000-02-04 | 2004-03-23 | Ensim Corporation | Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service |
US6456599B1 (en) * | 2000-02-07 | 2002-09-24 | Verizon Corporate Services Group Inc. | Distribution of potential neighbor information through an ad hoc network |
US6931397B1 (en) * | 2000-02-11 | 2005-08-16 | International Business Machines Corporation | System and method for automatic generation of dynamic search abstracts contain metadata by crawler |
US6845396B1 (en) * | 2000-02-25 | 2005-01-18 | Navic Systems, Inc. | Method and system for content deployment and activation |
US6763377B1 (en) * | 2000-03-03 | 2004-07-13 | International Business Machines Corporation | Asset management and scheduling graphical user interface for media streamer |
US6523069B1 (en) * | 2000-03-13 | 2003-02-18 | Yahoo! Inc. | Transmission of multicast media between networks |
US6772209B1 (en) * | 2000-04-06 | 2004-08-03 | International Business Machines Corporation | Efficient method for rule-based distribution and management of content in a distributed hierarchy of storage devices |
US6993587B1 (en) * | 2000-04-07 | 2006-01-31 | Network Appliance Inc. | Method and apparatus for election of group leaders in a distributed network |
US6718361B1 (en) * | 2000-04-07 | 2004-04-06 | Network Appliance Inc. | Method and apparatus for reliable and scalable distribution of data files in distributed networks |
US6748447B1 (en) * | 2000-04-07 | 2004-06-08 | Network Appliance, Inc. | Method and apparatus for scalable distribution of information in a distributed network |
US6922724B1 (en) * | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
DE10025929B4 (de) * | 2000-05-26 | 2006-02-16 | Harman Becker Automotive Systems (Becker Division) Gmbh | Verfahren zum Übertragen von Daten |
US6826564B2 (en) * | 2000-07-10 | 2004-11-30 | Fastforward Networks | Scalable and programmable query distribution and collection in a network of queryable devices |
US6772217B1 (en) * | 2000-08-23 | 2004-08-03 | International Business Machines Corporation | Internet backbone bandwidth enhancement by initiating an additional data stream when individual bandwidth are approximately equal to the backbone limit |
US6804719B1 (en) * | 2000-08-24 | 2004-10-12 | Microsoft Corporation | Method and system for relocating files that are partially stored in remote storage |
US20020040479A1 (en) | 2000-10-04 | 2002-04-04 | Eric Ehrman | Method and apparatus for streaming content via a network |
AU2002224448A1 (en) | 2000-10-26 | 2002-05-06 | Prismedia Networks, Inc. | Method and apparatus for large payload distribution in a network |
WO2002039323A2 (en) | 2000-10-26 | 2002-05-16 | Prismedia Networks, Inc. | Method and apparatus for real-time parallel delivery of segments of a large payload file |
US6970939B2 (en) * | 2000-10-26 | 2005-11-29 | Intel Corporation | Method and apparatus for large payload distribution in a network |
-
2001
- 2001-10-26 AT AT01983213T patent/ATE381191T1/de not_active IP Right Cessation
- 2001-10-26 WO PCT/US2001/042785 patent/WO2002035359A2/en active IP Right Grant
- 2001-10-26 EP EP01983213A patent/EP1364510B1/de not_active Expired - Lifetime
- 2001-10-26 DE DE60131900T patent/DE60131900T2/de not_active Expired - Lifetime
- 2001-10-26 US US09/984,024 patent/US7272613B2/en not_active Expired - Fee Related
- 2001-10-26 AU AU2002214659A patent/AU2002214659A1/en not_active Abandoned
-
2004
- 2004-02-12 HK HK04100959A patent/HK1058279A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2002035359A3 (en) | 2003-09-18 |
EP1364510A2 (de) | 2003-11-26 |
ATE381191T1 (de) | 2007-12-15 |
HK1058279A1 (en) | 2004-05-07 |
EP1364510B1 (de) | 2007-12-12 |
DE60131900D1 (de) | 2008-01-24 |
AU2002214659A1 (en) | 2002-05-06 |
US7272613B2 (en) | 2007-09-18 |
WO2002035359A2 (en) | 2002-05-02 |
US20020133491A1 (en) | 2002-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60131900T2 (de) | Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten | |
EP1892921B1 (de) | Verfahren und System zur Verwaltung verteilter Inhalte und damit zusammenhängender Metadaten | |
DE60111072T2 (de) | Verfahren und vorrichtung zur parallelen nachrichtenübermittlung in echtzeit von dateisegmentierten | |
US10929435B2 (en) | Content delivery network analytics management via edge stage collectors | |
DE69635047T2 (de) | Vernetzte server mit kundenspezifischen diensten zum herunterladen von videos | |
DE60122691T2 (de) | Verfahren und vorrichtung zum verteilten cachen | |
DE60317925T2 (de) | Steuerung von netzwerkverkehr in einer peer-to-peer umgebung | |
DE69909839T2 (de) | Optimierte Lokalisierung von Netzwerkbetriebsmittel | |
DE112005003035B4 (de) | Teilen einer Arbeitslast eines Knotens | |
DE60317403T2 (de) | Mehrstufige Cache-Speicherarchitektur und Cache-Speicherverwaltungsverfahren für gleichrangiges Namensauflösungs-Protokoll | |
DE69907631T2 (de) | Netzzugang zu inhaltsadressierbaren daten | |
DE202014010898U1 (de) | Hierarchische Stückelung von Objekten in einem dezentralen Speichersystem | |
WO2002035799A2 (en) | Method and apparatus for large payload distribution in a network | |
DE60204031T2 (de) | Hierarchische cachespeicherung in telekommunikationsnetzen | |
DE202023102700U1 (de) | Datenaufnahmereplizierung und Notfallwiederherstellung | |
EP1524608B1 (de) | Kommunikationssystem zur Verwaltung und Bereitstellung von Daten | |
DE112020004493T5 (de) | Zwischenspeicherfähigkeit von single-page-anwendungen | |
CH717605B1 (de) | Verfahren und Vorrichtung zur Übertragung von Mediadateien von zumindest einer zentralen Servervorrichtung auf eine Mehrzahl von Empfangsgeräten über ein digitales Netzwerk. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: FLOOD, JAMES C. JUN., PORTLAND, OREG., US Owner name: HUANG, TSAN-FUNG, SAN MARINO, CALIF., US Owner name: INTEL CORPORATION, SANTA CLARA, CALIF., US Owner name: ISAACSON, TRYGVE, SAN LORENZO, CALIF., US Owner name: ORZEN, MATTHEW, SAN FRANCISCO, CALIF., US |
|
8381 | Inventor (new situation) |
Inventor name: HUANG, TSAN-FUNG, SAN MARINO, CA 91108, US Inventor name: ISAACSON, TRYGVE, SAN LORENZO, CA 94580, US Inventor name: FLOOD, JAMES C. JR., PORTLAND, OR 97225, US Inventor name: ORZEN, MATTHEW, SAN FRANCISCO, CA 94131, US Inventor name: SIM, SIEW YOUNG, CUPERTINO, CA 95014, US Inventor name: CHAN, DESMOND CHO-HUNG, MOUNTAIN VIEW, CA 9404, US Inventor name: CHAI, WENCHENG, SAN JOSE, CA 95129, US Inventor name: MILLS, GEORGE HARLOW, PALO ALTO, CA 94580, US |
|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806 |