DE69722962T2 - Strukturiertes datenspeichersystem mit global adressierbarem speicher - Google Patents
Strukturiertes datenspeichersystem mit global adressierbarem speicher Download PDFInfo
- Publication number
- DE69722962T2 DE69722962T2 DE69722962T DE69722962T DE69722962T2 DE 69722962 T2 DE69722962 T2 DE 69722962T2 DE 69722962 T DE69722962 T DE 69722962T DE 69722962 T DE69722962 T DE 69722962T DE 69722962 T2 DE69722962 T2 DE 69722962T2
- Authority
- DE
- Germany
- Prior art keywords
- shared
- storage
- data
- file
- directory
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0641—Shopping interfaces
-
- 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
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- 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/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2043—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
-
- 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
-
- 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/24—Negotiation of communication capabilities
-
- 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/964—Database arrangement
- Y10S707/966—Distributed
-
- 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
- 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
- Die vorliegende Erfindung betrifft allgemein strukturierte Speichersysteme (beispielsweise Dateisysteme, Datenbanksysteme und Systeme zum Speichern, Gemeinsamverwenden und Ausliefern von Datenobjekten, JAVA-Applets und Web-Seiten). Die Erfindung betrifft insbesondere Systeme und Verfahren, die einen strukturierten Datenspeicher, vorzugsweise innerhalb eines verteilten, adressierbaren, gemeinsam verwendeten Speicherplatzes, erhalten.
- Computerbasierte strukturierte Speichersysteme, wie Computerdateisysteme und Datenbanksysteme, waren bemerkenswert erfolgreich, Benutzern einen schnellen und einfachen Zugriff auf enorme Datenmengen zu geben. Die Wichtigkeit dieser strukturierten Speichersysteme im heutigen Handel kann kaum übertrieben werden. Beispielsweise haben es strukturierte Speichersysteme Gesellschaften ermöglicht, enorme Speicher permanenter Daten, die die Firma modifizieren und aktualisieren kann, im Laufe der Jahre zu erzeugen und zu unterhalten. Für viele Firmen sind diese permanenten Daten ein wertvolles Kapital, das täglich verwendet wird, um die Kernoperationen der Firma auszuführen. Die Daten können beispielsweise Computerdateien (beispielsweise Quellcode, Textverarbeitungsdokumente usw.), Datenbank-Datensätze und Informationen (beispielsweise Informationen zu Angestellten, Kunden und/oder Produkten) und/oder Web-Seiten sein.
- Ein typisches computerbasiertes strukturiertes Speichersystem weist einen zentralen Server, wie bspw. ein Dateisystem-Server oder ein Datenbanksystem-Server, auf, der eine zentralisierte Steuerung des strukturierten Datenspeichers bereitstellt. Der strukturierte Datenspeicher besteht aus den Informationen, die von dem System unterhalten werden, wie den Informationen in den Dateien und den Verzeichnissen des Dateisystems oder den Informationen innerhalb der Zeilen und Spalten der Tabellen des Datenbanksystems. Der zentrale Server stellt einer Mehrzahl miteinander verbundener Netzwerk-Clientknoten Systemdienste bereit, und jeder der Clientknoten verwendet den zentralen Server zum Zugreifen auf den strukturierten Datenspeicher und zum Manipulieren von diesem. Dementsprechend stellt der zentrale Server einen Kern für das strukturierte Speichersystem bereit und erhält eine zentrale Steuerung des Systems und der darin gespeicherten Daten aufrecht.
- Wenngleich solche serverbasierten Systeme im allgemeinen gut funktioniert haben, ergeben sich daraus Probleme, daß auf eine zentralisierte Steuerung des strukturierten Datenspeichers vertraut wird. Beispielsweise hängt der Betrieb des strukturierten Speichersystems von der richtigen Funktionsweise des zentralen Servers ab. Jedesmal, wenn es dem Server nicht gelingt, den richtigen Betrieb aufrechtzuerhalten, beispielsweise bei einem Stromausfall, einem Hardwareausfall oder einem anderen Systemausfall, wird das gesamte strukturierte Speichersystem deaktiviert und verhindert, daß Benutzer auf den Datenspeicher zugreifen. Zusätzlich kann der Serverprozeß durch eine Flut von den einzelnen Netzwerkknoten ausgegebener Client-Dienstanforderungen überlastet werden und das System kann dadurch verlangsamt werden oder zusammenbrechen. Dementsprechend kann das Vertrauen auf eine zentralisierte Steuerung des strukturierten Speichersystems während Zeiträumen einer starken Benutzung zu einem langsamen Betrieb sowie zu Systemausfällen infolge einer Überlastung des zentralen Servers führen.
- Ein zusätzliches Problem, das bei einem Client-Server-Netzwerksystem auftritt, besteht darin, daß es eine statische Betriebsumgebung bereitstellt, die für eine optimale Funktionsweise bei einem bestimmten Niveau der Netzwerkaktivität eingestellt ist. Folglich nutzt das Netzwerk verfügbare Betriebsmittel zum Verbessern der Systemfunktionsweise nicht aus. Insbesondere ist die statische Betriebsumgebung, wenn die Systemaktivität über das erwartete Niveau der Netzwerkaktivität ansteigt oder darunter absinkt, nicht in der Lage, die Zuordnung von Netzwerkbetriebsmitteln dynamisch so zu konfigurieren, daß eine bessere Funktionsweise für das gegenwärtige Aktivitätsniveau bereitgestellt wird.
- Es wurde eine Technologie zum Verbessern der Zuverlässigkeit und der Arbeitsweise dieser zentralisiert strukturierten Speichernetzwerksysteme entwickelt. Diese Technologie war in erster Linie auf die Entwicklung zuverlässiger Datenbanken und Dateisysteme gerichtet, und sie beinhaltete im allgemeinen eines von zwei Verfahren, nämlich (1) das statische Abbilden der Daten auf einen oder mehrere Server oder (2) das Speichern der Daten in einem global gemeinsam benutzten Datenspeicher in der Art einer gemeinsam verwendeten Platte.
- Systeme, bei denen das erste Verfahren verwendet wird, verteilen Abschnitte des strukturierten Speichers permanenter Daten statisch über eine Mehrzahl von Servern. Jeder der Server enthält einen Abschnitt des strukturierten Datenspeichers sowie wahlweise einen zugeordneten Abschnitt einer Verzeichnisstruktur, die die Abschnitte der innerhalb dieses bestimmten Servers gespeicherten Daten beschreibt. Diese Systeme schützen vor einem Datenverlust, indem sie den Datenspeicher statisch über eine Mehrzahl von Servern verteilen, so daß der Ausfall eines Servers zu einem Verlust nur eines Teils der Gesamtdaten führt. Andere Entwicklungen in der Cluster-Datenbanktechnologie sehen das Replizieren von Abschnitten des strukturierten Datenspeichers und das statische Speichern der replizierten Abschnitte über eine Mehrzahl von Servern vor. Dementsprechend gehen diese Systeme beim Schützen vor dem Datenverlust weiter, indem sie innerhalb des strukturierten Speichersystems eine statische Redundanz bereitstellen. Wenngleich die bekannte Cluster-Datenbanktechnologie jedoch in der Hinsicht, daß sie vor einem Datenverlust schützt, einen fehlertoleranteren Betrieb bereitstellen kann, beruhen die bekannten Systeme weiterhin auf einer statischen Zuordnung der Daten über verschiedene Server. Weil Daten nicht dynamisch zwischen Servern zugeordnet werden, werden (1) Systembetriebsmittel nicht auf der Grundlage der Systemverwendung zugeordnet, was zu einer Unterbenutzung dieser Betriebsmittel führt, ist (2) die skalierbare Leistungsfähigkeit begrenzt, weil neue Server immer dann bereitgestellt werden müssen, wenn der Datensatz anwächst oder wenn ein bestimmter Server Anforderungen nicht nachkommen kann, die an seinen Abschnitt des Datensatzes gerichtet sind, und (3) erfordert eine solche statische Zuordnung weiterhin, daß wenigstens einer der die Informationen speichernden Server überlebt, um die Daten zu bewahren.
- Systeme, die das zweite Verfahren verwenden, speichern die strukturierten Daten in einem zentralen Datenspeicher, wie bspw. in einer gemeinsam verwendeten Platte. Jeder Knoten in dem System aktualisiert ständig den zentralen Datenspeicher innerhalb seines Abschnitts des strukturierten Speichers. Beispielsweise exportiert in einem Datenbanksystem jeder Knoten Tabellen, die er gegenwärtig verwendet, zum Datenspeicher. Wenngleich dieses Verfahren die Probleme des Lastausgleichs auf den zentralen Datenspeicher überträgt, weist es zwei wesentliche Nachteile auf. Erstens ist der Durchsatz verringert, weil der Zusatzaufwand erhöht ist, der mit dem Gewährleisten der Kohärenz des zentralisierten Datenspeichers verbunden ist. Zweitens ist das Sperren unwirksam, weil ganze Seiten gesperrt werden, wenn ein Knoten auf einen Abschnitt einer Seite zugreift. Folglich können Knoten eine Speicherkonkurrenz erfahren, selbst wenn keine wirklichen Konflikte auftreten.
- Eine weitere Lösung aus dem Stand der Technik wurde in "SERVERLESS NETWORK FILE SYSTEMS" von Anderson, T. E. u. a. (OPERATING SYSTEMS REVIEW (SIGOPS), Band 29, Nr. 5, 1. Dezember 1995, S. 109–126) beschrieben. In diesem Dokument ist ein System vorgeschlagen, bei dem jeder Netzwerkknoten Dateien speichern kann, die für alle anderen Knoten zugänglich sind, so daß jeder Knoten einen Teil des gemeinsam verwendeten Speichers bereitstellen kann. Der Nachteil dieses Systems besteht jedoch darin, daß jeder Knoten, um eine Datei lokalisieren zu können, zwei ge trennte Abbildungen unterhalten muß, nämlich eine für die lokal gespeicherten Dateien und eine für die fern gespeicherten Dateien.
- In einer Hinsicht sieht die vorliegende Erfindung ein Verfahren zum Bereitstellen einer verteilten Steuerung eines strukturierten Datenspeichers vor, das die folgenden Schritte aufweist:
Bereitstellen einer Mehrzahl von durch ein Netzwerk miteinander verbundenen Knoten, wobei jeder der Mehrzahl von Knoten einen gemeinsam verwendeten adressierbaren Speicherplatz eines gemeinsam verwendeten Speichersystems geteilt verwendet und (i) eine Schnittstelle zum Zugreifen auf das Netzwerk, (ii) eine lokale flüchtige Speichervorrichtung, die mit dem Knoten gekoppelt ist und einen flüchtigen Speicher bereitstellt, (iii) eine lokale permanente Speichervorrichtung, die mit dem Knoten gekoppelt ist und einen permanenten Speicher bereitstellt, und (iv) ein gemeinsam verwendetes Speicheruntersystem zum Abbilden eines Abschnitts des gemeinsam verwendeten adressierbaren Speicherplatzes in mindestens einen Abschnitt des permanenten und des flüchtigen Speichers, um dadurch einen adressierbaren permanenten und flüchtigen Speicher bereitzustellen, der von jedem der Mehrzahl von Knoten ansteuerbar ist, aufweist, wobei das gemeinsam verwendete Speicheruntersystem (a) einen Verteiler zum Abbilden von Abschnitten des adressierbaren Speicherplatzes über die Mehrzahl von lokalen permanenten und flüchtigen Speichervorrichtungen, um den adressierbaren Speicherplatz über die Mehrzahl von lokalen permanenten und flüchtigen Speichervorrichtungen zu verteilen, und (b) eine Verzeichnisverwaltungseinheit zum Verfolgen der abgebildeten Abschnitte des adressierbaren Speicherplatzes, um Informationen bereitzustellen, die angeben, welche Abschnitte des adressierbaren Speicherplatzes auf welche der lokalen permanenten und flüchtigen Speichervorrichtungen abgebildet sind, aufweist,
Speichern einer Instanz bzw. Ausprägung eines Datensteuerprogramms zum Manipulieren des strukturierten Datenspeichers an jedem Knoten, um mehrere verteilte Ausprägungen des Datensteuerprogramms bereitzustellen,
Verknüpfen jeder Ausprägung des Datensteuerprogramms mit dem gemeinsam verwendeten Speichersystem und
Betreiben jeder Ausprägung des Datensteuerprogramms, um das gemeinsam verwendete Speichersystem als eine Speichervorrichtung zu verwenden, in der der strukturierte Datenspeicher enthalten ist, wobei die Koordinaten des gemeinsam verwendeten Speichersystems auf den strukturierten Datenspeicher zugreifen, um eine verteilte Steuerung des strukturierten Datenspeichers bereitzustellen. - In einer anderen Hinsicht sieht die vorliegende Erfindung ein Verfahren zum Bereitstellen einer verteilten Steuerung über einen strukturierten Datenspeicher vor, das die folgenden Schritten aufweist:
Bereitstellen einer Mehrzahl von durch ein Netzwerk miteinander verbundener Knoten,
Speichern einer Ausprägung eines Datensteuerprogramms an jedem Knoten, um mehrere verteilte Ausprägungen des Datensteuerprogramms bereitzustellen, wobei das Daten steuerprogramm den Zugriff auf den strukturierten Datenspeicher manipuliert und steuert,
Verknüpfen jeder Ausprägung des Datensteuerprogramms mit einem gemeinsam verwendeten Speichersystem, das einen adressierbaren permanenten Datenspeicher bereitstellt,
Betreiben jeder Ausprägung des Datensteuerprogramms, um das gemeinsam verwendete Speichersystem als eine Speichervorrichtung zu verwenden, in der der strukturierte Datenspeicher enthalten ist, wobei die Koordinaten des gemeinsam verwendeten Speichersystems auf den strukturierten Datenspeicher zugreifen, um eine verteilte Steuerung des strukturierten Datenspeichers bereitzustellen,
Versehen der strukturierten Datenspeicher mit einem Verzeichnis, und
Betreiben des gemeinsam verwendeten Speichersystems, um das Verzeichnis innerhalb eines gemeinsam verwendeten Speicherplatzes zu erhalten. - Bevorzugte Ausführungsformen der Erfindung sehen verbesserte Speichersysteme zum Unterhalten eines strukturierten Datenspeichers, strukturierte Speichersysteme, die zuverlässiger sind, einen fehlertoleranteren Betrieb bereitstellen und die Fähigkeit aufweisen, Daten ansprechend auf Netzwerkaktivitätsniveaus und Zugriffsmuster dynamisch zu bewegen, um die Funktionsweise zu optimieren und Knotenzugriffszeiten zu minimieren, strukturierte Speichersysteme, die eine verteilte Steuerung über einen strukturierten Speicher permanenter Daten bereitstellen, wobei die Daten beispielsweise Computerdateien, Datenbank- Datensätze und Informationen oder Web-Seiten einschließen können, vor, und sie sehen eine verteilte Steuerung einer Mehrzahl verschiedener Typen strukturierter Speichersysteme, wie Dateisysteme, Datenbanksysteme und Systeme, die Web-Seiten speichern, gemeinsam verwenden und sie zu anfordernden Knoten und/oder anfordernden Netzwerken übermitteln, vor.
- Ausführungsformen der Erfindung können als strukturierte Speichersysteme und verwandte Verfahren, bei denen ein global adressierbares unstrukturiertes Speichersystem verwendet wird, um einen strukturierten Speicher permanenter Daten innerhalb eines gemeinsam verwendeten Speicherplatzes zu unterhalten, verstanden werden. Es kann ein gemeinsam verwendetes Speichersystem, wie bspw. ein verteiltes gemeinsam verwendetes Speichersystem (DSM), verwendet werden, das den Datenspeicher über einige oder alle mit einem Netzwerk verbundenen Speichervorrichtungen verteilt. Speichervorrichtungen, die mit dem Netzwerk verbunden werden können, umfassen Festplatten-Laufwerke, Bandlaufwerke, Diskettenlaufwerke, CD-ROM-Laufwerke, optische Plattenlaufwerke, Direktzugriffsspeicher-Chips oder Nurlesespeicher-Chips.
- Das strukturierte Speichersystem kann ein Computerprogramm sein, das sich mit einem DSM austauscht, um das DSM als eine Speichervorrichtung zu betreiben, die einen permanenten Datenspeicher bereitstellt. Das Steuerprogramm des strukturierten Speichersystems kann dem DSM vorschreiben, Datei- und Verzeichnisdaten in den gemeinsam verwendeten Speicherplatz abzubilden. Das DSM kann Funktionen zum gemeinsamen Verwenden und kohärenten Replizieren von Daten aufweisen. Bei einer Ausführungsform stellt das DSM dem Datensteuerprogramm Speichervorrichtungsdienste bereit. Diese Dienste können Lese-, Schreib-, Zuordnungs-, Räumungs- oder andere ähnliche oder zusätzliche Dienste einschließen, die geeignet sind, eine Steuerung niedriger Ebene einer Speichervorrichtung bereitzustellen. Das Datensteuerprogramm verwendet diese DSM-Dienste zum Zuordnen von Abschnitten des gemeinsam verwendeten Speicherplatzes und zum Zugreifen auf diese, um einen strukturierten Speicher permanenter Daten zu erzeugen und zu manipulieren.
- Bei einer Ausführungsform sieht die Erfindung ein Verfahren und ein verwandtes System zum Bereitstellen einer verteilten Steuerung des strukturierten Datenspeichers vor. Das Verfahren umfaßt das Bereitstellen einer Mehrzahl durch ein Netzwerk miteinander verbundener Knoten und das Speichern einer Ausprägung eines Datensteuerprogramms zum Manipulieren des strukturierten Datenspeichers zum Bereitstellen mehrerer verteilter Ausprägungen des Datensteuerprogramms auf jedem Knoten. Das Verfahren umfaßt auch das Verknüpfen jeder Ausprägung des Datensteuerprogramms mit einem gemeinsam verwendeten Speichersystem, das einen adressierbaren permanenten Datenspeicher bereitstellt und das Betreiben jeder Ausprägung des Datensteuerprogramms, um das gemeinsam verwendete Speichersystem als eine Speichervorrichtung zu verwenden, in der der strukturierte Datenspeicher enthalten ist, wobei die Koordinaten des gemeinsam verwendeten Speichersystems auf den strukturierten Datenspeicher zugreifen, um eine verteilte Steuerung des strukturierten Datenspeichers bereitzustellen.
- Ausführungsformen der Erfindung umfassen das Verknüpfen aller Ausprägungen des Datensteuerprogramms mit einem DSM, das eine verteilte Speicherung über die miteinander verbundenen Knoten bereitstellt und das einen permanenten Speicher für die Daten bereitstellt. Der Verknüpfungsschritt kann weiterhin einschließen, daß dem Datensteuerprogramm vorgeschrieben wird, einen im strukturierten Datenspeicher zu speichernden Datenstrom bereitzustellen und das gemeinsam verwendete Speichersystem als eine Einzelknoten-Speichervorrichtung zu betreiben.
- Andere Ausführungsformen der Erfindung umfassen das Betreiben des gemeinsam verwendeten Speichersystems, so daß gespeicherte Daten kohärent repliziert werden, um einen redundanten Datenspeicher bereitzustellen, und das Speichern der kohärent replizierten Daten innerhalb verschiedener Speichervorrichtungen des Netzwerks, um einen fehlertoleranten Betrieb bereitzustellen. Weiterhin sind das Koordinieren des gemeinsamen Zugriffs auf Daten innerhalb des strukturierten Speichers durch innerhalb eines gemeinsam verwendeten Speicherplatzes gespeicherten Sperrobjekte und das Erzeugen einer Sperrobjekt-Datenstruktur mit Informationen, die einen Sperrstatus darstellen, auf Abschnitten des gemeinsam verwendeten Speicherplatzes und das Speichern des Sperrobjekts innerhalb des gemeinsam verwendeten Speicherplatzes zum Bereitstellen einer Sperre des gemeinsam verwendeten Systems enthalten. Es können Objekte gesperrt werden, indem dem gemeinsamen Speicher vorgeschrieben wird, Sperren für Abschnitte des gemeinsam verwendeten Speicherplatzes zu erzeugen. Weiterhin kann das Datensteuerprogramm Daten komprimieren, die in dem strukturierten Datenspeicher zu speichern sind.
- Andere Ausführungsformen der Erfindung umfassen Anordnungen, bei denen der strukturierte Datenspeicher ein Dateisystem, ein Datenbanksystem, ein Web-Seitensystem oder allgemein ein beliebiges Objekte speicherndes, abrufendes, manipulierendes und zuführendes System aufweist. Für die Ausführungsform des Dateisystems weist das Datensteuerprogramm ein Dateisteuerprogramm zum Manipulieren des Dateisystems auf, wodurch das gemeinsam verwendete Speichersystem den Zugriff auf das Dateisystem steuert, um ein gemeinsam verwendetes Dateisystem bereitzustellen. Für die Ausführungsform des Datenbanksystems weist das Datensteuerprogramm ein Datenbank-Steuerprogramm zum Manipulieren des Datenbanksystems auf, wodurch das gemeinsam verwendete Speichersystem den Zugriff auf das Datenbanksystem steuert, um ein gemeinsam verwendetes Datenbanksystem bereitzustellen. Für die Ausführungsform des Web-Seitensystems weist das Datensteuerprogramm ein Web-Seitensteuerprogramm zum Manipulieren des Web-Seitensystems auf, wodurch das gemeinsam verwendete Speichersystem den Zugriff auf das Web-Seitensystem steuert, um ein gemeinsam verwendetes Web-Seitensystem bereitzustellen. Für beliebige dieser speziellen Ausführungsformen verwendet das gemeinsam verwendete System ein Verzeichnis und betreibt das gemeinsam verwendete Speichersystem, um das Verzeichnis innerhalb des gemeinsam verwendeten Speicherplatzes aufrechtzuerhalten, und das Verzeichnis ist als eine Mehrzahl innerhalb des gemeinsam verwendeten Speicherplatzes gespeicherter Sätze organisiert. Weiterhin wird für ein innerhalb des gemeinsam verwendeten Systems gespeichertes Objekt (beispielsweise eine Datei, ein Datenbank-Datensatz, eine Web-Seite usw.) ein Deskriptor erzeugt, der einen Speicher für einen Bezeichner aufweist, der einen Abschnitt eines gemeinsam verwendeten Speicherplatzes darstellt, und es können benachbarte Abschnitte des gemeinsam verwendeten Speicherplatzes zugeordnet werden, die jeweils durch einen jeweiligen Bezeichner dargestellt sind, um reduzierte Buchhaltungsinformationen für die jeweilige Datei bereitzustellen und den Zugriff auf den physikalischen Speicher für die Datei zu optimieren.
- Einige Ausführungsformen der Erfindung werden nun nur als Beispiel mit Bezug auf die anliegende Zeichnung beschrieben. In der Zeichnung bezeichnen gleiche Bezugszahlen im allgemeinen überall in den verschiedenen Darstellungen die gleichen Teile. Weiterhin sind die Zeichnungen nicht notwendigerweise maßstabsgerecht, wobei der Nachdruck im allgemeinen vielmehr auf das Erläutern der Grundgedanken der Erfindung gelegt wird.
-
1 zeigt ein schematisches Blockdiagramm eines verteilten, adressierbaren, strukturierten gemeinsam verwendeten Datenspeichersystems gemäß der Erfindung. -
2 zeigt ein Diagramm einer möglichen Ausführungsform des Systems aus1 , nämlich ein verteiltes, adressierbares gemeinsam verwendetes Speicher-Dateisystem, das einen Speicher für Computerdateien, wie bspw. Source-Code-Dateien, Textverarbeitungsdokument-Dateien usw., bereitstellt. -
3 zeigt eine graphische Darstellung der Organisation von Verzeichniseinträgen und zugeordneten Datei-Deskriptoren (auch als "Inoden" bekannt), die zur Verwendung mit dem Dateisystem aus2 geeignet ist. -
4 zeigt ein Diagramm eines zur Verwendung mit dem Dateisystem aus2 geeigneten Inoden. -
5 zeigt ein verteiltes gemeinsam verwendetes Speicher-Computernetzwerk. -
6 zeigt ein Funktionsblockdiagramm, in dem ein verteiltes gemeinsam verwendetes Speicher-Computernetzwerk des in5 dargestellten Typs in weiteren Einzelheiten dargestellt ist. -
7 zeigt in weiteren Einzelheiten ein gemeinsam verwendetes Speicheruntersystem, das zum Einsatz mit dem in6 dargestellten Netzwerk geeignet ist. -
8 zeigt ein Funktionsblockdiagramm eines gemeinsam verwendeten Speicheruntersystems gemäß der Erfindung. -
9 zeigt eine Verzeichnisseite, die durch ein gemeinsam verwendetes Speicheruntersystem des in8 dargestellten Typs bereitgestellt werden kann. -
10 zeigt ein Verzeichnis, das innerhalb eines gemeinsam verwendeten Speichers verteilt werden kann und aus Verzeichnisseiten des in9 dargestellten Typs besteht. -
11 zeigt in Form eines Funktionsblockdiagramms ein System, bei dem ein Verzeichnis gemäß10 zum Verfolgen von Abschnitten eines verteilten gemeinsam verwendeten Speichers verwendet wird. - Beschreibung
- Ein Netzwerksystem
10 gemäß der Erfindung weist eine Mehrzahl von Netzwerkknoten auf, die auf einen Speicherplatz zugreifen, in dem ein strukturierter Datenspeicher, wie bspw. ein strukturiertes Dateisystem oder eine Datenbank, gespeichert ist. Jeder der Knoten weist mindestens ein Datensteuerprogramm auf, das auf den strukturierten Datenspeicher zugreift und diesen verwaltet. Der strukturierte Datenspeicher kann in einem adressierbaren gemeinsam verwendeten Speicher gespeichert sein, oder der strukturierte Speicher kann in traditionellerer Weise gespeichert sein. Beispielsweise kann jeder Knoten dafür verantwortlich sein, ein bestimmtes Element oder bestimmte Elemente des strukturierten Datenspeichers zu speichern. Bei einer solchen Ausführungsform kann das Datensteuerprogramm unter Verwendung eines global eindeutigen Bezeichners auf einen gewünschten Abschnitt des strukturierten Speichers zugreifen. Das zugrundeliegende System übersetzt den Bezeichner in einen oder mehrere Befehle unter Einschluß von Netzwerkübertragungsbefehlen zum Zugreifen auf die gewünschten Daten. Bei einer weiteren Ausführungsform wird der strukturierte Datenspeicher in einem adressierbaren gemeinsam verwendeten Speicherplatz gespeichert, wodurch ermöglicht wird, daß die Knoten unter Verwendung von Standard-Speicherzugriffsbefehlen transparent auf Abschnitte des strukturierten Speichers zugreifen. - Das System
10 kann ein Dateisystem, ein Datenbanksystem, ein Web-Server, ein Objektquellensystem oder ein anderes strukturiertes Speichersystem sein, das einen organisierten Datensatz enthält. Der Begriff "Web-Server" soll hier einen beliebigen Prozessor bezeichnen, der Datenobjekte (wie bspw. Active-X-Objekten), Anwendungen (wie bspw. JAVA-Applets) oder Dateien (wie bspw. HTML-Dateien) über Web-Protokolle (beispielsweise HTTP oder FTP) zu einem Requestor überträgt. Bei einer offenbarten Ausführungsform ist das System10 ein Dateisystem, das verschiedene Computerdateien enthält. Dies ist jedoch lediglich eine Ausführungsform der Erfindung, die Erläuterungszwecken dient. Die Erfindung kann verwendet werden, um beliebige einer Mehrzahl strukturierter Speichersysteme (beispielsweise ein Datenbanksystem, ein Web-Seitensystem, ein Intranet usw.) bereitzustellen. Die Erfindung soll nicht auf das Dateisystem oder andere spezielle hier beschriebene Ausführungsformen beschränkt sein. - Mit Bezug auf
1 sei bemerkt, daß ein Netzwerksystem10 gemäß der Erfindung eine Mehrzahl von Netzwerkknoten12a –12d und einen adressierbaren gemeinsam verwendeten Speicherplatz20 aufweist, wobei der gemeinsam verwendete Speicherplatz20 einen Abschnitt22 zum Speichern eines strukturierten Datenspeichers28 aufweist. Jeder der Knoten12a –12d kann mehrere Unterelemente aufweisen. Beispielsweise weist der Knoten12a einen Prozessor30a , ein Datensteuerprogramm32a und ein gemeinsam verwendetes Speicheruntersystem34a auf. Bei der offenbarten Ausführungsform weisen zwei der Knoten12a und12c Bildschirme auf, die Anzeigen40 und42 bereitstellen, die den strukturierten Datenspeicher28 innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes20 graphisch darstellen. Der adressierbare gemeinsam verwendete Speicherplatz20 verbindet alle Netzwerkknoten12a –12d miteinander und bietet jedem der Knoten12a –12d einen Zugriff auf den im adressierbaren gemeinsam verwendeten Speicherplatz20 enthaltenen strukturierten Datenspeicher28 . - Ein erfindungsgemäßes System
10 kann unter anderem jeden Netzwerkknoten12a –12d mit einer geteilten Steuerung des strukturierten Datenspeichers28 versehen, und das System10 kann daher die Steuerung des Datenspeichers über die Knoten des Netzwerks verteilen. Hierzu weist jeder Knoten des Systems10 in der Art des Knotens12a ein Datensteuerprogramm32a auf, das mit einem gemeinsam verwendeten Speicheruntersystem34a verknüpft ist. Das Datensteuerprogramm32a kann als ein strukturiertes Speichersystem in der Art eines Dateisystems arbeiten, das dafür eingerichtet ist, einen strukturierten Datenspeicher zu erhalten und das gemeinsam verwendete Speichersystem als eine adressierbare Speichervorrichtung zu verwenden, die einen strukturierten Datenspeicher speichern kann. In Richtung des Datensteuerprogramms32a kann das gemeinsam verwendete Speicheruntersystem34a auf Daten innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes20 zugreifen und diese speichern. Diese zusammenwirkenden Elemente bilden ein strukturiertes Speichersystem, das eine verteilte Architektur aufweist und dadurch eine größere Fehlertoleranz, Zuverlässigkeit und Flexibilität erreicht als dies bei bekannten strukturierten Speichersystemen der Fall ist, die auf einer zentralisierten Steuerung und zentralisierten Servern beruhen. Dementsprechend kann die Erfindung Computernetzwerke mit verteilt gesteuerten und leicht skalierbaren Dateisystemen, Datenbanksystemen, Web-Seiten systemen, Objektquellen, Daten-Cache-Systemen oder anderen strukturierten Speichersystemen bereitstellen. - Weiterhin mit Bezug auf
1 sei bemerkt, daß das erfindungsgemäße System10 innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes20 einen strukturierten Datenspeicher28 betreibt. Jeder der Knoten12a –12d kann über die gemeinsam verwendeten Speicheruntersysteme34a –34d auf den adressierbaren gemeinsam verwendeten Speicherplatz20 zugreifen. Jedes der gemeinsam verwendeten Speicheruntersysteme34a –34d bietet seinem Knoten einen Zugriff auf den adressierbaren gemeinsam verwendeten Speicherplatz20 . Die gemeinsam verwendeten Speicheruntersysteme34a –34d koordinieren jede der Speicherzugriffsoperationen des jeweiligen Knotens, um einen Zugriff auf die gewünschten Daten bereitzustellen und innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes20 die Datenkohärenz zu erhalten. Dies ermöglicht es, daß die miteinander verbundenen Knoten12a –12d den adressierbaren gemeinsam verwendeten Speicherplatz20 als einen Platz zum Speichern und Abrufen von Daten verwenden. Wenigstens ein Abschnitt des adressierbaren gemeinsam verwendeten Speicherplatzes20 wird durch ein physikalisches Speichersystem unterstützt, das einen permanenten Datenspeicher bereitstellt. Beispielsweise kann ein Abschnitt des adressierbaren gemeinsam verwendeten Speicherplatzes20 einem oder mehreren Festplattenlaufwerken, die sich auf dem Netzwerk befinden oder einem oder mehreren der Netzwerkknoten12a –12d als lokaler Festplattenspeicher für diese bestimmten Knoten zugeordnet sind, zugewiesen werden oder darauf abgebildet werden. Demgemäß zeigt1 das erfindungsgemäße System mit gemeinsam verwenden Speicher untersystemen, die den Netzwerkknoten einen Zugriff auf einen adressierbaren gemeinsam verwendeten Speicherplatz bieten, wobei wenigstens ein Teil dieses Raums wenigstens einem Teil von einer oder mehreren permanenten Speichervorrichtungen (beispielsweise Festplatten) zugewiesen ist, um zu ermöglichen, daß die Knoten Daten adressierbar in einer oder mehreren permanenten Speichervorrichtungen speichern oder aus diesen abrufen. Eine bevorzugte Ausführungsform eines solchen adressierbaren gemeinsam verwendeten Speicherplatzes ist in der am 22. November 1996 eingereichten gemeinhin anerkannten US-Patentanmeldung mit der laufenden Nummer 08/754 481 beschrieben. - Daher besteht eine Erkenntnis der vorliegenden Erfindung darin, daß jeder der Knoten
12a –12d sein jeweiliges gemeinsam verwendetes Speicheruntersystem als eine Speichervorrichtung verwenden kann, die einen permanenten Datenspeicher bereitstellt. - Jedes der Datensteuerprogramme
32a –32d ist ein Softwaremodul, das in einer Weise mit dem jeweiligen gemeinsam verwendeten Speicheruntersystem34a –34d gekoppelt ist, das in ähnlicher Weise wie eine Schnittstelle zwischen einem herkömmlichen Datenspeicherprogramm und einer lokalen Speichervorrichtung arbeitet. Beispielsweise kann das Datensteuerprogramm32a Daten zu dem gemeinsam verwendeten Speicheruntersystem34a leiten und Daten von diesem aufnehmen. Weil die gemeinsam verwendeten Speicheruntersysteme die Speicherzugriffe auf den adressierbaren gemeinsam verwendeten Speicherplatz20 koordinieren, wird jedes der Datensteuerprogramme davon befreit, daß es seine Aktivitäten mit den anderen Datensteuerprogrammen auf dem Netzwerk verwalten und koordinieren muß oder daß es seine Aktivitäten mit einem oder mehreren zentralen Servern verwalten und koordinieren muß. Dementsprechend kann jedes der Datensteuerprogramme32a –32d eine Peer-Ausgestaltung (also eine Instanz bzw. Ausprägung) sein, die an einem anderen der Netzwerkknoten12a –12d vorhanden ist und das jeweilige gemeinsam verwendete Speicheruntersystem34a –34d als eine lokale Speichervorrichtung in der Art einer lokalen Festplatte behandeln kann. - Eines oder mehrere der Datensteuerprogramme
32a –32d kann eine graphische Benutzerschnittstelle42 bereitstellen, die den innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes20 enthaltenen strukturierten Datenspeicher28 graphisch darstellt. Die graphische Benutzerschnittstelle42 ermöglicht es einem Benutzer an einem Knoten, beispielsweise an einem Knoten12a , Datenobjekte graphisch innerhalb des strukturierten Datenspeichers28 einzufügen. Hierzu kann das Datensteuerprogramm32a einen Befehlssatz erzeugen, der dem gemeinsam verwendeten Speicheruntersystem34a einen Datenstrom zuführt, und das gemeinsam verwendete Speicheruntersystem34a verwendet den Datenstrom zum Speichern eines Objekts innerhalb des strukturierten Datenspeichers28 . In ähnlicher Weise können die anderen gemeinsam verwendeten Speicheruntersysteme34b –34d ihren jeweiligen Knoten Informationen zuführen, die diese Änderung an dem strukturierten Datenspeicher28 angeben. Dementsprechend reflektiert dieser Knoten (der eine graphische Benutzerschnittstelle40 aufweist), wie in1 nur der Einfachheit halber für den Knoten12c dargestellt ist, die vom Datensteuerprogramm32a des Knotens12a bewirkte Änderung am strukturierten Datenspeicher28 . Insbesondere kann die graphische Benutzerschnittstelle40 des Knotens12c einem Benutzer zeigen, daß ein Objekt in den strukturierten Datenspeicher28 gegeben wird. Beispielsweise enthält der adressierbare gemeinsam verwendete Speicherplatz20 auch die Datenobjekte50a –50c , die in den strukturierten Datenspeicher28 gegeben werden können, um Teil dieses strukturierten Datenspeichers zu werden. Wie dargestellt ist, kann ein Systembenutzer am Knoten12a vorschreiben, daß ein Objekt50a an einer festgelegten Stelle innerhalb des Datenspeichers28 eingefügt wird. Das Datensteuerprogramm32a schreibt dem gemeinsam verwendeten Speicheruntersystem34a dann vor, das Objekt50a an der geeigneten Stelle in den Datenspeicher28 zu geben. Weiterhin erfaßt das gemeinsam verwendete Speicheruntersystem34c am Knoten12c die Änderung innerhalb des Datenspeichers28 und reflektiert diese Änderung innerhalb der graphischen Benutzerschnittstelle40 . - Mit Bezug auf
2 sei bemerkt, daß ein strukturiertes Dateisystem60 eine spezielle Ausführungsform gemäß der Erfindung ist, bei der die Eigenschaften des adressierbaren gemeinsam verwendeten Speicherplatzes20 verwendet werden, um etwas zu implementieren, was für alle Netzwerkknoten wie ein kohärentes, einzelnes Dateisystem aussieht, während es tatsächlich alle mit dem adressierbaren gemeinsam verwendeten Speicherplatz20 gekoppelten Netzwerkknoten umfaßt. - Das Dateisystem
60 aus2 unterscheidet sich von bekannten physikalischen und verteilten Dateisystemen in mehrfacher Hinsicht. Im Gegensatz zu bekannten physikalischen Dateisystemen, die eine Dateiorganisation auf Plattenblöcke abbilden, verwaltet das Dateisystem60 gemäß der Erfindung die Abbildung einer Verzeichnis- und Dateistruktur auf ein verteiltes, adressierbares gemeinsam verwendetes Speichersystem20 , bei dem wenigstens ein Teil seines adressierbaren Platzes auf wenigstens einen Teil von einer oder mehreren permanenten Speichervorrichtungen (beispielsweise Festplatten) auf dem Netzwerk abgebildet ist oder diesem zugewiesen ist. Anders als bekannte verteilte Dateisysteme verwendet das Dateisystem60 gemäß der Erfindung Peer-Knoten, die jeweils eine Ausgestaltung oder Ausprägung desselben Datensteuerprogramms aufweisen. Weiterhin führt das Dateisystem60 gemäß der Erfindung, anders als bekannte Dateisysteme, generell folgendes aus: Es erhält die Datenkohärenz zwischen Netzwerkknoten, es repliziert Daten automatisch zum Erhalten einer Redundanz und Fehlertoleranz, es übermittelt Daten automatisch und dynamisch, um einer sich ändernden Netzwerkverwendung und sich ändernden Verkehrsmustern Rechnung zu tragen, und es bietet eine Vielzahl anderer Fortschritte und Vorteile, von denen einige in der am 22. November 1996 eingereichten anhängigen US-Patentanmeldung mit der laufenden Nummer 08/754 481 beschrieben sind. - Weiterhin mit Bezug auf
2 sei bemerkt, daß das Dateisystem60 teilweise innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes20 vorhanden ist und einen strukturierten Datenspeicher62 , eine Über-Wurzel64 , Dateisätze66 –74 , einen Verzeichniseintrag80 und eine Datei oder ein Dokument82 aufweist. Es sind zwei Netzwerkknoten84 und86 dargestellt, die über die logischen Laufwerke90 und94 auf den adressierbaren gemeinsam verwendeten Speicherplatz20 zugreifen (in der vorstehend mit Bezug auf1 beschriebenen Weise). Anwendungsprogramme92 und96 , die auf den Knoten ausgeführt werden, tauschen sich mit den Datensteuerprogrammen (in2 nicht dargestellt, jedoch in1 als32a –32d dargestellt) aus und bewirken, daß die Datensteuerprogramme in den Knoten auf die logischen Laufwerke90 und94 zugreifen. Bei der offenbarten Ausführungsform sind die logischen Laufwerke DOS-Vorrichtungen, die sich über installierbare Dateisystem-Treiber, die dem Dateisystem60 zugeordnet sind, mit den Verzeichnissen des Dateisatzes verbinden. - Das Dateisystem
60 unterstützt ein globales Dateisystem je adressierbarem gemeinsam verwendetem Speicherplatz20 , das von allen Netzwerkknoten gemeinsam verwendet wird. Dieses globale Dateisystem ist in ein oder mehrere unabhängige Dateisammlungen organisiert, die als Dateisätze66 –74 dargestellt sind. Ein Dateisatz kann als einer traditionellen Dateisystempartition logisch äquivalent angesehen werden. Er ist eine Ansammlung von Dateien, die hierarchisch als eine Verzeichnisbaumstruktur organisiert sind, deren Stamm in einem Wurzelverzeichnis liegt. Die nicht verzweigten Knoten in dem Baum sind die Verzeichnisse80 , und die Zweige in dem Baum sind reguläre Dateien82 oder leere Verzeichnisse. Unterverzeichnisbäume innerhalb eines Dateisatzes können durch Verknüpfen einer Datei mit mehreren Verzeichnissen überlappen. - Ein Vorteil des Aufbrechens des Dateisystems
60 in Dateisätze66 –74 besteht darin, daß den Benutzern des Systems60 dadurch eine flexiblere Dateisystemverwaltung bereitgestellt wird. Wenn das Dateisystem60 zu einer sehr hohen Größe anwächst (beispielsweise Hunderte von Knoten mit Tausenden von Gigabits an Speicherplatz), ist es erwünscht, die Dateien zu Gruppen von Verwaltungseinheiten zu organisieren, so daß Verwaltungsaktionen unabhängig auf einzelne Gruppen angewendet werden können, ohne die Funktionsweise der anderen zu beeinflussen. - Die Dateisätze in dem adressierbaren gemeinsam verwendeten Speicherplatz
20 sind in einer gemeinsamen Struktur beschrieben und spezifiziert, deren Wurzel64 den Anfangspunkt zum Lokalisieren der Dateisätze in dem adressierbaren gemeinsam verwendeten Speicherplatz20 bildet. Die Wurzel64 kann an einer statischen und wohlbekannten Speicherstelle in dem adressierbaren gemeinsam verwendeten Speicherplatz20 gespeichert werden, und auf sie kann über eine Programmschnittstelle des verteilten gemeinsam verwendeten Speichersystems zugegriffen werden. Wenn ein Knoten zum ersten Mal auf einen Dateisatz zugreift, sieht er zunächst in der Wurzel64 nach, um den Bezeichner zu bestimmen, der dem Dateisatz zugeordnet ist, beispielsweise die Adresse des gemeinsam verwendeten Speichers, die zum Zugreifen auf den Dateisatz verwendet wird. Sobald er den Bezeichner bestimmt hat, kann der Knoten auf das Wurzelverzeichnis des Dateisatzes zugreifen. Von dem Wurzelverzeichnis kann er den gesamten Verzeichnisbaum des Dateisatzes durchlaufen, um die gewünschte Datei zu lokalisieren. Von dem Dateisystem60 verwendete Dateisätze werden nachstehend in näheren Einzelheiten unter der Überschrift "Dateisatz" beschrieben. - Mit Bezug auf
3 sei bemerkt, daß bei der offenbarten Ausführungsform des Dateisystems60 gemäß der Erfindung auf ein Verzeichnis126 (wie bspw. das Verzeichnis80 aus2 ) zugegriffen wird, wobei bei einem Verzeichnis-Inode oder Deskriptor128 begonnen wird, der eine Adresse enthält, die auf einen Verzeichniseintragsstrom-Deskriptor130 verweist. Dieser Deskriptor130 ist ein Zeiger auf einen Datenblock, der Verzeichniseinträge für die Dateien Datei 1 bis Datei 3 enthält. Der Verzeichniseintrag für die Datei 1 weist eine Anzahl von Einträgen auf, wobei einer der Einträge eine Zeichenkette ist, die den Namen der Datei enthält, und ein anderer Eintrag die Adresse der Inoden und Strom-Deskriptoren132 ist. Die Strom-Deskriptoren für die Datei 1 werden verwendet, um die verschiedenen 4-Kilobyte-Seiten in dem adressierbaren gemeinsam verwendeten Speicherplatz20 , die die Datei 1 bilden, zu lokalisieren und abzurufen. Andere Dateien werden in gleicher Weise aus dem adressierbaren gemeinsam verwendeten Speicherplatz20 abgerufen und aufgebaut. Die von dem Dateisystem60 verwendeten Verzeichnisse werden nachstehend unter der Überschrift "Verzeichnis" in näheren Einzelheiten beschrieben. - Bei der in
4 offenbarten Ausführungsform des Dateisystems60 wird eine Datei98 (wie bspw. die Datei82 aus2 ) durch eine oder mehrere gemeinsam verwendete Datenseiten100 ,102 ,104 ,106 und108 in dem adressierbaren gemeinsam verwendeten Speicherplatz20 dargestellt. Jede Datei98 weist einen Datei-Inoden oder Deskriptor110 auf, der verschiedene Dateiattribute112 enthält. Der Datei-Deskriptor110 enthält eine Adresse, die auf einen Datenstrom-Deskriptor114 verweist, und der Datenstrom selbst weist eine oder mehrere Adressen116 ,118 ,120 ,122 und124 auf, die auf bestimmte Seiten in dem identifizierbaren gemeinsam verwendeten Speicherplatz20 verweisen. Bei der offenbarten Ausführungsform ist eine Seite die atomare Einheit in dem adressierbaren gemeinsam verwendeten Speicherplatz20 , und sie enthält bis zu 4 Kilobytes an Daten. Selbst wenn die ganzen 4 Kilobytes nicht erforderlich sind, wird eine ganze Seite verwendet. Dies ist durch die Seite108 dargestellt, die nur etwa 2 Kilobytes an Daten enthält. Die von dem Dateisystem60 verwendeten Dateien werden nachstehend in näheren Einzelheiten unter der Überschrift "Dateien" beschrieben. - DATEISATZ
- Die Dateisätze sind die grundlegende Einheit für das Dateisystem
60 . Jeder Dateisatz ist mit einem Namen identifiziert, der bis zu 255 Zeichen aufweist. Das Dateisystem60 exportiert einen Satz von Operationen auf der Dateisatzebene, die es einem Administrator ermöglichen, die Dateisätze durch Aktionen des folgenden Typs zu verwalten. - Dateisatz-Erzeugung
- Diese Operation erzeugt einen neuen Dateisatz. Der Dateisatz wird zunächst mit einer Datei, dem leeren Wurzelverzeichnis, erzeugt. Ein Standard-Dateisatz wird bei der Initialisierung des adressierbaren gemeinsam verwendeten Speicherplatzes
20 automatisch erzeugt. - Dateisatz-Löschung
- Diese Operation löscht einen Dateisatz. Alle Dateien in dem Dateisatz werden entfernt, und der gesamte gemeinsam verwendete Speicherplatz, der den Dateien in dem Dateisatz zugeordnet ist, wird verworfen, und der zugrundeliegende physikalische Speicher wird für ein neues Speichern befreit. Das Dateisystem
60 ermöglicht nur das Löschen eines Dateisatzes, bis es keine offenen Handles für den Dateidatenstrom in dem Dateisatz gibt. Um einen Dateisatz für das Löschen bereit zu machen, muß der Dateisatz "heruntergefahren" werden, indem er offline geschaltet wird. - Dateisatz-Spezifikation
- Diese Operation spezifiziert einen bestimmten Dateisatz oder alle Dateisätze in dem adressierbaren gemeinsam verwendeten Speicherplatz
20 . - Dateisatz-Steuerung
- Diese Operation führt Steuerroutinen auf der Dateisatz-Ebene in der Art des Festlegens von Dateisatz-Attributen aus.
- Aufbauen der Exportsteuerung
- Verzeichnisse werden an lokale Vorrichtungen gebunden, also unter Verwendung von Parametern "aufgebaut", die in der Windows-NT-Registry oder einem anderen ähnlichen zentralen Speicherbereich für solche Informationen gespeichert sind. Wenn es zum ersten Mal laufen gelassen wird, greift das Datensteuerprogramm auf den zentralen Speicher zu und bestimmt, welche Dateisätze aufgebaut werden sollten. Das Datensteuerprogramm erzeugt ein Dateiobjekt, das jeden von den Einträgen im zentralen Speicher identifizierten Dateisatz darstellt. Bei einigen Ausführungsformen kann eine API bereitgestellt werden, die es ermöglicht, daß das Datensteuerprogramm Dateisätze durch Ausführen geeigneter API-Aufrufe dynamisch aufbaut und abbaut.
- Die Benutzer des Dateisystems
60 sind sich nicht des "logischen Datenträgers" bewußt, sondern betrachten viel mehr jeden Dateisatz als einen Datenträger (oder eine Partition im Sinne eines traditionellen physikalischen Dateisystems). GetVolumeInformation aus Win32 wird verwendet, um Informationen über den Dateisatz zu erhalten (genauer gesagt über die logische Vorrichtung, mit der der Dateisatz verbunden ist). Weil alle Dateisätze den gleichen Pool des Speichers im adressierbaren gemeinsam verwendeten Speicherplatz20 gemeinsam verwenden, ist die dem Benutzer für jeden Dateisatz zurückgegebene Gesamtdatenträgergröße die aktuelle zusammengenommene Speicherkapazität in dem adressierbaren gemeinsam verwendeten Speicherplatz20 . Das gleiche Verfahren wird für die Informationen zum gesamten freien Platz verwendet, und der Gesamtwert des adressierbaren gemeinsam verwendeten Speicherplatzes20 wird für jeden Dateisatz zurückgegeben. - VERZEICHNIS
- Das Durchsuchen von Verzeichniseinträgen ist eine der von Benutzeranwendungen am häufigsten ausgeführten Operationen. Es kann auch die hinsichtlich des Leistungsumfangs am besten sichtbare Operation sein. Folglich wird viel Aufmerksamkeit darauf gerichtet, dafür zu sorgen, daß das Verzeichnis wirksam durchsucht wird, und das Dateisystem von WindowsNT (NTFS) dupliziert ausreichend Datei-Inoden-Informationen in dem Verzeichniseintrag, so daß eine Verzeichnisleseoperation erfüllt werden kann, indem die Verzeichniseinträge durchsucht und gelesen werden, ohne daß dieses verlassen wird, um die Informationen von den Datei-Inoden zu lesen. Das mit diesem Schema verbundene Problem besteht darin, daß die doppelt gespeicherten Datei-Metadaten, wie die Dateizeitmarkierungen und die Dateigröße, häufig schnell aktualisiert werden können, wodurch das Aktualisieren der Metadaten kostspieliger gemacht wird. Dieser Zusatzaufwand wird jedoch in Hinblick auf die Leistungsfähigkeit als akzeptierbar angesehen, die bei Verzeichnisdurchsuchungsoperationen gewonnen wird.
- Das Dateisystem
60 verwendet die gleiche Philosophie des Bereitstellens einer wirksamen Verzeichnisdurchsuchung, indem Datei-Inoden-Informationen in Verzeichniseinträgen dupliziert werden. Jeder Verzeichniseintrag enthält ausreichend Informationen, um die Dateiinformations-Abfrageanforderungen von Win32 zu erfüllen. Der Datei-Inode ist mit den Dateistrom-Deskriptoren auf einer getrennten Seite gespeichert. Der Inode wird über einen Zeiger im Verzeichniseintrag lokalisiert. - Die Verzeichniseinträge des Dateisystems werden in dem Verzeichniseintrags-Datenstrom der Verzeichnisdatei gespeichert. Zum Maximieren der Platzausnutzung wird jeder Verzeichniseintrag dem ersten verfügbaren freien Platz auf einer Seite zugeordnet, der den gesamten Eintrag aufnehmen kann. Die Länge des Eintrags hängt von der Länge des primären Namens der Datei ab. Die folgenden Informationen sind Teil des Verzeichniseintrags: die Erzeugungszeit, die Änderungszeit, die letzte Schreibzeit, die letzte Zugriffszeit, Zeiger auf den Strom-Deskriptor, der Zeiger auf den Stammverzeichnis-Inoden, MS-DOS-Dateiattribute, der MS-DOS-Dateiname (8.3-Namenskonvention). Für durchschnittliche Dateinamenslängen enthält eine Seite bis zu etwa 30 Einträge. Alle Dateiinformationen in dem Verzeichniseintrag sind, mit Ausnahme des primären Namens der Datei und des MS-DOS-Dateinamens, auch in dem Datei-Inoden enthalten. Die primären Dateinamen und zugeordnete kurze Namen sind nur in den Verzeichniseinträgen gespeichert. Hierdurch wird die Größe des Inodens feststehend gemacht.
- Wenn eine Dateiinformation modifiziert wird (mit Ausnahme von Dateinamen), wird der Inode in Zusammenhang mit dem Aktualisierungsvorgang aktualisiert und enthält daher stets die aktuellsten Informationen. Die zugeordnete Verzeichniseintragsänderung wird locker geräumt, um die Kosten einer Doppelaktualisierung zu verringern. Dies bedeutet, daß die Inoden-Aktualisierungen entweder geräumt werden oder wiederherstellbar sind, jedoch nicht die entsprechenden Verzeichniseintragsaktualisierungen. Falls der Verzeichniseintrag die Synchronität mit dem Inoden verliert (wenn die Inoden-Änderung erfolgreich geräumt wird, jedoch nicht die Verzeichnisänderung), wird der Eintrag bei der nächsten Aktualisierung des Inodens aktualisiert. Um die Synchronisation von Verzeichnisaktualisierungen zu erleichtern, können die Verzeichniseinträge (Inoden) nicht mehrere Seiten umfassen.
3 zeigt die Organisation von Verzeichniseinträgen und zugeordneten Inoden. - DATEIEN
- Eine Datei des Dateisystems
60 weist Datenströme und die Dateisystem-Metadaten zum Beschreiben der Datei auf. Dateien werden in dem Dateisystem60 durch als Inoden bezeichnete Objekte beschrieben. Der Inode ist eine Datenstruktur, die Datei-Metadaten speichert. Er repräsentiert die Datei in dem Dateisystem60 . - Ein Datenstrom ist ein logisch zusammenhängender Bytestrom. Er kann aus den von Anwendungen gespeicherten Daten oder den von dem Dateisystem
60 gespeicherten internen Informationen bestehen. Die Datenströme werden auf Seiten abgebildet, die zum Speichern von dem adressierbaren gemeinsam verwendeten Speicherplatz20 zugeordnet werden. Das Dateisystem60 segmentiert einen Datenstrom in eine Folge von 4-Kilobyte-Segmenten, wobei jedes Segment einer Seite entspricht. Das Dateisystem60 enthält zwei Größeninformationsteile je Datenstrom, nämlich die Anzahl von Bytes im Datenstrom und die Zuordnungsgröße in Seitenanzahlen. Der Bytestrom zum Segmentieren bzw. seitenweisen Anordnen von Abbildungsinformationen ist Teil der Datei-Metadaten und wird in einer als Datenstrom-Deskriptor bezeichneten Struktur gespeichert. Siehe4 . - Benutzeranforderungen von Daten werden in bezug auf den Bytebereich und die Position des Anfangsbytes, gemessen durch seinen Versatz gegenüber dem Anfang des Datenstroms, der Byteposition null, spezifiziert. Das Dateisystem
60 bildet den Versatz in die Seite, die das Anfangsbyte enthält, und den Versatz innerhalb der Seite vom Anfang der Seite an ab. - Jede Datei des Dateisystems
60 weist wenigstens zwei Datenströme auf, nämlich den Standard-Datenstrom und den Zugriffssteuerlisten-Strom (Access Control List Stream – ACL Stream). Jede Datei kann wahlweise auch andere Datenströme aufweisen. Der ACL-Strom wird verwendet, um den Sicherheits-Zugriffssteuerlisten-Satz zu der Datei zu speichern. Jeder Datenstrom wird einzeln bezeichnet, so daß der Benutzer einen spezifischen Datenstrom erzeugen oder den Zugriff auf diesen öffnen kann. Es wird angenommen, daß der Name des Standard-Datenstroms der primäre Name der Datei ist. Zum Zugreifen auf einen Datenstrom muß der Benutzer des Dateisystems60 zuerst eine Datei-Handle auf den gewünschten Datenstrom dem Namen nach öffnen. Falls der Dateiname verwendet wird, wird die Handle für den Standard-Datenstrom geöffnet. Diese Dateiöffnungs-Handle stellt den Datenstrom in allen Diensten des Dateisystems dar, welche auf den Datenstrom einwirkt. - Das Dateisystem
60 exportiert einen Satz von Diensten, um auf dem Dateiniveau zu arbeiten. Die Eingabe in die Dienste sind die Dateiobjekt-Handle (Inode) oder die Datenstrom-Objekt-Handle und die Operations-spezifischen Parameter, einschließlich der gewünschten Abschnitte des Datenstroms in Bytepositionen. - Offene Dateien werden durch Datenstromobjekte (oder einfach Dateiobjekte) dargestellt. Benutzer greifen auf Dateien unter Verwendung dieser Dateiobjekte zu, die von den Benutzern durch Datei-Handles identifiziert werden. Eine Datei-Handle ist eine 32-Bit-Einheit, die eine Ausprägung eines offenen Dateistroms darstellt. Beispielsweise erzeugt Windows NT das Dateiobjekt und gibt ansprechend auf die Benutzeranforderung einer Dateierzeugung oder einer Dateiöffnung eine Datei-Handle an die Benutzer zurück. Das Dateisystem
60 initialisiert einen Zeiger auf einen Dateisteuerblock. Mehrere Dateiobjekte zeigen auf denselben Dateisteuerblock, und jeder Dateisteuerblock enthält getrennte Stromobjekte für jeden Öffnungskontext. Extern ist die Datei-Handle für die Benutzer undurchsichtig. Mehrere Öffnungsanweisungen können an dieselbe Datei ausgegeben werden. Wenn der Benutzer eine Datei schließt, werden das Dateiobjekt und die zugeordnete Datei-Handle entfernt. - Das Dateisystem
60 bildet Dateiströme in Segmentfolgen ab, die zunehmend größer werden, wobei jedes Segment einer oder mehreren Seiten entspricht. Das Dateisystem60 versucht, aufeinanderfolgende Seiten für Datenströme zu reservieren, es weist realen Externspeicher jedoch nur dann zu, wenn dies notwendig ist, gewöhnlich als Ergebnis einer Dateierweiterung, die erforderlich ist, wenn über die Zuordnungsgröße des Datenstroms hinaus geschrieben wird. Wenn eine Dateierweiterungsanforderung empfangen wird, rundet das Dateisystem60 die Erweiterungsgröße in der Anzahl der Bytes auf ein Vielfaches von 4 Kilobytes auf, um sie zu einer ganzen Seitenzahl zu machen, und fordert Seiten zur tatsächlichen Zuordnung an. Die Anzahl der vom Dateisystem zugeordneten 4-Kilobyte-Seiten hängt von der Anzahl der vorgenommenen Dateierweiterungsanforderungen ab. Das Dateisystem60 ordnet eine 4-Kilobyte-Seite für die erste Erweiterungsanforderung, zwei 4-Kilobyte-Seiten für die zweite Anforderung, vier 4-Kilobyte-Seiten für die dritte Erweiterungsanforderung usw. zu. Die neu zugeordneten Seiten werden mit Nullen aufgefüllt. Durch Reservieren aufeinanderfolgender Seiten kann das Dateisystem60 den Umfang der Buchhaltungsinformationen auf den Byte-Versatz für die Seitenabbildung reduzieren. Das Dateisystem60 reserviert mehr als den erforderlichen Speicherplatz für eine Datei (manchmal viel mehr) und substanziiert den Speicher durch Seite für Seite erfolgendes Zuordnen von Externspeicher. - Es werden Vier-Kilobyte-Zuordnungssegmente gewählt, um den nicht verwendeten Speicherplatz zu verringern und dennoch eine vernünftige Zuordnungsgröße für gewöhnliche Dateierweiterungen bereitzustellen. Weil eine Zuordnung eine kostspielige Operation ist (die sehr wahrscheinlich verteilte Operationen beinhaltet), ist eine kleinere Zuordnungsgröße nicht wirksam. Eine höhere Zuordnungsgröße würde zu einer unwirksamen Platzausnutzung oder zu einer zusätzlichen Komplexität beim Verwalten ungenutzten Platzes führen. Ein 4-Kilobyte-Segment wird auch natürlich auf eine Seite abgebildet, wodurch das Datenstromsegment für die Seitenabbildung vereinfacht wird. Wenngleich eine Analogie mit der Zuordnungspolitik von 4-Kilobyte-Clustergrößen (Segmentgrößen) von NTFS für große Platten zum Beschleunigen des Zuordnens und zum Verringern der Fragmentierung gebildet werden könnte, ist eine solche Analogie nicht vollständig gültig, weil die tatsächliche Zuordnungssegmentgröße auf der Platte in hohem Maße von der lokalen Plattengröße und den physikalischen Dateisystemen abhängt.
- Ähnlich dem NTFS, das die Zuordnung jeder Plattenpartition steuert und daher schnell den für die Zuordnung verfügbaren freien Platz auf dem Datenträger bestimmen kann, fordert das Dateisystem
60 Informationen zu dem gesamten verfügbaren Platz an und verwendet diese Informationen zum schnellen Bestimmen, ob die Zuordnungsverarbeitung fortgesetzt werden soll. Falls der verfügbare Gesamtplatz kleiner ist als die erforderliche Zuordnungsgröße, wird die Anforderung sofort abgelehnt. Andernfalls geht das Dateisystem60 dazu über, die Seiten zuzuordnen, um die Anforderung zu erfüllen. Die Tatsache, daß das Dateisystem60 mit der Zuordnung fortfahren kann, garantiert nicht, daß die Zuordnung gelingt, weil sich der tatsächlich insgesamt verfügbare Platz ständig ändern kann. - Das Dateisystem
60 nutzt die Seitenebenen-Replikationsfähigkeit des zugrundeliegenden verteilt adressierbaren gemeinsam verwendeten Speichersystems20 aus, die in der US-Patentanmeldung offenbart ist, auf die vorstehend verwiesen wurde. Die Replikation auf der Seitenebene ermöglicht, daß das System eine Dateireplikation bereitstellt. Die Datenströme einer replizierten Datei werden durch Seiten unterstützt, die selbst repliziert werden. Auf diese Weise werden Datenströme ohne Eingriff des Dateisystems60 automatisch repliziert. Der zusätzliche Platz, der von den mehreren Replika verbraucht wird, spiegelt sich in den Dateigrößen (Datenstromgrößen) nicht wieder. Die Stromzuordnungsgröße teilt weiterhin die gesamte Zuordnungsgröße in Seiten mit, die für eine Replik erforderlich ist. Die temporäre Dateien unterstützenden Seiten werden jedoch nicht repliziert. - DATEIZUGRIFF UND BETRIEBSMITTEL-GEMEINSAMVERWENDUNG – SPERRE
- Der gemeinsam verwendete Speicher bildet den Verteilungsmechanismus zur Betriebsmittel-Gemeinsamverwendung zwischen Peer-Knoten, auf denen die Software des Dateisystems
60 läuft. Jede Ausprägung des Dateisystems60 auf jedem Netzwerkknoten betrachtet die gemeinsam verwendeten Speicherbetriebsmittel (also Seiten) als mit anderen lokalen oder fernen Teilprozessen gemeinsam verwendet. Das Dateisystem60 braucht einen Weg zum Implementieren von Dateisystem-Sperren hoher Ebene, um eine konsistente Betriebsmittel-Gemeinsamverwendung bereitzustellen. Jede beliebige Zeitgleichszugriffs-Steuerstruktur kann verwendet werden, um Sperren, wie Sperrobjekte oder Semaphoren, zu implementieren. Bei Datenbankanwendungen kann eine Sperre auch durch Implementieren von Zeitgleichszugriffs-Steuerstrukturen erreicht werden, die Datenbankindizes oder – schlüsseln zugeordnet sind. Bei Dateisystemanwendungen kann der Zugriff auf Dateien oder Verzeichnisse gesteuert werden. Ein weiteres Beispiel von Dateisystem-Sperren ist das Bytebereichssperren; das den Benutzern die Möglichkeit gibt, einen gemeinsamen Zugriff auf Dateien zu koordinieren. Eine Bytebereichssperre ist ein Sperrensatz für einen Bytebereich einer Datei. Ein koordinierter gemeinsamer Zugriff auf eine Datei kann erreicht werden, indem die gewünschten Bytebereiche mit Sperren versehen werden. Im allgemeinen funktioniert die Dateisystem-Sperre hoher Ebene in der folgenden Weise: (a) Ein Dateisystem-Betriebsmittel ist von jeder Ausprägung des Dateisystems 60 gemeinsam zu verwenden, und der Zugriff auf das Betriebsmittel wird durch ein Sperrprotokoll unter Verwendung einer Sperrobjekt-Datenstruktur koordiniert, die die Sperre hoher Ebene darstellt, um das gemeinsam verwendete Betriebsmittel zu koordinieren, und der Wert der Datenstruktur stellt den aktuellen Zustand der Sperre dar, (b) zum Zugreifen auf das Betriebsmittel muß die Ausprägung an jedem Knoten in der Lage sein, den Zustand (oder den Wert) der Sperrdatenstruktur zu betrachten, und falls sie "frei" ist, sie modifizieren, so daß sie "belegt" wird, falls sie jedoch "belegt" ist, muß sie warten, bis sie "frei" wird, und es könnten Zwischenzustände zwischen "frei" und "belegt" (also mehr als zwei Sperrzustände) vorhanden sein, in jedem Fall ist bei diesem Bytebereichs-Sperrbeispiel eine Sperre jedoch eine Beschreibung eines bestimmten Bytebereichs, der von irgendeinem Teilprozeß des Dateisystems60 geteilt verwendet bzw. ausschließlich gesperrt wird, und eine einen Konflikt erzeugende neue Bytebereichs-Sperranforderung, die in den bereits gesperrten Bytebereich fällt oder diesen überlagert, wird abgelehnt, oder der Requester kann blockieren (abhängig davon, wer die Anforderung gemacht hat), und (c) der Zugriff auf die Sperrdatenstruktur oder eine Modifikation davon durch die Ausprägung jedes Knotens muß seriell angeordnet werden, so daß er dann wiederum verwendet werden kann, um die Betriebsmittel-Gemeinsamverwendung hoher Ebene zu koordinieren. - Die Sperrmerkmale und -fähigkeiten der in der US-Patentanmeldung mit der laufenden Nummer 08/754 481 beschriebenen gemeinsam verwendeten Speichermaschine ermöglichen es dem Dateisystem
60 , den Zugriff auf Seiten zu koordinieren. Die Maschine kann auch verwendet werden, um den Zugriff auf Betriebsmittel zu koordinieren, im Fall einer komplexen Betriebsmittelsperre hoher Ebene in der Art einer Bytebereichssperre kann die direkte Verwendung der Sperrmerkmale und -fähigkeiten zum Bereitstellen von Sperren jedoch aus den folgenden Gründen zu kostspielig sein: (a) jede Bytebereichssperre würde eine Seite benötigen, die die Sperre darstellt, und weil die Anzahl der Bytebereichssperren groß sein kann, können die Kosten in Hinblick auf den Seitenverbrauch zu hoch sein, und (b) die Maschinensperren bieten nur zwei Sperrzustände (nämlich gemeinsam verwendet und exklusiv), und Dateisystem-Sperren hoher Ebene können mehr Sperrzustände benötigen. - Das Dateisystem
60 der Erfindung implementiert die Dateisystem-Sperre unter Verwendung der Maschinensperre als ein Grundelement bzw. ein primitives Element zum Bereitstellen einer Serialisierung zum Zugreifen auf die Sperrdatenstrukturen und zum Aktualisieren von diesen. Zum Lesen einer Sperrstruktur nimmt das Dateisystem60 eine gemeinsame Sperre auf der Seite der Datenstruktur unter Verwendung der Merkmale und Fähigkeiten der Maschinensperre, bevor es die Seite liest, um zu verhindern, daß die Datenstruktur modifiziert wird. Zum Modifizieren der Sperrstruktur setzt es eine exklusive Sperre auf die Seite. Die Seitensperre wird fortgenommen und gelöst, sobald der Sperrstrukturwert gelesen oder modifiziert wird. - Mit der von der Seitensperr- und Seitenungültigkeitsmachungs-Benachrichtigung bereitgestellten Serialisierung implementiert das Dateisystem
60 die Sperren hoher Ebene in der folgenden Weise: (a) Zum Nehmen einer Dateisystem-Sperre (FS-Sperre) setzt das Dateisystem60 eine geteilte Sperre auf die FS-Sperrseite und liest die Seite und untersucht dann die Sperrstruktur, (b) falls die Sperrstruktur angibt, daß das Betriebsmittel entsperrt ist oder in einem kompatiblen Sperrmodus gesperrt ist, fordert das Dateisystem60 das exklusive Sperren der Seite an, wodurch garantiert wird, daß nur eine Knotenausprägung des Dateisystems60 die Sperrdatenstruktur modifizieren kann, und falls die Anforderung Erfolg hat, führt das Dateisystem60 eine Schreibabbildung der Sperrseite aus und ändert dann die Sperrstruktur, um die Sperre zu setzen und entsperrt die Seite und setzt den Seitenzugriff auf nicht vorhanden, und (c) falls das Betriebsmittel in einem inkompatiblen Sperrmodus gesperrt wird, entsperrt das Dateisystem60 die Seite, hält die gelesene Seite jedoch im abgebildeten Zustand und gibt sich (den aktuellen Teilprozeß) dann in eine Warteschleife und wartet auf ein Systemereignis, das mitteilt, daß sich der Sperrwert geändert hat, und wenn sich der Sperrwert tatsächlich ändert, wird der Teilprozeß des Dateisystems60 benachrichtigt und wiederholt den vorstehenden Schritt (a). Das Dateisystem60 implementiert die Mitteilung unter Verwendung eines primitiven Signalelements. Die auf eine Sperre wartenden Teilprozesse des Dateisystems60 werden bei einem Systemereignis blockiert. - Wenn sich die Seite, die die Sperre enthält, ändert, wird ein Signal zu jedem blockierten Teilprozeß des Dateisystems
60 gesendet. Alle blockierten Teilprozesse des Dateisystems60 wachen dann auf und wiederholen Schritt (a). Dateisystem-Sperren werden in flüchtigen Seiten gespeichert. - DATEIZUGRIFF UND BETRIEBSMITTEL-GEMEINSAMVERWENDUNG – BYTEBEREICHS-SPERRE
- Eine Bytebereichs-Sperre ist ein Dateisystem-Sperrdienst, der über die LockFile()- und die LockFileEx()-API von Win32 zu den Benutzern exportiert wird. Sie ermöglicht einen gleichzeitigen Zugriff auf verschiedene nicht überlappende Bereiche eines Dateidatenstroms durch mehrere Benutzer. Zum Zugreifen auf den Datenstrom sperrt der Benutzer den Bereich (Bytebereich) der Datei, um einen exklusiven oder gemeinsamen Lesezugriff auf den Bereich zu erhalten.
- Das Dateisystem
60 unterstützt Bytebereichs-Sperren für jeden einzelnen Datenstrom der Datei. Das folgende Bytebereichs-Sperrverhalten nach Art von Win32 wird unterstützt: (a) Das Sperren eines Bereichs einer Datei wird verwendet, um einen gemeinsamen oder exklusiven Zugriff auf den spezifizierten Bereich der Datei zu erhalten, und das Dateisystem60 verfolgt Bytebereichssperren durch die Datei-Handle, weshalb Datei-Handles eine Möglichkeit bereitstellen, den Eigentümer der Sperre eindeutig zu identifizieren, (b) das Sperren eines Bereichs, der über die aktuelle Dateiendeposition hinausgeht, ist kein Fehler, (c) das Sperren eines Teils einer Datei für einen exklusiven Zugriff verweigert allen anderen Prozessen sowohl einen Lese- als auch einen Schreibzugriff auf den spezifizierten Bereich der Datei, und das Sperren eines Teils einer Datei für einen gemeinsamen Zugriff verweigert allen anderen Prozessen den Schreibzugriff auf den spezifizierten Bereich der Datei, ermöglicht es jedoch anderen Prozessen, den gesperrten Bereich zu lesen, was bedeutet, daß das Dateisystem60 Bytebereichssperren, die für den Datenstrom festgelegt sind, nicht nur auf Sperranforderungen, sondern auf jeden Lese- oder Schreibzugriff prüfen muß, (d) falls eine exklusive Sperre für einen Bereich gefordert wird, der bereits entweder gemeinsam oder exklusiv von anderen Teilprozessen gesperrt ist, blockiert die Anforderung sofort oder schlägt sofort fehl, wobei dies von der spezifizierten Rufoption abhängt, und (e) Sperren dürfen einen existierenden gesperrten Bereich der Datei nicht überlappen. - Für jede Bytebereichssperre erzeugt das Dateisystem
60 einen Bytebereichs-Sperrdatensatz zum Darstellen der Sperre. Der Datensatz enthält die folgenden Informationen (a) einen Bytebereich, (b) einen Sperrmodus (gemeinsam verwendet oder exklusiv), (c) eine Prozeßidentifikation und (d) einen Win32-Sperrschlüsselwert. - Das Dateisystem
60 sieht die Datei-Bytebereiche als Betriebsmittel mit einem gesteuerten Zugriff an. Für jeden Bytebereichs-Sperrdatensatz erzeugt das Dateisystem60 eine Dateisystem-Sperre (wie vorstehend erörtert wurde), um den Zugriff auf das Bytebereichs-"Betriebsmittel" zu koordinieren. Eine kompatible Bytebereichs-Sperranforderung (gemeinsame Sperre) führt dazu, daß Lesesperren von der Dateisystem-Sperre genommen werden, die dem Bytebereichs-Datensatz zugeordnet ist. Eine exklusive Bytebereichs-Sperranforderung wird abgebildet, um eine Schreibsperre von der Dateisystem-Sperre zu nehmen. - Unter Verwendung des vorstehend erörterten Dateisystem-Sperrmechanismus werden Sperranforderungen mitgeteilt, die auf der Seite warten, die den gewünschten Bytebereich enthält, wenn sich der Seiteninhalt ändert.
- Adressierbarer gemeinsam verwendeter Speicherplatz
- Nachdem die Erfindung und verschiedene Ausführungsformen davon in einigen Einzelheiten beschrieben wurden, wird nun eine detailliertere Beschreibung des adressierbaren gemeinsam verwendeten Speicherplatzes gegeben, der in der am 22. November 1996 eingereichten anliegenden US-Patentanmeldung mit der laufenden Nummer 08/754 481 beschrieben ist. Alle nachstehend bereitgestellten Informationen sind in dieser Patentanmeldung enthalten.
- Das in der US-Patentanmeldung, auf die hiermit verwiesen sei, beschriebene adressierbare gemeinsam verwendete Speichersystem ist eine "Maschine", die einen virtuellen Speicherplatz erzeugen und verwalten kann, der von allen Computern auf einem Netzwerk gemeinsam verwendet werden kann und den Speicherplatz aller mit dem Netzwerk verbundener Speichervorrichtungen umfassen kann. Demgemäß können alle auf dem Netzwerk gespeicherten Daten innerhalb des virtuellen Speicherplatzes gespeichert werden, und der tatsächliche physikalische Ort der Daten kann in beliebigen der mit dem Netzwerk verbundenen Speichervorrichtungen liegen.
- Insbesondere kann die Maschine oder das System ein globales Adressensignal, das einen beispielsweise 4 Kilobytes umfassenden Teil des virtuellen Speicherplatzes darstellt, erzeugen oder empfangen. Das globale Adressensignal kann von den physikalischen Plätzen und Bezeichnerplätzen der zugrundeliegenden Computerhardware entkoppelt sein, also nicht in Beziehung dazu stehen, um einen Speicherplatz zu unterstützen, der groß genug ist, um jede flüchtige und permanente Speichervorrichtung, die mit dem System verbunden ist, einzuschließen. Beispielsweise können Systeme der Erfindung auf 32-Bit-Computern arbeiten, sie können jedoch auch globale Adressensignale verwenden, die 128 Bytes breit sind. Demgemäß umspannt der virtuelle Speicherplatz 2128 Bytes, was viel größer ist als der 232 Bytes umfassende Adressenplatz, der von der zugrundeliegenden Computerhardware unterstützt wird. Ein solcher Adressenplatz kann groß genug sein, um eine getrennte Adresse für jedes Byte an Datenspeicher auf dem Netzwerk, einschließlich aller RAM-, Platten- und Bandspeicher, bereitzustellen.
- Für einen solchen großen virtuellen Speicherplatz speichert zu jeder Zeit typischerweise nur ein kleiner Teil Daten. Dementsprechend weist das System eine Verzeichnisverwaltungseinheit auf, die jene Abschnitte des virtuellen Speicherplatzes verfolgt, die verwendet werden. Das System stellt für jeden Abschnitt des verwendeten virtuellen Speicherplatzes physikalischen Speicher bereit, indem es alle diese Abschnitte auf eine physikalische Speichervorrichtung in der Art eines RAM-Speichers oder einer Festplatte abbildet. Wahlweise weist die Abbildung eine Indirektheitsebene auf, wodurch eine Datenmigration, ein fehlertoleranter Betrieb und ein Lastausgleich ermöglicht werden.
- Indem ermöglicht wird, daß jeder Computer überwacht und verfolgt, welche Abschnitte des virtuellen Speicherplatzes verwendet werden, kann jeder Computer den Speicherplatz geteilt verwenden. Dies ermöglicht es, daß es so aussieht, daß vernetzte Computer einen einzigen Speicher aufweisen, und es kann daher dadurch ermöglicht werden, daß Anwendungsprogramme, die auf verschiedenen Computern laufen, unter Verwendung von Techniken kommunizieren, die gegenwärtig zum Kommunizieren zwischen auf derselben Maschine laufenden Anwendungen verwendet werden.
- Gemäß einem Aspekt kann verstanden werden, daß die Erfindung aus der vorstehend identifizierten US-Patentanmeldung, auf die verwiesen wurde, Computersysteme einschließt, die einen adressierbaren gemeinsam verwendeten Speicherplatz aufweisen. Die Systeme können ein Datennetzwerk, das computerlesbare Informationen darstellende Datensignale überträgt, eine permanente Speichervorrichtung, die mit dem Datennetzwerk gekoppelt ist und die einen permanenten Datenspeicher bereitstellt und mehrere Computer, die jeweils eine Schnittstelle aufweisen, die mit dem Datennetzwerk gekoppelt ist, um auf das Datennetzwerk zuzugreifen und damit Datensignale auszutauschen, aufweisen. Weiterhin kann jeder der Computer ein gemeinsam verwendetes Speicheruntersystem zum Abbilden eines Abschnitts des adressierbaren Speicherplatzes auf einen Abschnitt des permanenten Speichers aufweisen, um eine adressierbare permanente Speicherung von Datensignalen bereitzustellen.
- Es wird verständlich sein, daß bei einem System, das den Speicher über die Speichervorrichtungen des Netzwerks verteilt, die permanente Speichervorrichtung eine Mehrzahl an lokalen permanenten Speichervorrichtungen aufweist, die jeweils mit einem jeweiligen der mehreren Computer gekoppelt sind. Hierzu kann das System auch einen Verteiler zum Abbilden von Abschnitten des adressierbaren Speicherplatzes über die Mehrzahl lokaler permanenter Speichervorrichtungen und eine Plattenverzeichnis-Verwaltungseinheit zum Verfolgen der abgebildeten Abschnitte des adressierbaren Speicherplatzes aufweisen, um Informationen bereitzustellen, die die lokale permanente Speichervorrichtung repräsentieren, in der dieser Abschnitt des darauf abgebildeten adressierbaren Speicherplatzes gespeichert wird.
- Das System kann auch ein Cache-System aufweisen, um eine der lokalen permanenten Speichervorrichtungen als einen Cache-Speicher zu betreiben. der dazu dient, eine Cache-Speicherung von Datensignalen vorzunehmen, die Abschnitten des adressierbaren Speicherplatzes zugeordnet sind, auf die vor kurzem zugegriffen wurde. Weiterhin kann das System eine Migrationssteuereinrichtung zum selektiven Bewegen von Abschnitten des adressierbaren Speicherplatzes zwischen den lokalen permanenten Speichervorrichtungen der mehreren Computer aufweisen. Die Migrationssteuereinrichtung kann Datenzugriffsmuster, Betriebsmittelanforderungen oder andere Kriterien oder Heuristiken zur Verwirklichung mit der Erfindung bestimmen und auf diese reagieren. Demgemäß kann die Migrationssteuereinrichtung die Lasten auf dem Netzwerk ausgleichen und Daten zu Knoten bewegen, an denen gemeinsam auf sie zugegriffen wird. Die Cache-Steuereinrichtung kann ein Softwareprogramm sein, das auf einem Hostcomputer läuft, um einen durch Software verwalteten RAM und einen Platten-Cache bereitzustellen. Der RAM kann ein beliebiger flüchtiger Speicher unter Einschluß von SRAM, DRAM oder eines anderen flüchtigen Speichers sein. Die Platte kann ein beliebiger permanenter Speicher unter Einschluß einer beliebigen Platten-, RAID-, Band- oder anderen Vorrichtung sein, der einen permanenten Datenspeicher bereitstellt.
- Das System kann auch eine kohärente Replikationssteuereinrichtung zum Erzeugen einer Kopie oder einer ausgewählten Anzahl von Kopien eines Abschnitts des in der lokalen permanenten Speichervorrichtung eines ersten Computers enthaltenen adressierbaren Speicherplatzes und zum Speichern der Kopie in der lokalen permanenten Speichervorrichtung eines zweiten Computers aufweisen. Die kohärente Replikationssteuereinrichtung kann die Kohärenz der Kopien erhalten, um eine kohärente Datenreplikation bereitzustellen.
- Es wird auch verständlich, daß die Systeme eine integrierte Steuerung in einem flüchtigen Speicher und in einem permanenten Speicher gespeicherter Daten bereitstellen. Bei solchen Systemen weist eine flüchtige Speichervorrichtung einen flüchtigen Speicher für Datensignale auf, und das gemeinsam verwendete Speicheruntersystem weist ein Element, typischerweise ein Softwaremodul, zum Abbilden eines Abschnitts des adressierbaren Speicherplatzes auf einen Abschnitt des flüchtigen Speichers auf. Bei diesen Systemen kann die flüchtige Speichervorrichtung aus mehreren lokalen flüchtigen Speichervorrichtungen bestehen, die jeweils mit einem jeweiligen der mehreren Computer gekoppelt sind, und die permanente Speichervorrichtung kann aus mehreren lokalen permanenten Speichervorrichtungen bestehen, die jeweils mit einem jeweiligen der mehreren Computer gekoppelt sind.
- Bei diesen Systemen kann eine Verzeichnisverwaltungseinheit die abgebildeten Abschnitte des adressierbaren Speicherplatzes verfolgen und zwei Unterkomponenten, nämlich eine Plattenverzeichnis-Verwaltungseinheit zum Verfolgen von Abschnitten des adressierbaren Speicherplatzes, die auf die lokalen permanenten Speichervorrichtungen abgebildet sind, und eine RAM-Verzeichnisverwaltungseinheit zum Verfolgen von Abschnitten des adressierbaren Speicherplatzes, die auf die lokalen flüchtigen Speichervorrichtungen abgebildet sind, aufweisen. Wahlweise kann ein RAM-Cache-System eine der lokalen flüchtigen Speichervorrichtungen als einen Cache-Speicher zum Cache-Speichern von Datensignalen, die Abschnitten des adressierbaren Speicherplatzes zugeordnet sind, auf die vor kurzem zugegriffen wurde, betreiben.
- Die Systeme können zusätzliche Elemente einschließlich eines Seitenwechselelements zum erneuten Abbilden eines Abschnitts des adressierbaren Speicherplatzes zwischen einer der lokalen flüchtigen Speichervorrichtungen und einer der lokalen permanenten Speichervorrichtungen, einer Verfahrenssteuereinrichtung zum Bestimmen eines Betriebsmittel-Verfügbarkeitssignals, das auf jedem der mehreren Computer verfügbaren Speicher darstellt, eines Seitenwechselelements, das den Abschnitt des adressierbaren Speicherplatzes von einer Speichervorrichtung eines ersten Computers ansprechend auf das Betriebsmittel-Verfügbarkeitssignal auf eine Speichervorrichtung eines zweiten Computers erneut abbildet, und einer Migrationssteuereinrichtung zum Bewegen von Abschnitten des adressierbaren Speicherplatzes zwischen den lokalen flüchtigen Speichervorrichtungen der mehreren Computer aufweisen.
- Wahlweise können die Systeme eine Hierarchieverwaltungseinrichtung zum Organisieren der mehreren Computer zu einem Satz hierarchischer Gruppen aufweisen, wobei jede Gruppe wenigstens einen der mehreren Computer aufweist. Jede der Gruppen kann eine Gruppen-Speicherverwaltungseinrichtung aufweisen, um Abschnitte des adressierbaren Speicherplatzes als Funktion der hierarchischen Gruppen zu migrieren.
- Das System kann die Kohärenz zwischen kopierten Abschnitten des Speicherplatzes durch Aufnehmen einer kohärenten Replikationssteuereinrichtung zum Erzeugen einer kohärenten Kopie eines Abschnitts des adressierbaren Speicherplatzes aufrechterhalten.
- Das System kann globale Adressensignale erzeugen oder empfangen. Dementsprechend können die Systeme einen Adressengenerator zum Erzeugen eines globalen Adressensignals aufweisen, das einen Abschnitt des adressierbaren Speicherplatzes darstellt. Der Adressengenerator kann eine Überbrückungseinheit aufweisen, um globale Adressensignale als Funktion einer den permanenten Speichervorrichtungen zugeordneten Speicherkapazität zu erzeugen, um globale Adressensignale bereitzustellen, die geeignet sind, die Speicherkapazität der permanenten Speichervorrichtungen logisch zu adressieren.
- Bei verteilten Systemen kann die Verzeichnisverwaltungseinheit eine verteilte Verzeichnisverwaltungseinheit zum Speichern eines eine Speicherstelle eines Abschnitts des adressierbaren Speicherplatzes darstellenden Verzeichnissignals innerhalb des verteilten Speicherplatzes sein. Die verteilte Verzeichnisverwaltungseinheit kann einen Verzeichnisseitengenerator zum Zuordnen eines Abschnitts des adressierbaren Speicherplatzes und zum Speichern eines Eintragssignals, das einen Abschnitt des Verzeichnissignals darstellt, aufweisen. Der Verzeichnisseitengenerator weist wahlweise einen Bereichsgenerator zum Erzeugen eines einen Abschnitt des adressierbaren Speicherplatzes darstellenden Bereichssignals und zum Erzeugen des auf das Bereichssignal ansprechenden Eintragssignals auf, um ein Eintragssignal bereitzustellen, das einen Abschnitt des Verzeichnissignals darstellt, der dem Abschnitt des adressierbaren Speicherplatzes entspricht. Weiterhin kann die verteilte Verzeichnisverwaltungseinheit ein Verknüpfungssystem zum Verknüpfen der Verzeichnisseiten, um eine hierarchische Datenstruktur der verknüpften Verzeichnisseiten zu bilden, sowie ein Bereichsverknüpfungssystem zum Verknüpfen der Verzeichnisseiten als Funktion des Bereichssignals, um eine hierarchische Datenstruktur der verknüpften Verzeichnisseiten zu bilden, aufweisen.
- Weil die von dem System gespeicherten Daten in der Hinsicht heimatlos sein können, daß die Daten keine feste physikalische Heimat haben, sondern je nach dem, wie es die Betriebsmittel und andere Faktoren vorschreiben, zwischen den Speichervorrichtungen des Netzwerks migrieren können, kann ein Computersystem gemäß der Erfindung einen Verzeichnisseitengenerator einschließen, der einen Knotenwähler aufweist, um ein verantwortliches Knotensignal zu erzeugen, das einen ausgewählten der mehreren Computer darstellt, die Ortsinformationen für einen Abschnitt des gemeinsam verwendeten Adressenplatzes aufweisen. Hierdurch wird eine Indirektheitsebene bereitgestellt, die das Verzeichnis von dem physikalischen Speicherplatz der Daten entkoppelt. Dementsprechend braucht das Verzeichnis nur den Knoten oder eine andere Vorrichtung zu identifizieren, die den physikalischen Ort der Daten verfolgt. Auf diese Weise braucht das Verzeichnis nicht jedesmal aktualisiert zu werden, wenn Daten zwischen physikalischen Speicherplätzen migrieren, weil der den Ort der Daten verfolgende Knoten nicht gewechselt hat und noch die physikalischen Ortsinformationen bereitstellt.
- Demgemäß kann das System Seitengeneratoren aufweisen, die Verzeichnisseiten erzeugen, die eine Ortsüberwachungseinrichtung darstellende Informationen in der Art eines verantwortlichen Computerknotens, der eine Datenspeicherstelle verfolgt, aufweisen, um eine Verzeichnisstruktur zum Verfolgen heimatloser Daten bereitzustellen. Weiterhin kann das Verzeichnis selbst in Form von Seiten innerhalb des virtuellen Speicherplatzes gespeichert werden. Daher kann die Datenspeicherstelle eine Verzeichnisseite darstellende Informationen speichern, um die Verzeichnisstruktur als Seiten heimatloser Daten zu speichern.
- Gemäß einem weiteren Aspekt kann die Erfindung der vorstehend identifizierten US-Patentanmeldung, auf die hiermit verwiesen sei, als Verfahren zum Versehen eines Computersystems mit einem adressierbaren gemeinsam verwendeten Speicherplatz verstanden werden. Das Verfahren kann die Schritte des Bereitstellens eines Netzwerks zum Übertragen computerlesbare Informationen darstellender Datensignale, des Bereitstellens einer Festplatte, die mit dem Netzwerk gekoppelt ist und einen permanenten Speicher für Datensignale aufweist, des Bereitstellens mehrerer Computer, die jeweils eine mit dem Datennetzwerk gekoppelte Schnittstelle zum Austauschen von Datensignalen zwischen den mehreren Computern aufweisen, und des Zuweisens eines Abschnitts des adressierbaren Speicherplatzes zu einem Abschnitt des permanenten Speichers der Festplatte zum Bereitstellen eines adressierbaren permanenten Speichers für Datensignale aufweisen.
- Mit Bezug auf die Zeichnungsbestandteile, die sich auf das adressierbare gemeinsam verwendete Speichersystem oder die Maschine der vorstehend identifizierten US-Patentanmeldung beziehen, auf die hier verwiesen wird, sei bemerkt, daß
5 ein Computernetzwerk10 darstellt, das einen gemeinsam verwendeten Speicher bereitstellt, der den Speicherplatz von jedem der Knoten des dargestellten Computernetzwerks210 umfaßt. - Insbesondere zeigt
5 ein Computernetzwerk210 , das eine Mehrzahl von Knoten212a –212c umfaßt, die jeweils eine CPU214 , ein Betriebssystem216 , eine optionale private Speichervorrichtung218 und ein gemeinsam verwendetes Speicheruntersystem220 aufweist. Wie weiter in5 dargestellt ist, ist jeder Knoten212a –212c über das gemeinsam verwendete Speicheruntersystem220 mit einem virtuellen gemeinsam verwendeten Speicher222 verbunden. Wie nachstehend in näheren Einzelheiten erklärt wird, ermöglicht das Computernetzwerk210 durch Bereitstellen des gemeinsam verwendeten Speicheruntersystems220 , das den Knoten212a –212c ermöglicht, auf den virtuellen gemeinsam verwendeten Speicher222 zuzugreifen, daß die Netzwerkknoten212a –212c unter Verwendung derselben Techniken, die von Anwendungen verwendet werden, wenn sie zwischen Anwendungen kommunizieren, die auf derselben Maschine laufen, kommunizieren und Funktionalitäten gemeinsam verwenden. Diese Techniken können eine Objektverknüpfung und -einbettung, dynamische Verknüpfungsbibliotheken, eine Klassenregistrierung und andere solche Techniken verwenden. Demgemäß können die Knoten212 den virtuellen gemeinsam verwendeten Speicher222 verwenden, um Daten und Objekte zwischen Anwendungsprogrammen auszutauschen, die auf den verschiedenen Knoten212 des Netzwerks210 laufen. - Bei der in
5 dargestellten Ausführungsform kann jeder Knoten212 ein herkömmliches Computersystem, wie bspw. ein im Handel erhältliches IBM-PC-kompatibles Computersystem, sein. Der Prozessor214 kann eine beliebige Prozessoreinheit sein, die geeignet ist, um die Datenverarbeitung für dieses Computersystem auszuführen. Das Betriebssystem216 kann ein beliebiges im Handel erhältliches oder firmeneigenes Betriebssystem sein, das Funktionen zum Zugreifen auf den lokalen Speicher des Computersystems und Netzwerkfunktionen aufweist oder auf diese zugreifen kann. - Die private Speichervorrichtung
218 kann eine beliebige Computerspeichervorrichtung sein, die dafür geeignet ist, computerlesbare Informationen darstellende Datensignale zu speichern. Der private Speicher versorgt den Knoten mit lokalem Speicher, der für die anderen Knoten auf dem Netzwerk unzugänglich gehalten werden kann. Typischerweise weist die private Speichervorrichtung218 einen RAM oder einen Abschnitt eines RAM-Speichers auf, um Daten und Anwendungsprogramme vorübergehend zu speichern und um dem Prozessor214 mit Speicher zum Ausführen von Programmen zu versorgen. Die private Speichervorrichtung18 kann auch einen permanenten Speicher, typischerweise eine Festplatteneinheit oder einen Abschnitt einer Festplatteneinheit aufweisen, um Daten permanent zu speichern. - Das gemeinsam verwendete Speicheruntersystem
220 , das in5 dargestellt ist, ist eine Ausführungsform der Erfindung, die eine Kopplung zwischen dem Betriebssystem216 und dem virtuellen gemeinsam verwendeten Speicher222 herstellt und eine Schnittstelle zwischen dem Betriebssystem216 und dem virtuellen gemeinsam verwendeten Speicher bildet, um es dem Betriebssystem216 zu ermöglichen, auf den virtuellen gemeinsam verwendeten Speicher222 zuzugreifen. Das dargestellte gemeinsam verwendete Speicheruntersystem220 ist ein Softwaremodul, das als eine alleinstehende, verteilte gemeinsam verwendete Speichermaschine arbeitet. Das dargestellte System dient der Erläuterung, und es können auch andere Systeme gemäß der Erfindung als gemeinsam verwendete Speicheruntersysteme verwirklicht werden, die in ein Anwendungsprogramm eingebettet werden können oder als ein eingebetteter Code einer Hardwarevorrichtung implementiert werden können. Andere solche Anwendungen können verwirklicht werden, ohne von dem Schutzumfang der Erfindung abzuweichen. - Der dargestellte virtuelle gemeinsam verwendete Speicher
222 zeigt einen virtuellen gemeinsam verwendeten Speicher, der von jedem der Knoten212a –212c über das gemeinsam verwendete Speicheruntersystem220 zugänglich ist. Der virtuelle gemeinsam verwendete Speicher222 kann auf Vorrichtungen abbilden, die einen physikalischen Speicher für vom Computer lesbare Daten bereitstellen, die in5 als eine Mehrzahl von Seiten224a –224d dargestellt sind. Bei einer Ausführungsform bilden die Seiten Abschnitte des gemeinsam verwendeten Speicherplatzes, und sie unterteilen den Adressenplatz des gemeinsam verwendeten Speichers in seitenadressierbare Speicherplätze. - Beispielsweise kann der Adressenplatz in 4-Kilobyte-Abschnitte seitenweise abgebildet werden. Bei anderen Ausführungsformen kann eine alternative Granularität verwendet werden, um den gemeinsam verwendeten Speicherplatz zu verwalten. Jeder Knoten
212a –212c des gemeinsam verwendeten Speicheruntersystems220 kann auf jede im virtuellen gemeinsam verwendeten Speicher222 gespeicherte Seite224a –224d zugreifen. Jede Seite224a –224d stellt einen eindeutigen Eintrag innerhalb des virtuellen gemeinsam verwendeten Speichers222 gespeicherter Computerdaten dar. Jede Seite224a –224d ist für jeden der Knoten212a –212c zugänglich, und jeder Knoten kann alternativ zusätzliche Datenseiten innerhalb des virtuellen gemeinsam verwendeten Speichers222 speichern. Jede neu gespeicherte Datenseite kann für jeden der anderen Knoten212a –212c zugänglich sein. Demgemäß liefert der virtuelle gemeinsam verwendete Speicher222 ein System zum Gemeinsamverwenden und Übertragen von Daten zwischen jedem Knoten212 des Computernetzwerks210 . -
6 zeigt in Form eines Funktionsblockdiagramms ein Computernetzwerk230 , das einen verteilten gemeinsam verwendeten Speicher aufweist. Bei dieser Ausführungsform weist jeder Knoten212a –212c ein Speicheruntersystem232 auf, das zwischen dem Betriebssystem216 und den zwei lokalen Speichervorrichtungen, dem RAM234 und der Platte236 verbindet und das weiterhin mit einem Netzwerk238 koppelt, das mit jedem der dargestellten Knoten212a ,212b und212c und einer Netzwerk-Speichervorrichtung226 koppelt. - Insbesondere zeigt
6 ein verteiltes gemeinsam verwendetes Speichernetzwerk30 , das eine Mehrzahl von Knoten212a –212c aufweist, die jeweils eine Verarbeitungseinheit214 , ein Betriebssystem216 , ein Speicheruntersystem232 , einen RAM234 und eine Platte236 aufweisen.6 zeigt weiterhin ein Computernetzwerksystem38 , das zwischen den Knoten212a –212c und der Netzwerk-Speichervorrichtung226 verbindet. Das Netzwerk238 liefert ein Netzwerkkommunikationssystem über diese Elemente. - Die dargestellten Speicheruntersysteme
232a –232c , die zwischen dem Betriebssystem216a –216c , den Speicherelementen234a –234c ,236a –236c und dem Netzwerk238 verbinden, kapseln die lokalen Speicher aller Knoten ein, um eine Abstraktion eines gemeinsam verwendeten virtuellen Speichersystems bereitzustellen, das alle Knoten212a –212c auf dem Netzwerk238 umfaßt. Die Speicheruntersysteme232a –232c können Softwaremodule sein, die als Verteiler wirken, um Abschnitte des adressierbaren Speicherplatzes über die dargestellten Speichervorrichtungen abzubilden. Die Speicheruntersysteme verfolgen weiterhin die im lokalen Speicher jedes Knotens212 gespeicherten Daten und betreiben weiterhin Netzwerkverbindungen mit dem Netzwerk238 , um Daten zwischen den Knoten212a –212c zu übertragen. Auf diese Weise greifen die Speicheruntersysteme232a –232c auf jedes Speicherelement auf dem Netzwerk238 zu und steuern dieses, um Speicherzugriffsoperationen auszuführen, die für das Betriebssystem216 transparent sind. Demgemäß verknüpft das Betriebssystem216 als eine Schnittstelle zu einem globalen Speicherplatz, der alle Knoten212a –212c auf dem Netzwerk238 umfaßt, mit dem Speicheruntersystem232 . -
6 zeigt weiterhin, daß das System230 einen verteilten gemeinsam verwendeten Speicher bereitstellt, der einen permanenten Speicher für Abschnitte des verteilten Speichers einschließt. Insbesondere weist die dargestellte Ausführungsform ein Speicheruntersystem, wie bspw. ein Untersystems232a , auf, das mit einer als Platte236a dargestellten permanenten Speichervorrichtung verknüpft. Das Untersystem232a kann die permanente Speichervorrichtung betreiben, um einen permanenten Speicher für Abschnitte des verteilten gemeinsam verwendeten Speicherplatzes bereitzustellen. Wie dargestellt ist, ist auf jede der in6 dargestellten permanenten Speichervorrichtungen236 ein Abschnitt des adressierbaren Speicherplatzes abgebildet. Beispielsweise sind auf die Vorrichtung236a die Abschnitte des Co, Cd, Cg des adressierbaren Speicherplatzes abgebildet, und sie bietet einen permanenten Speicher für in diesen Adressenbereichen gespeicherte Datensignale. - Dementsprechend kann das Untersystem
232a eine integrierte Steuerung permanenter Speichervorrichtungen und eines elektronischen Speichers bereitstellen, um zu ermöglichen, daß der verteilte gemeinsam verwendete Speicherplatz beide Typen von Speichervorrichtungen umfaßt und um zu ermöglichen, daß Abschnitte des verteilten gemeinsam verwendeten Speichers, abhängig von vorbestimmten Bedingungen, wie der jüngsten Verwendung, zwischen dem permanenten und dem elektronischen Speicher bewegt werden. - Bei einer optionalen Ausführungsform sind die Knoten des Netzwerks zu einer Hierarchie von Gruppen organisiert. Bei dieser Ausführungsform können die Speicheruntersysteme
232a –232c eine Hierarchieverwaltungseinrichtung aufweisen, die eine hierarchische Steuerung für die Verteilung von Daten bereitstellt. Dies umfaßt das Steuern der Migrationssteuereinrichtung und der Verfahrenssteuereinrichtung, die nachstehend in näheren Einzelheiten erörtert werden, zum Ausführen einer hierarchischen Datenmigration und eines Lastausgleichs, so daß Daten in erster Linie zwischen Computern derselben Gruppe migrieren und in hierarchischer Ordnung an andere Gruppen übergeben werden. Die Betriebsmittelverteilung wird in ähnlicher Weise verwaltet. -
7 zeigt in näheren Einzelheiten ein gemeinsam verwendetes Speicheruntersystem240 gemäß der Erfindung.7 zeigt ein gemeinsam verwendetes Speicheruntersystem240 , das eine Schnittstelle242 , eine DSM-Verzeichnisverwaltungseinheit244 , eine Speichersteuereinrichtung246 , eine lokale Platten-Cache-Steuereinrichtung248 und eine lokale RAM-Cache-Steuereinrichtung250 aufweist.7 zeigt weiterhin das Netzwerk254 , einen optionalen Kunden des DSM-Systems, der als der Dienst258 dargestellt ist, das Betriebssystem216 , einen Plattentreiber260 , ein Plattenelement262 und ein RAM-Element264 . - Das in
7 dargestellte gemeinsam verwendete Speicheruntersystem240 kann die Speicherverwaltungsoperationen des Netzwerkknotens212 einschließen, um einen virtuellen gemeinsam verwendeten Speicher bereitzustellen, der jeden Knoten umfassen kann, der sich mit dem Netzwerk254 verbindet. Dementsprechend betrachtet jeder lokale Knoten212 das Netzwerk als einen Knotensatz, die jeweils mit einem großen gemeinsam verwendeten Computerspeicher verbunden sind. - Die dargestellte Schnittstelle
242 bildet einen Eintrittspunkt für den lokalen Knoten, um auf den gemeinsam ver wendeten Speicherplatz des Computernetzwerks zuzugreifen. Die Schnittstelle242 kann direkt mit dem Betriebssystem216 , einer verteilten Diensteinrichtung, wie bspw. das dargestellte DSM-Dateisystem258 , einer verteilten Diensteinrichtung, auf der Benutzerebene oder alternativ einer Kombination davon gekoppelt werden. - Die dargestellte Schnittstelle
242 stellt eine API bereit, die eine speicherorientierte API ist. Demgemäß kann die dargestellte Schnittstelle242 einen Satz von Schnittstellen exportieren, die eine Steuerung des verteilten Speichers auf einer niedrigen Ebene bereitstellen. Wie in7 dargestellt ist, exportiert die Schnittstelle242 die API zu dem Betriebssystem216 oder zu dem optionalen DSM-Dienst258 . Das Betriebssystem216 oder der Dienst verwendet die Schnittstelle242 , um Standard-Speicherverwaltungstechniken, wie bspw. ein Lesen oder Schreiben von Abschnitten des Speicherplatzes, anzufordern. Diese Abschnitte des Speicherplatzes können die vorstehend beschriebenen Seiten sein, die 4-Kilobyte-Abschnitte des gemeinsam verwendeten Speicherplatzes oder andere Speichereinheiten, wie Objekte oder Segmente, sein können. Jede Seite kann sich innerhalb des gemeinsam verwendeten Speicherplatzes befinden, und sie wird durch ein globales Adressensignal für diese Seite des Speichers bezeichnet. Das System kann Adressensignale von einem Anwendungsprogramm empfangen oder optional einen globalen Adressengenerator aufweisen, der die Adressensignale erzeugt. Der Adressengenerator kann ein Bereichsmodul aufweisen, das Adressensignale für einen Speicherplatz erzeugt, der die Speicherkapazität des Netzwerks umfaßt. - Demgemäß empfängt die Schnittstelle
242 bei einer Ausführungsform Anforderungen zum Manipulieren von Seiten des gemeinsam verwendeten Speicherplatzes. Hierzu kann die Schnittstelle242 ein Softwaremodul aufweisen, das eine Bibliothek von Funktionen aufweist, die von Diensten, dem OS216 oder einem anderen Rufer oder einer anderen Vorrichtung aufgerufen werden können. Die Funktionsaufrufe stellen dem OS216 eine API speicherorientierter Dienste hoher Ebene, wie Daten lesen, Daten schreiben und Speicher zuordnen, bereit. Die Implementation der Funktionen kann einen Satz von Aufrufen von Steuerungen einschließen, welche die Verzeichnisverwaltungseinheit244 und die lokale Speichersteuereinrichtung246 betreiben. Dementsprechend kann die Schnittstelle242 ein Satz von Speicherfunktionsaufrufen hoher Ebene zur Verknüpfung mit den Funktionselementen niedriger Ebene des gemeinsam verwendeten Speicheruntersystems240 sein. -
7 zeigt weiterhin eine DSM-Verzeichnisverwaltungseinheit244 , die mit der Schnittstelle242 gekoppelt ist. Die Schnittstelle242 übergibt Anforderungssignale, die Anforderungen zum Implementieren von Speicheroperationen, wie das Zuordnen eines Speicherabschnitts, das Sperren eines Speicherabschnitts, das Abbilden eines Speicherabschnitts oder eine andere solche Speicherfunktion, darstellen. Die Verzeichnisverwaltungseinheit244 verwaltet ein Verzeichnis, das Abbildungen aufweisen kann, die jede mit dem in6 dargestellten Netzwerk238 verbundene Speichervorrichtung, einschließlich jedes RAM- und Plattenelements, das für das Netzwerk zugänglich ist, umfassen können. Die Verzeichnisverwaltungseinheit244 speichert eine globale Verzeichnisstruktur, die eine Abbildung des globalen Adressenplatzes bereitstellt. Bei einer Ausführungsform, die nachstehend in näheren Einzelheiten erklärt wird, stellt die Verzeichnisverwaltungseinheit244 ein globales Verzeichnis bereit, das zwischen globalen Adressensignalen und verantwortlichen Knoten auf dem Netzwerk abbildet. Ein verantwortlicher Knoten speichert Informationen hinsichtlich des Orts und von Attributen von Daten, die einer jeweiligen globalen Adresse zugeordnet sind, und er speichert optional eine Kopie der Daten dieser Seite. Folglich verfolgt die Verzeichnisverwaltungseinheit244 Informationen zum Zugreifen auf jede beliebige Adressenstelle innerhalb des Bezeichnerraums. - Die Steuerung des verteilten gemeinsam verwendeten Speichers kann durch die Verzeichnisverwaltungseinheit
244 und die Speichersteuereinrichtung246 koordiniert werden. Die Verzeichnisverwaltungseinheit244 unterhält eine Verzeichnisstruktur, die mit einer von der Schnittstelle242 empfangenen globalen Adresse zusammenwirken kann und für diese Adresse einen Knoten auf dem Netzwerk identifizieren kann, der dafür verantwortlich ist, die dieser Adresse des gemeinsam verwendeten Speicherplatzes zugeordnete Seite zu unterhalten. Sobald die Verzeichnisverwaltungseinheit244 identifiziert, welcher Knoten für das Unterhalten einer bestimmten Adresse verantwortlich ist, kann die Verzeichnisverwaltungseinheit244 einen Knoten identifizieren, der Informationen zum Lokalisieren einer Kopie der Seite speichert, und den Aufruf an die Speichersteuereinrichtung246 dieses Knotens richten und an die Speichersteuereinrichtung dieses Knotens die von der Speicherschnittstelle242 bereitgestellte Speicheranforderung übergeben. Dementsprechend ist die dargestellte Verzeichnisverwaltungseinheit244 dafür verantwortlich, eine Verzeichnisstruktur zu verwalten, die für jede Seite des gemeinsam verwendeten Speicherplatzes einen verantwortlichen Knoten identifiziert, der den physikalischen Ort der auf der jeweiligen Seite gespeicherten Daten verfolgt. Demgemäß kann das Verzeichnis, statt direkt den Ort der Seite bereitzustellen, optional einen verantwortlichen Knoten oder eine andere Vorrichtung identifizieren, die den Ort der Seite verfolgt. Diese Indirektheit erleichtert das Unterhalten des Verzeichnisses, wenn Seiten zwischen Knoten migrieren. - Die Speichersteuereinrichtung
246 führt die Speicherzugriffsfunktionen niedriger Ebene aus, die physikalisch Daten innerhalb der mit dem Netzwerk verbundenen Speicherelemente speichern. Bei der dargestellten Ausführungsform kann die Verzeichnisverwaltungseinheit244 eines ersten Knotens eine Speicherzugriffsanforderung über die Schnittstelle242 an das Netzwerkmodul des OS216 und über das Netzwerk254 zu einem zweiten Knoten leiten, den die Verzeichnisverwaltungseinheit244 als den verantwortlichen Knoten für die gegebene Adresse identifiziert. Die Verzeichnisverwaltungseinheit244 kann dann den verantwortlichen Knoten abfragen, um die Attribute und den gegenwärtigen Eigentümerknoten der Speicherseite, die der jeweiligen globalen Adresse zugeordnet ist, zu bestimmen. Der Eigentümer der jeweiligen Seite ist der Netzwerkknoten, der eine Kontrolle über das Speicherelement hat, auf dem die Daten der zugeordneten Seite gespeichert sind. Die Speichersteuereinrichtung246 des Eigentümers kann über das OS216 dieses Knotens oder über irgendeine Schnittstelle auf den Speicher des Eigentümerknotens zugreifen, um auf die Daten der Seite zuzugreifen, die physikalisch auf diesem Eigentümerknoten gespeichert sind. - Insbesondere ist die Verzeichnisverwaltungseinheit
244 , wie in7 dargestellt ist, mit dem Netzwerkmodul252 gekoppelt, das mit dem Netzwerk254 gekoppelt ist. Die Verzeichnisverwaltungseinheit kann zum Netzwerkmodul252 einen Befehl und zugeordnete Daten übertragen, welche die Netzwerkschnittstelle252 anweisen, ein Datensignal an den Eigentümerknoten zu übergeben. Der Eigentümerknoten empfängt die Speicheranforderung über das Netzwerk254 und über das Netzwerkmodul252 , das die Speicheranforderung an die Schnittstelle242 dieses Eigentümerknotens übergibt. Die Schnittstelle242 ist mit der Speichersteuereinrichtung246 gekoppelt und kann die Speicheranforderung an die lokale Speichersteuereinrichtung dieses Eigentümerknotens übergeben, um die lokalen Speicherelemente, wie die Platten- oder RAM-Elemente, zu betreiben und die angeforderte Speicheroperation auszuführen. - Sobald der Eigentümerknoten die angeforderte Speicheroperation, wie das Lesen einer Datenseite, ausgeführt hat, kann das Speicheruntersystem
240 des Eigentümerknotens die Datenseite übertragen oder eine Kopie der Datenseite über das Netzwerk254 zu dem Knoten übertragen, der ursprünglich den Zugriff auf diesen Abschnitt des gemeinsam verwendeten Speichers angefordert hat. Die Datenseite wird über das Netzwerk254 zu dem Netzwerkmodul252 des anfordernden Knotens übertragen, und das gemeinsam verwendete Speicheruntersystem240 veranlaßt die Speichersteuereinrichtung246 , in dem lokalen Speicher des anfordernden Knotens eine Kopie der Daten, auf die zugegriffen wurde, zu speichern. - Demgemäß identifiziert die Verzeichnisverwaltungseinheit
244 bei einer Ausführungsform der Erfindung, wenn ein erster Knoten auf eine Seite des gemeinsam verwendeten Speicherplatzes zugreift, die nicht lokal an diesem Knoten gespeichert ist, einen Knoten, der eine Kopie der auf dieser Seite gespeicherten Daten aufweist, und verschiebt eine Kopie dieser Daten in den lokalen Speicher des anfordernden Knotens. Der lokale Speicher, sowohl der flüchtige als auch der permanente, des anfordernden Knotens wird daher zu einem Cache-Speicher für Seiten, die von diesem lokalen Knoten angefordert worden sind. Diese Ausführungsform ist in7 dargestellt, die eine Speichersteuereinrichtung zeigt, die eine lokale Platten-Cache-Steuereinrichtung248 und eine lokale RAM-Cache-Steuereinrichtung250 aufweist. Diese beiden lokalen Cache-Steuereinrichtungen können für das Betriebssystem216 oder einen anderen Kunden Seiten des gemeinsam verwendeten Speicherplatzes bereitstellen, die indem lokalen Speicher des Knotens, einschließlich des lokalen permanenten Speichers und des lokalen flüchtigen Speichers, Cache-artig gespeichert sind. - Das gemeinsam verwendete Speicheruntersystem kann eine kohärente Replikationssteuereinrichtung aufweisen, die die Kohärenz zwischen in dem Cache-Speicher abgelegten Seiten aufrechterhält, indem sie eine Kohärenz durch einen Ungültigmachungsprozeß, eine Kohärenz durch einen Migrationsprozeß oder einen anderen Kohärenzprozeß verwendet, der zur Verwirklichung mit der vorliegenden Erfindung geeignet ist. Die kohärente Replikationssteuereinrichtung kann automatisch eine Kopie der auf jeder Seite gespeicherten Daten erzeugen und die Kopie in einer Speichervorrichtung speichern, die von der Speichervorrichtung der ursprünglichen Kopie getrennt ist. Hierdurch wird ein fehlertoleranter Betrieb bereitgestellt, weil der Fehler irgendeiner Speichervorrichtung nicht zu einem Datenverlust führt. Die kohärente Replikationssteuereinrichtung kann ein Softwaremodell sein, das alle im flüchtigen Speicher gehaltenen und für das Schreiben verfügbar gemachten Seitenkopien überwacht. Die Steuereinrichtung kann beliebige der vorstehend erwähnten Kohärenztechniken verwenden und Tabellen von Ortsinformationen speichern, die die Ortsinformationen für alle erzeugten Kopien identifizieren.
-
8 zeigt in näheren Einzelheiten eine Ausführungsform eines gemeinsam verwendeten Speicheruntersystems gemäß der Erfindung. Das in8 dargestellte gemeinsam verwendete Speicheruntersystem270 weist ein Fernoperationselement274 , einen lokalen RAM-Cache-Speicher276 , einen RAM-Kopiersatz278 , ein globales RAM-Verzeichnis280 , einen Platten-Kopiersatz282 , ein globales Plattenverzeichnis284 , eine Konfigurationsverzeichniseinheit288 , ein Verfahrenselement290 und einen lokalen Platten-Cache-Speicher94 auf. Weiterhin sind in8 ein Netzwerkelement304 , ein physikalischer Speicher300 , ein gemeinsam verwendetes Datenelement302 , ein physikalisches Dateisystem298 , das Teil des Betriebssystems216 ist, ein Konfigurationsdienst308 , ein diagnostischer Dienst310 und eine Speicherzugriffsanforderung312 dargestellt. Das dargestellte Untersystem270 kann ein Computerprogramm sein, das mit dem physikalischen Speicher, dem Dateisystem und dem Netzwerksystem des Hostknotens gekoppelt ist, oder es kann aus elektrischen Schaltungskartenanordnungen bestehen, die mit dem Hostknoten verknüpft sind, oder es kann eine Kombination von Programmen und Schaltungskartenanordnungen sein. - Die in
8 dargestellte Ablaufplanungseinrichtung272 kann die von einer API des Untersystems270 bereitgestellten Steuerungen koordinieren. Gemäß einer Ausführungsform kann die Ablaufplanungseinrichtung272 eine Zustandsmaschine sein, die die Anforderungen312 und die Fernanforderungen über das Netzwerk304 überwacht und auf diese reagiert, welche Anweisungen für Speicheroperationen sein können und welche die globalen Adressen, die verarbeitet werden, darstellende Signale einschließen können. Diese Speicheroperationsanforderungen312 können als Operationscodes für primitive Operationen an einer oder mehreren globalen Adressen wirken. Sie können Anforderungen oder andere Speicheroperationen lesen und schreiben. Alternativ kann die Ablaufplanungseinrichtung272 ein Programm, wie bspw. ein Interpreter sein, das eine Ausführungsumgebung bereitstellt und diese Operationscodes in als Applets bezeichnete Steuerflußprogramme abbilden kann. Die Applets können unabhängig ausführbare Programme sein, die sowohl Umgebungsdienste, wie eine Unterteilung in Teilprozesse, eine Synchronisation und eine Pufferverwaltung, als auch die in8 dargestellten Elemente verwenden. Die API kann sowohl von externen Clients wie ein verteiltes gemeinsam verwendetes Speicherdateisystem als auch rekursiv von den Applets und den anderen Elementen274 –294 des Untersystems270 aufgerufen werden. Jedes Element kann eine Verkapselungsebene für die Verwaltung eines bestimmten Betriebsmittels oder eines Aspekts des Systems bereitstellen. Hierzu kann jedes Element eine API exportieren, die aus von den Applets zu verwendenden Funktionen besteht. Diese Struktur ist in8 dargestellt. Dementsprechend kann die Ablaufplanungseinrichtung272 eine Umgebung zum Laden und Ausführen von Applets bereitstellen. Die Applets werden von der Ablaufplanungseinrichtung272 auf einer Je-Operationscode-Basis abgefertigt und können die Ablaufsteuerung für die sequentielle oder parallele Ausführung eines Elements ausführen, um den Operationscode an der spezifizierten globalen Adresse in der Art einer Lese- oder Schreiboperation zu implementieren. Wahlweise kann die Ablaufplanungseinrichtung272 ein Element zum dynamischen Ändern des Ablaufs während der Laufzeit aufweisen und Applets in einem parallelen und einem interpretierten Modus ausführen. - Das dargestellte gemeinsam verwendete Speicheruntersystem
270 weist eine verzweigte Verzeichnisverwaltungseinheit auf, die ein globales RAM-Verzeichnis280 und das globale Plattenverzeichnis284 aufweist. Das globale RAM-Verzeichnis280 ist eine Verzeichnisverwaltungseinheit, die Informationen verfolgen kann, die den Ort der Seiten liefern können, die im flüchtigen Speicher, typischerweise dem RAM, oder den Netzwerkknoten gespeichert sind. Das globale Plattenverzeichnis284 ist eine globale Platten-Verzeichnisverwaltungseinheit, die eine Verzeichnisstruktur verwaltet, die Informationen verfolgt, die den Ort von Seiten bereitstellen können, die auf permanenten Speichervorrichtungen gespeichert werden. Zusammen bilden das globale RAM-Verzeichnis280 und das globale Plattenverzeichnis284 das gemeinsam verwendete Speicheruntersystem270 mit einer integrierten Verzeichnisverwaltung für Seiten, die in dem permanenten Speicher und in dem flüchtigen Speicher gespeichert sind. - Bei einer Ausführungsform kann ein Seitenwechselelement die RAM- und die Platten-Verzeichnisverwaltungseinheit einsetzen, um Abschnitte des adressierbaren Speicherplatzes zwischen einem der flüchtigen Speicher und einem der permanenten Speicher neu abzubilden. Bei dem gemeinsam verwendeten Speichersystem ermöglicht dies, daß das Seitenwechselelement Seiten aus dem flüchtigen Speicher eines Knotens auf einen Plattenspeicher eines anderen Knotens neu abbildet. Demgemäß übergibt die RAM-Verzeichnisverwaltungseinheit die Steuerung dieser Seite an die Platten-Verzeichnisverwaltungseinheit, die die Seite dann wie jede andere Datenseite behandeln kann. Dies ermöglicht einen verbesserten Lastausgleich durch Entfernen von Daten aus dem RAM-Speicher und ein Speichern von ihnen in den Plattenvorrichtungen unter der Steuerung durch die Platten-Verzeichnisverwaltungseinheit.
- Die lokale Speichersteuereinrichtung des Untersystems
270 ist durch den lokalen RAM-Cache-Speicher276 und den lokalen Platten-Cache-Speicher294 gebildet. Der lokale RAM-Cache-Speicher276 , der mit dem physikalischen Speicher300 des lokalen Knotens gekoppelt ist, kann, wie vorstehend beschrieben wurde, auf den virtuellen Speicherplatz des lokalen Knotens zugreifen, um auf Daten zuzugreifen, die physikalisch innerhalb des RAM-Speichers300 gespeichert sind. In ähnlicher Weise ist der lokale Platten-Cache-Speicher294 mit der permanenten Speichervorrichtung298 gekoppelt und kann auf eine physikalische Stelle zugreifen, die in dem lokalen permanenten Speicher Daten des verteilten gemeinsam verwendeten Speichers enthält. -
8 zeigt auch ein Fernoperationselement274 , das das Netzwerk304 und die Ablaufplanungseinrichtung272 koppelt. Das Fernoperationselement274 verhandelt die Übertragung von Daten über das Netzwerk304 , um Abschnitte der im gemeinsam verwendeten Speicherplatz gespeicherten Daten zwischen den Knoten des Netzwerks zu übertragen. Das Fernoperationselement274 kann auch Dienste von fernen Peers anfordern, also eine Ungültigmachung vornehmen, um dabei zu helfen, die Kohärenz aufrechtzuerhalten, oder dies aus anderen Gründen tun. -
8 zeigt auch ein Verfahrenselement290 , das ein Softwaremodul sein kann, das als eine Steuereinrichtung zum Feststellen der Verfügbarkeit von Betriebsmitteln, wie Druckerfähigkeiten, Festplattenplatz, verfügbarem RAM und anderen solchen Betriebsmitteln, wirkt. Die Verfahrenssteuereinrichtung kann beliebige der geeigneten Heuristiken einsetzen, um die Elemente in der Art der Seitenwechsel-Steuereinrichtung, der Platten-Verzeichnisverwaltungseinheit und anderer Elemente anzuweisen, die verfügbaren Betriebsmittel dynamisch zu verteilen. -
8 zeigt weiterhin ein Speicheruntersystem270 , das einen RAM-Kopiersatz278 und einen Platten-Kopiersatz282 aufweist. Diese Kopiersätze können Kopien von Seiten verwalten, die an einem einzigen Knoten in dem Cache-Speicher abgelegt sind. Der Platten-Kopiersatz282 kann Informationen zu Seitenkopien enthalten, die in dem lokalen Platten-Cache-Speicher gespeichert sind, der der lokale permanente Speicher sein kann. In ähnlicher Weise kann der RAM-Kopiersatz278 Informationen zu Seitenkopien enthalten, die in dem lokalen RAM-Cache-Speicher, der der lokale RAM sein kann, abgelegt sind. Diese Kopiersätze schließen das Indexieren und das Speichern von Kopiersatzdaten ein, die von Applets oder anderem Ausführungscode verwendet werden können, um die Kohärenz in dem gemeinsam verwendeten Speicherplatz gespeicherter Daten aufrechtzuerhalten. Die Kopiersatzelemente können Kopiersatzdaten enthalten, die die vom Hostknoten Cache-artig gespeicherten Seiten identifizieren. Weiterhin kann der Kopiersatz die anderen Knoten auf dem Netzwerk identifizieren, die eine Kopie dieser Seite enthalten; und er kann weiterhin für jede Seite identifizieren, welcher dieser Knoten der Eigentümerknoten ist, wobei der Eigentümerknoten ein Knoten sein kann, der Schreibprivilegien für die Seite, auf die zugegriffen wird, aufweist. Die Kopiersätze selbst können auf Seiten des verteilten gemeinsam verwendeten Speicherplatzes gespeichert werden. - Der lokale RAM-Cache-Speicher
276 liefert Speicher für Speicherseiten und ihre Attribute. Bei einer Ausführungsform liefert der lokale RAM-Cache-Speicher276 einen globalen Adressenindex zum Zugreifen auf die Cache-artig gespeicherten Seiten des verteilten Speichers und die auf dieser Seite beruhenden Attribute. Bei dieser Ausführungsform liefert der lokale RAM-Cache-Speicher276 den Index durch Speichern einer Liste jeder in dem lokalen RAM Cache-artig abgelegten globalen Adresse durch Eingeben in den Speicher. Mit jeder aufgelisteten globalen Adresse liefert der Index einen Zeiger in einen Pufferspeicher und auf den Ort der Seitendaten. Wahlweise kann der Index mit jeder aufgelisteten globalen Adresse weiterhin Attributinformationen bereitstellen, die ein Versionskennzeichen, das die Version der Daten darstellt, eine Speichermarke, die darstellt, ob die im RAM abgelegten Daten eine Kopie der auf der Platte gespeicherten Daten sind oder ob die in dem RAM abgelegten Daten modifiziert worden sind, jedoch noch nicht auf die Platte übertragen worden sind, ein Flüchtigkeitsbit zum Angeben, ob die Seite durch einen Reservespeicher in dem permanenten Speicher hinterlegt ist, und andere solche Attributinformationen, die nützlich sind, um die Kohärenz der gespeicherten Daten zu verwalten, ein schließen. - Bei der in
8 dargestellten Ausführungsform liefert das Speicheruntersystem270 den Knotenzugriff auf den verteilten Speicherplatz durch die koordinierte Operation der Verzeichnisverwaltungseinheit, die das globale RAM-Verzeichnis280 und das globale Plattenverzeichnis284 aufweist, der Cache-Steuereinrichtung, die den lokalen RAM-Cache-Speicher und die lokalen Platten-Cache-Elemente276 und294 aufweist, und der Kopiersatzelemente, die den RAM-Kopiersatz278 und den Platten-Kopiersatz282 aufweisen. - Die Verzeichnisverwaltungseinheit liefert eine Verzeichnisstruktur, die den gemeinsam verwendeten Adressenplatz indexiert. Um das Beispiel eines seitenweise organisierten gemeinsam verwendeten Adressenplatzes fortzusetzen sei bemerkt, daß die Verzeichnisverwaltungseinheit des Untersystems
270 dem Hostknoten ermöglicht, durch globale Adressen auf Seiten des gemeinsam verwendeten Speicherplatzes zuzugreifen. - In den
9 und10 ist ein Beispiel einer Verzeichnisstruktur dargestellt, die einen Zugriff auf den gemeinsam verwendeten Speicherplatz bereitstellt.9 zeigt eine Verzeichnisseite320 , die einen Seitenkopf322 und Verzeichniseinträge324 und326 aufweist, wobei jeder Verzeichniseintrag ein Bereichsfeld330 , ein Feld332 des verantwortlichen Knotens und ein Adressenfeld334 aufweist. Die Verzeichnisseiten können durch einen Verzeichnisseitengenerator erzeugt werden, der ein von der Verzeichnisverwaltungseinheit gesteuertes Softwaremodul sein kann. Es ist verständlich, daß die Verzeichnisverwaltungseinheit mehrere Verzeichnisse unter Einschluß eines Verzeichnisses für die globale Platte und eines Verzeichnisses für die globalen RAM-Verzeichnisse erzeugen kann. Die dargestellte Verzeichnisseite320 kann eine Seite des globalen Adressenplatzes in der Art eines 4-Kilobyte-Abschnitts des gemeinsam verwendeten Adressenplatzes sein. Daher kann die Verzeichnisseite ebenso wie die anderen Seiten, für die die Verzeichnisseiten Zugang gewähren, in dem verteilten gemeinsam verwendeten Speicherplatz gespeichert werden. - Wie in
9 weiterhin dargestellt ist, weist jede Verzeichnisseite120 einen Seitenkopf322 auf, der Attributinformationen für diesen Seitenkopf einschließt, die typischerweise Metadaten für die Verzeichnisseite sind, und sie weist weiterhin Verzeichniseinträge in der Art der dargestellten Verzeichniseinträge324 und326 auf, die einen Index in einen Abschnitt des gemeinsam verwendeten Adressenraums bereitstellen, wobei dieser Abschnitt aus einer oder mehreren Seiten, einschließlich aller Seiten des verteilten gemeinsam verwendeten Speicherplatzes, bestehen kann. Die dargestellte Verzeichnisseite320 weist Verzeichniseinträge auf, die einen ausgewählten Bereich globaler Adressen des gemeinsam verwendeten Speicherplatzes indexieren. Hierzu kann der Verzeichnisgenerator einen Bereichsgenerator aufweisen, so daß jeder Verzeichniseintrag ein Bereichsfeld330 aufweisen kann, das den Anfang eines Adressenbereichs beschreibt, den dieser Eintrag lokalisiert. - Demgemäß kann jede Verzeichnisseite
320 mehrere Verzeichniseinträge, wie bspw. Einträge324 und326 , aufweisen, die den Adressenraum in einen Untersatz von Adressenbereichen unterteilen können. Beispielsweise weist die dargestellte Verzeichnisseite320 zwei Verzeichnis einträge324 und326 auf. Die Verzeichniseinträge324 und326 können beispielsweise den Adressenraum in zwei Unterabschnitte unterteilen. In diesem Beispiel könnte der Anfangsadressenbereich des Verzeichniseintrags324 die Basisadresse des Adressenraums sein, und der Anfangsadressenbereich des Verzeichniseintrags326 könnte die Adresse für die obere Hälfte des Speicherplatzes sein. Dementsprechend liefert der Verzeichniseintrag324 einen Index für Seiten, die in dem Adressenraum zwischen der Basisadresse und dem Mittelpunkt des Speicherplatzes gespeichert sind, und der Verzeichniseintrag326 liefert komplementär dazu einen Index für Seiten, die in dem Adressenraum gespeichert sind, der von dem Mittelpunkt des Adressenraums bis zu der höchsten Adresse reicht. -
9 zeigt weiterhin eine Verzeichnisseite320 , die in jedem Verzeichniseintrag ein verantwortliches Knotenfeld332 und das globale Adressenfeld334 der abhängigen Seite aufweist. Diese Felder332 ,334 liefern weitere Ortsinformationen für die Daten, die auf Seiten innerhalb des im Feld330 identifizierten Adressenbereichs gespeichert sind. -
10 zeigt ein Verzeichnis340 , das aus Verzeichnisseiten ähnlich den in9 dargestellten besteht.10 zeigt, daß das Verzeichnis340 Verzeichnisseiten342 ,350 –354 und360 –366 aufweist.10 zeigt weiterhin, daß das Verzeichnis340 Ortsinformationen für die in10 als die Seiten370 –384 dargestellten Seiten des verteilten gemeinsam verwendeten Speicherplatzes bereitstellt. - Die in
10 dargestellte Verzeichnisseite342 wirkt wie eine Wurzelverzeichnisseite und kann sich an einer statischen Adresse befinden, die jedem mit dem verteilten Adressenraum gekoppelten Knoten bekannt ist. Die Wurzelverzeichnisseite342 weist drei Verzeichniseinträge344 ,346 und348 auf. Jeder in10 dargestellte Verzeichniseintrag weist Verzeichniseinträge ähnlich den in9 dargestellten auf. Beispielsweise weist der Verzeichniseintrag344 eine Variable Co, die das Adressenbereichsfeld330 repräsentiert, eine Variable Nj, die das Feld332 repräsentiert, und eine Variable Cs, die das Feld334 repräsentiert, auf. Die dargestellte Wurzelverzeichnisseite342 unterteilt den Adressenraum in drei Bereiche, die als ein Adressenbereich, der sich zwischen den Adressen Co und Cd erstreckt, ein zweiter Adressenbereich, der sich zwischen den Adressen Cd und Cg erstreckt, und ein dritter Adressenbereich, der sich zwischen Cg und der höchsten Speicherstelle des Adressenraums erstreckt, dargestellt sind. - Wie in
10 weiter dargestellt ist, weist jeder Verzeichniseintrag344 ,346 und348 auf eine untergeordnete Verzeichnisseite, die als Verzeichnisseiten350 ,352 und354 dargestellt ist, von denen jede weiterhin den Adressenbereichsindex durch den zugeordneten Verzeichniseintrag des Wurzelverzeichnisses342 unterteilt. In9 wird dieser Unterteilungsprozeß fortgesetzt, weil jede der Verzeichnisseiten350 ,352 und354 jeweils wiederum Verzeichniseinträge aufweist, die untergeordnete Verzeichnisseiten einschließlich der dargestellten Beispiele der Verzeichnisseiten360 ,362 ,364 und366 lokalisieren. - In dem dargestellten Beispiel sind die Verzeichnisseiten
360 ,362 ,364 und366 jeweils Zweigeinträge. Die Zweigeinträge enthalten Verzeichniseinträge, wie bspw. die Verzeichniseinträge356 und358 des Zweigeintrags360 , die ein Bereichsfeld330 und das verantwortliche Knotenfeld332 speichern. Diese Zweigeinträge identifizieren eine Adresse und einen verantwortlichen Knoten für die Seite in dem verteilten Speicherplatz, auf die zugegriffen wird, wie bspw. die dargestellten Seiten370 –384 . Beispielsweise verweist der Zweigeintrag356 , wie in10 dargestellt ist, auf die Seite370 , die dem Bereichsfeld330 des Zweigeintrags356 entspricht, die für einen Zweigeintrag die Seite ist, auf die zugegriffen wird. Auf diese Weise liefert die Verzeichnisstruktur340 Ortsinformationen für in dem verteilten Adressenraum gespeicherte Seiten. - Bei der in
10 dargestellten Ausführungsform kann ein Knotenwähler einen verantwortlichen Knoten für jede Seite auswählen, wie vorstehend beschrieben wurde, so daß der Zweigeintrag356 Informationen zu der Adresse und zu dem verantwortlichen Knoten der lokalisierten Seite bereitstellt. Dementsprechend verfolgt dieses Verzeichnis die Eigentümerschaft und die Verantwortlichkeit für Daten, um eine Indirektheitsebene zwischen dem Verzeichnis und dem physikalischen Ort der Daten bereitzustellen. Während eines Speicherzugriffsvorgangs übergibt das Speicheruntersystem270 an den im Zweigeintrag356 angegebenen verantwortlichen Knoten die Adresse der Seite, auf die zugegriffen wird. Das gemeinsam verwendete Speicheruntersystem dieses Knotens kann einen Knoten unter Einschluß des Eigentümerknotens identifizieren, der eine Kopie der Seite, auf die zugegriffen wird, speichert. Diese Identifikation eines Knotens, der eine Kopie aufweist, kann von dem RAM- Kopiersatz oder von dem Platten-Kopiersatz des verantwortlichen Knotens vorgenommen werden. Der Knoten mit einer in seinem lokalen physikalischen Speicher gespeicherten Kopie, wie bspw. der Eigentümerknoten, kann seine lokalen Cache-Elemente einschließlich des lokalen RAM-Cache-Speichers und des lokalen Platten-Cache-Speichers verwenden, um anhand des globalen Adressensignals einen physikalischen Ort der Daten zu identifizieren, die auf der Seite gespeichert sind, auf die zugegriffen wird. Das Cache-Element kann das Betriebssystem des Eigentümerknotens verwenden, um auf die Speichervorrichtung zuzugreifen, die diesen physikalischen Ort enthält, damit auf die Daten zugegriffen werden kann, die auf der Seite gespeichert sind. Für einen Speicherlesevorgang oder für einen anderen ähnlichen Vorgang können die aus dem physikalischen Speicher des Eigentümerknotens gelesenen Daten über das Netzwerk an das Speicheruntersystem des Knotens übergeben werden, der das Lesen anfordert, und nachfolgend in dem virtuellen Speicherplatz des anfordernden Knotens gespeichert werden, um von diesem Knoten verwendet zu werden. - Wiederum mit Bezug auf
10 ist ersichtlich, daß die dargestellte Verzeichnisstruktur340 eine hierarchische Struktur aufweist. Hierzu liefert die Verzeichnisstruktur340 eine Struktur, die den Speicherplatz kontinuierlich in immer kleinere Abschnitte unterteilt. Weiterhin ist jeder Abschnitt durch Verzeichnisseiten derselben Struktur, jedoch Indexadressenräume unterschiedlicher Größen, dargestellt. Wenn Seiten erzeugt oder gelöscht werden, fügt ein Linker die Seiten in das Verzeichnis ein oder löscht die Seiten aus diesem. Bei einer Ausführungsform ist der Linker ein Softwaremodul zum Verbinden von Datenstrukturen. - Der Linker kann ansprechend auf die Adressenbereiche arbeiten, um die dargestellte hierarchische Struktur bereitzustellen. Dementsprechend bietet das dargestellte Verzeichnis
340 ein skalierbares Verzeichnis für den gemeinsam verwendeten Adressenraum. Weiterhin werden die Verzeichnisseiten in dem verteilten Adressenraum gespeichert und von dem verteilten gemeinsam verwendeten Speichersystem unterhalten. Eine Wurzel für das Verzeichnis kann an bekannten Stellen gespeichert werden, um ein Urladen des Systems zu ermöglichen. Folglich werden häufig verwendete Seiten kopiert und verteilt und selten verwendete Seiten von der Platte geschoben. In ähnlicher Weise migrieren Verzeichnisseiten zu den Knoten, die am häufigsten auf sie zugreifen, wodurch ein Grad der Selbstorganisation bereitgestellt wird, der den Netzwerkverkehr verringert. -
11 zeigt das Verzeichnis aus10 , das von einem erfindungsgemäßen System verwendet wird. Insbesondere zeigt11 ein System400 , das zwei Knoten406a und406b , eine Verzeichnisstruktur340 und ein Paar lokaler Speicher mit flüchtigen Speichervorrichtungen264a und264b und permanenten Speichervorrichtungen262a und262b aufweist. Ein dargestellter Knoten406a weist einen Adressenkunden408a , eine globale Adresse410a sowie eine Schnittstelle242a , eine Verzeichnisverwaltungseinheit244a und eine Speichersteuereinrichtung246a auf. Ein Knoten406b weist entsprechende Elemente auf. Die Knoten sind durch das Netzwerk254 verbunden. Das Verzeichnis340 weist eine Wurzelseite, Verzeichnisseiten A–F und Seiten 1–5 auf. - Jeder Knoten
406a und406b arbeitet so, wie vorstehend erörtert wurde. Die dargestellten Adressenkunden408a und408b können ein Anwendungsprogramm, ein Dateisystem, eine Hardwarevorrichtung oder ein anderes solches Element sein, das den Zugriff auf den virtuellen Speicher anfordert. Beim Betrieb fordern die Adressenkunden408a und408b eine Adresse oder einen Adressenbereich an, und die Verzeichnisverwaltungseinheit kann einen globalen Adressengenerator aufweisen, der dem Kunden die angeforderte Adresse oder einen Zeiger auf die angeforderte Adresse liefert. Wenn Adressen erzeugt werden, erzeugen die jeweiligen Verzeichnisverwaltungseinheiten244a und244b Verzeichnisseiten und speichern die Seiten in der Verzeichnisstruktur340 . Wie dargestellt ist, verfolgt die Verzeichnisstruktur340 die Abschnitte des Adressenraums, die von dem System400 verwendet werden, und der physikalische Speicher für jede Seite ist innerhalb der lokalen Speicher bereitgestellt. - Wie in
11 dargestellt ist, werden die den Verzeichnisseiten zugeordneten Daten verteilt über die zwei lokalen Speicher gespeichert, und es können Vervielfältigungskopien existieren. Wie vorstehend beschrieben wurde und nun in11 dargestellt ist, können die Daten oder die Seite zwischen verschiedenen lokalen Speichern bewegt werden und auch zwischen dem flüchtigen und dem permanenten Speicher bewegt werden. Die Datenbewegung kann ansprechend auf Datenanforderungen, die von Speicherbenutzern in der Art von Anwendungsprogrammen gemacht werden, oder unter Verwendung der vorstehend beschriebenen Migrationssteuereinrichtung erfolgen. Wie vorstehend auch beschrieben wurde, kann die Bewegung von Daten zwischen verschiedenen Speicherstellen auftreten, ohne daß Änderungen an dem Verzeichnis340 erforderlich wären. Dies wird erreicht, indem ein Verzeichnis340 bereitgestellt wird, das von der physikalischen Stelle der Daten entkoppelt ist, indem ein Zeiger auf einen verantwortlichen Knoten verwendet wird, der die Datenspeicherstelle verfolgt. Wenngleich sich dementsprechend die Datenspeicherstelle ändern kann, kann der verantwortliche Knoten konstant bleiben, wodurch es überflüssig wird, das Verzeichnis340 zu wechseln. - Durchschnittsfachleuten werden Abänderungen, Modifikationen und andere Implementationen von dem einfallen, was hier beschrieben wird, ohne von dem Gedanken und von dem Schutzumfang der beanspruchten Erfindung abzuweichen. Dementsprechend soll die Erfindung nicht durch die vorstehende erläuternde Beschreibung sondern vielmehr durch den Schutzumfang der folgenden Ansprüche definiert sein.
Claims (34)
- Verfahren zum Bereitstellen einer verteilten Steuerung über einen strukturierten Datenspeicher, mit den folgenden Schritten: Bereitstellen einer Mehrzahl von durch ein Netzwerk miteinander verbundenen Knoten, wobei jeder der Mehrzahl von Knoten einen gemeinsam verwendeten adressierbaren Speicherplatz eines gemeinsam verwendeten Speichersystems geteilt verwendet und (i) eine Schnittstelle zum Zugreifen auf das Netzwerk, (ii) eine lokale flüchtige Speichervorrichtung, die mit dem Knoten gekoppelt ist und einen flüchtigen Speicher bereitstellt, (iii) eine lokale permanente Speichervorrichtung, die mit dem Knoten gekoppelt ist und einen permanenten Speicher bereitstellt, und (iv) ein gemeinsam verwendetes Speicheruntersystem zum Abbilden eines Abschnitts des gemeinsam verwendeten adressierbaren Speicherplatzes in mindestens einen Abschnitt des permanenten und des flüchtigen Speichers, um dadurch einen adressierbaren permanenten und flüchtigen Speicher bereitzustellen, der von jedem der Mehrzahl von Knoten ansteuerbar ist, aufweist, wobei das gemeinsam verwendete Speicheruntersystem (a) einen Verteiler zum Abbilden von Abschnitten des adressierbaren Speicherplatzes über die Mehrzahl von lokalen permanenten und flüchtigen Speichervorrichtungen, um den adressierbaren Speicherplatz über die Mehrzahl von lokalen permanenten und flüchtigen Speichervorrichtungen zu verteilen, und (b) eine Verzeichnisverwaltungseinheit zum Verfolgen der abgebildeten Abschnitte des adressierbaren Speicherplatzes, um Informationen bereitzustellen, die angeben, welche Abschnitte des adressierbaren Speicherplatzes auf welche der lokalen permanenten und flüchtigen Speichervorrichtungen abgebildet sind, aufweist, Speichern einer Ausprägung eines Datensteuerprogramms zum Manipulieren des strukturierten Datenspeichers an jedem Knoten, um mehrere verteilte Ausprägungen des Datensteuerprogramms bereitzustellen, Verknüpfen jeder Ausprägung des Datensteuerprogramms mit dem gemeinsam verwendeten Speichersystem und Betreiben jeder Ausprägung des Datensteuerprogramms, um das gemeinsam verwendete Speichersystem als eine Speichervorrichtung zu verwenden, in der der strukturierte Datenspeicher enthalten ist, wobei die Koordinaten des gemeinsam verwendeten Speichersystems auf den strukturierten Datenspeicher zugreifen, um eine verteilte Steuerung des strukturierten Datenspeichers bereitzustellen.
- Verfahren nach Anspruch 1, wobei der Verknüpfungsschritt die weiteren Schritte aufweist: Anweisen des Datensteuerprogramms, einen Strom im strukturierten Datenspeicher zu speichernder Daten bereitzustellen, und Anweisen des Datensteuerprogramms, das gemeinsam verwendete Speichersystem als eine Speichervorrichtung mit einem einzigen Knoten zu betreiben.
- Verfahren nach Anspruch 1, wobei der strukturierte Datenspeicher ein Dateisystem aufweist und wobei das Datensteuerprogramm ein Dateisteuerprogramm zum Manipulieren des Dateisystems aufweist, wobei das gemeinsam verwendete Speichersystem den Zugriff auf das Dateisystem steuert, um ein gemeinsam verwendetes Dateisystem bereitzustellen.
- Verfahren nach Anspruch 3, bei dem des weiteren das gemeinsam verwendete Dateisystem mit einem Dateiverzeichnis versehen wird und das gemeinsam verwendete Speichersystem so betrieben wird, daß das Dateiverzeichnis innerhalb eines gemeinsam verwendeten Speicherplatzes gehalten wird.
- Verfahren nach Anspruch 4, bei dem des weiteren das Dateiverzeichnis als eine Mehrzahl von innerhalb des gemeinsam verwendeten Speicherplatzes gespeicherten logischen Dateipartitionen organisiert werden.
- Verfahren nach Anspruch 4, das des weiteren den Schritt des Koordinierens des geteilten Zugriffs auf Daten innerhalb des strukturierten Speichers durch Sperren innerhalb eines gemeinsam verwendeten Speicherplatzes gespeicherter Verzeichnisse umfaßt.
- Verfahren nach Anspruch 3, bei dem des weiteren für eine innerhalb des gemeinsam verwendeten Dateisystems gespeicherte Datei ein Dateideskriptor erzeugt wird, der einen Speicher für einen Bezeichner aufweist, der einen Abschnitt eines gemeinsam verwendeten Speicherplatzes repräsentiert.
- Verfahren nach Anspruch 7, bei dem des weiteren benachbarte Abschnitte des gemeinsam verwendeten Speicherplatzes zugeordnet werden, die jeweils durch einen jeweiligen Bezeichner repräsentiert sind, um reduzierte Buchhaltungsinformationen für die Datei bereitzustellen.
- Verfahren nach Anspruch 7, bei dem des weiteren benachbarte Segmente einer Speichervorrichtung zum Speichern von Daten, die den benachbarten Abschnitten des gemeinsam verwendeten Speicherplatzes zugeordnet sind, reserviert werden, um den Zugriff auf den physikalischen Speicher für die Datei zu optimieren.
- Verfahren nach Anspruch 1, wobei der strukturierte Datenspeicher ein Datenbanksystem aufweist und wobei das Datensteuerprogramm ein Datenbank-Steuerprogramm zum Manipulieren des Datenbanksystems aufweist, wobei das gemeinsam verwendete Speichersystem den Zugriff auf das Datenbanksystem steuert, um ein gemeinsam verwendetes Datenbanksystem bereitzustellen.
- Verfahren nach Anspruch 10, bei dem des weiteren das gemeinsam verwendete Datenbanksystem mit einem Datenbankverzeichnis und einem Satz von Indexstrukturen versehen wird, und das gemeinsam verwendete Speichersystem betrieben wird, um das Datenbankverzeichnis und den Satz von Indexstrukturen innerhalb eines gemeinsam verwendeten Speicherplatzes zu erhalten.
- Verfahren nach Anspruch 11, bei dem des weiteren das Datenbankverzeichnis als eine Mehrzahl von innerhalb des gemeinsam verwendeten Speicherplatzes gespeicherten Sätzen organisiert wird.
- Verfahren nach Anspruch 10, das des weiteren die folgenden Schritte umfaßt: Zuordnen von Zeitgleichzugriffs-Steuerstrukturen zu Abschnitten des Datenbanksystems, Speichern der Zeitgleichzugriffs-Steuerstrukturen in dem gemeinsam verwendeten Speicherplatz und Koordinieren des geteilten Zugriffs auf das Datenbanksystem durch Sperren von Zeitgleichzugriffs-Steuerstrukturen.
- Verfahren nach Anspruch 13, das des weiteren das Sperren von Datenbankindizes umfaßt.
- Verfahren nach Anspruch 13, das des weiteren das Sperren von Datenbankschlüsseln umfaßt.
- Verfahren nach Anspruch 10, bei dem des weiteren für ein innerhalb des gemeinsam verwendeten Datenbanksystems gespeichertes Datenbankobjekt ein Datenbank-Datensatzdeskriptor erzeugt wird, der einen Speicher für einen Bezeichner aufweist, der einen Abschnitt eines gemeinsam verwendeten Speicherplatzes repräsentiert.
- Verfahren nach Anspruch 16, bei dem des weiteren benachbarte Abschnitte des gemeinsam verwendeten Speicherplatzes zugeordnet werden, die jeweils durch einen jeweiligen Bezeichner repräsentiert sind, um reduzierte Buchhaltungsinformationen für den jeweiligen Datenbank-Datensatz bereitzustellen.
- Verfahren nach Anspruch 16, bei dem des weiteren benachbarte Segmente einer Speichervorrichtung zum Speichern von Daten, die den benachbarten Abschnitten des gemeinsam verwendeten Speicherplatzes zugeordnet sind, reserviert werden, um den Zugriff auf den physikalischen Speicher für den Datenbank-Datensatz zu optimieren.
- Verfahren nach Anspruch 1, wobei der strukturierte Datenspeicher ein Web-Serversystem umfaßt und wobei das Datensteuerprogramm ein Steuerprogramm zum Manipulieren des Web-Serversystems umfaßt und der Zugriff auf das Web-Serversystem gesteuert wird, um ein gemeinsam verwendetes Web-Serversystem bereitzustellen.
- Verfahren nach Anspruch 19, bei dem des weiteren das gemeinsam verwendete Web-Serversystem mit einem Verzeichnis versehen wird, das die Dateien ihrem Inhalt zuordnet und das gemeinsam verwendete Speichersystem betrieben wird, um das Web-Serververzeichnis innerhalb eines gemeinsam verwendeten Speicherplatzes zu erhalten.
- Verfahren nach Anspruch 19, bei dem des weiteren für eine innerhalb des gemeinsam verwendeten Web-Serversystems gespeicherte Datei ein Dateideskriptor erzeugt wird, der einen Speicher für einen Bezeichner aufweist, der einen Abschnitt eines gemeinsam verwendeten Speicherplatzes repräsentiert.
- Verfahren nach Anspruch 21, bei dem des weiteren benachbarte Abschnitte des gemeinsam verwendeten Speicherplatzes zugeordnet werden, die jeweils durch einen jeweiligen Bezeichner repräsentiert sind, um reduzierte Buchhaltungsinformationen für die Dateien bereitzustellen.
- Verfahren nach Anspruch 21, bei dem des weiteren benachbarte Segmente einer Speichervorrichtung zum Speichern von Daten, die den benachbarten Abschnitten des gemeinsam verwendeten Speicherplatzes zugeordnet sind, reserviert werden, um den Zugriff auf den physikalischen Speicher für die Dateien zu optimieren.
- Verfahren nach Anspruch 1, bei dem des weiteren das gemeinsam verwendete Speichersystem betrieben wird, um gespeicherte Daten kohärent zu replizieren und so einen redundanten Datenspeicher bereitzustellen.
- Verfahren nach Anspruch 24, bei dem des weiteren die kohärent replizierten Daten innerhalb verschiedener Speichervorrichtungen des Netzwerks gespeichert werden, um einen fehlertoleranten Betrieb bereitzustellen.
- Verfahren nach Anspruch 1, bei dem des weiteren Zeitgleichzugriffs-Steuerstrukturen Abschnitten des gemeinsam verwendeten Speicherplatzes zugeordnet werden, die Zeitgleichzugriffs-Steuerstrukturen im gemeinsam verwendeten Speicherplatz gespeichert werden und der geteilte Zugriff auf Daten innerhalb des strukturierten Speichers durch Sperren von Zeitgleichzugriffs-Steuerstrukturen koordiniert wird.
- Verfahren nach Anspruch 26, bei dem des weiteren eine Sperrobjekt-Datenstruktur mit Informationen erzeugt wird, die einen Sperrstatus auf Abschnitten des gemeinsam verwendeten Speicherplatzes repräsentieren, und das Sperrobjekt innerhalb des gemeinsam verwendeten Speicherplatzes gespeichert wird, um dadurch eine gemeinsam verwendete Systemsperre bereitzustellen.
- Verfahren nach Anspruch 26, wobei bei dem Sperrschritt der gemeinsam verwendete Speicher angewiesen wird, Bytebereichssperren zu erzeugen, die Sperren repräsentieren, die auf Abschnitte des gemeinsam verwendeten Speicherplatzes gesetzt sind.
- Verfahren nach Anspruch 1, bei dem des weiteren jede Ausprägung des Datensteuerprogramms betrieben wird, um das gemeinsam verwendete Speichersystem als einen in Clustern angeordneten strukturierten Speicher zu verwenden, wobei das Speichersystem den Zugriff auf den in Clustern angeordneten strukturierten Speicher koordiniert, um eine verteilte Steuerung über den in Clustern angeordneten strukturierten Speicher bereitzustellen.
- Verfahren zum Bereitstellen einer verteilten Steuerung über einen strukturierten Datenspeicher, mit folgenden Schritten: Bereitstellen einer Mehrzahl von durch ein Netzwerk miteinander verbundener Knoten, Speichern einer Ausprägung eines Datensteuerprogramms an jedem Knoten, um mehrere verteilte Ausprägungen des Datensteuerprogramms bereitzustellen, wobei das Datensteuerprogramm den Zugriff auf den strukturierten Datenspeicher manipuliert und steuert, Verknüpfen jeder Ausprägung des Datensteuerprogramms mit einem gemeinsam verwendeten Speichersystem, das einen adressierbaren permanenten Datenspeicher bereitstellt, Betreiben jeder Ausprägung des Datensteuerprogramms, um das gemeinsam verwendete Speichersystem als eine Speichervorrichtung zu verwenden, in der der strukturierte Datenspeicher enthalten ist, wobei die Koordinaten des gemeinsam verwendeten Speichersystems auf den strukturierten Datenspeicher zugreifen, um eine verteilte Steuerung des strukturierten Datenspeichers bereitzustellen, Versehen der strukturierten Datenspeicher mit einem Verzeichnis, das die Dateien ihrem Inhalt zuordnet, und Betreiben des gemeinsam verwendeten Speichersystems, um das Verzeichnis innerhalb eines gemeinsam verwendeten Speicherplatzes zu erhalten.
- Verfahren nach Anspruch 30, bei dem der strukturierte Datenspeicher ein Web-Serversystem aufweist und das Datensteuerprogramm das Web-Serversystem manipuliert und den Zugriff auf das Web-Serversystem steuert, um ein gemeinsam verwendetes Web-Serversystem bereitzustellen.
- Verfahren nach Anspruch 31, bei dem des weiteren für eine innerhalb des gemeinsam verwendeten Web-Serversystems gespeicherte Datei ein Dateideskriptor mit einem Speicher für einen Bezeichner erzeugt wird, der einen Abschnitt eines gemeinsam verwendeten Speicherplatzes repräsentiert.
- Verfahren nach Anspruch 31, bei dem des weiteren benachbarte Abschnitte des gemeinsam verwendeten Speicherplatzes zugeordnet werden, die jeweils durch einen jeweiligen Bezeichner repräsentiert sind, um, reduzierte Buchhaltungsinformationen für die Dateien bereitzustellen.
- Verfahren nach Anspruch 31, bei dem des weiteren benachbarte Segmente einer Speichervorrichtung zum Speichern von Daten, die den benachbarten Abschnitten des gemeinsam verwendeten Speicherplatzes zugeordnet sind, reserviert werden, um den Zugriff auf den physikalischen Speicher für die Dateien zu optimieren.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US827534 | 1977-08-25 | ||
US08/754,481 US6148377A (en) | 1996-11-22 | 1996-11-22 | Shared memory computer networks |
US08/827,534 US5918229A (en) | 1996-11-22 | 1997-03-28 | Structured data storage using globally addressable memory |
PCT/US1997/021466 WO1998022892A1 (en) | 1996-11-22 | 1997-11-21 | Structured data storage using globally addressable memory |
US754481 | 2001-01-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69722962D1 DE69722962D1 (de) | 2003-07-24 |
DE69722962T2 true DE69722962T2 (de) | 2004-05-19 |
Family
ID=25034985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69722962T Expired - Fee Related DE69722962T2 (de) | 1996-11-22 | 1997-11-21 | Strukturiertes datenspeichersystem mit global adressierbarem speicher |
Country Status (8)
Country | Link |
---|---|
US (3) | US6148377A (de) |
EP (2) | EP0978069B1 (de) |
JP (2) | JP2001506022A (de) |
AT (1) | ATE243336T1 (de) |
AU (2) | AU7303598A (de) |
CA (1) | CA2221874C (de) |
DE (1) | DE69722962T2 (de) |
WO (2) | WO1998022892A1 (de) |
Families Citing this family (691)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3661235B2 (ja) * | 1995-08-28 | 2005-06-15 | 株式会社日立製作所 | 共有メモリシステム、並列型処理装置並びにメモリlsi |
US6185611B1 (en) * | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6412017B1 (en) | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
JP3747525B2 (ja) * | 1996-08-28 | 2006-02-22 | 株式会社日立製作所 | 並列データベースシステム検索方法 |
US8396811B1 (en) | 1999-02-26 | 2013-03-12 | Syncada Llc | Validation approach for auditing a vendor-based transaction |
US8560439B2 (en) | 2004-06-09 | 2013-10-15 | Syncada Llc | Transaction processing with core and distributor processor implementations |
US20070055582A1 (en) * | 1996-11-12 | 2007-03-08 | Hahn-Carlson Dean W | Transaction processing with core and distributor processor implementations |
US8392285B2 (en) | 1996-11-12 | 2013-03-05 | Syncada Llc | Multi-supplier transaction and payment programmed processing approach with at least one supplier |
US20080172314A1 (en) | 1996-11-12 | 2008-07-17 | Hahn-Carlson Dean W | Financial institution-based transaction processing system and approach |
GB2319705B (en) * | 1996-11-21 | 2001-01-24 | Motorola Ltd | Arrangement for encryption/decryption of data and data carrier incorporating same |
US6647393B1 (en) * | 1996-11-22 | 2003-11-11 | Mangosoft Corporation | Dynamic directory service |
US7058696B1 (en) | 1996-11-22 | 2006-06-06 | Mangosoft Corporation | Internet-based shared file service with native PC client access and semantics |
US5950228A (en) * | 1997-02-03 | 1999-09-07 | Digital Equipment Corporation | Variable-grained memory sharing for clusters of symmetric multi-processors using private and shared state tables |
US6424988B2 (en) * | 1997-02-19 | 2002-07-23 | Unisys Corporation | Multicomputer system |
EP0874368A3 (de) * | 1997-04-25 | 2003-03-19 | Sony Corporation | Informationsaufzeichnungsgerät und -verfahren sowie Informationswiedergabegerät und -verfahren |
US6151686A (en) * | 1997-06-06 | 2000-11-21 | Fmr Corp. | Managing an information retrieval problem |
US6163806A (en) * | 1997-06-30 | 2000-12-19 | Sun Microsystems, Inc. | System and method for transparent, global access to physical devices on a computer cluster |
US6092155A (en) * | 1997-07-10 | 2000-07-18 | International Business Machines Corporation | Cache coherent network adapter for scalable shared memory processing systems |
US6785888B1 (en) * | 1997-08-29 | 2004-08-31 | International Business Machines Corporation | Memory allocator for a multiprocessor computer system |
US6295584B1 (en) * | 1997-08-29 | 2001-09-25 | International Business Machines Corporation | Multiprocessor computer system with memory map translation |
US6279032B1 (en) | 1997-11-03 | 2001-08-21 | Microsoft Corporation | Method and system for quorum resource arbitration in a server cluster |
JPH11149481A (ja) * | 1997-11-19 | 1999-06-02 | Sharp Corp | 情報処理装置 |
US7509280B1 (en) * | 1997-11-24 | 2009-03-24 | Clinlcomp International, Inc. | Enterprise healthcare management system and method of using same |
US6219672B1 (en) * | 1997-12-11 | 2001-04-17 | Kabushiki Kaisha Toshiba | Distributed shared memory system and method of controlling distributed shared memory |
US7010532B1 (en) * | 1997-12-31 | 2006-03-07 | International Business Machines Corporation | Low overhead methods and apparatus for shared access storage devices |
JPH11212774A (ja) * | 1998-01-23 | 1999-08-06 | Fujitsu Ltd | アプリケーション管理方法、及び、それを用いた情報処理装置 |
US6029168A (en) * | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US6567774B1 (en) * | 1998-01-30 | 2003-05-20 | Compaq Computer Corporation | Method and system for configuring and updating networked client stations using a virtual disk and a snapshot disk |
US7930278B2 (en) * | 1998-02-13 | 2011-04-19 | Oracle International Corporation | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
US7200623B2 (en) | 1998-11-24 | 2007-04-03 | Oracle International Corp. | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
US6094663A (en) * | 1998-03-31 | 2000-07-25 | Apple Computer, Inc. | Method and apparatus for implementing atomic queues |
US6173413B1 (en) * | 1998-05-12 | 2001-01-09 | Sun Microsystems, Inc. | Mechanism for maintaining constant permissions for multiple instances of a device within a cluster |
US6338086B1 (en) * | 1998-06-11 | 2002-01-08 | Placeware, Inc. | Collaborative object architecture |
US6442663B1 (en) * | 1998-06-19 | 2002-08-27 | Board Of Supervisors Of Louisiana University And Agricultural And Mechanical College | Data collection and restoration for homogeneous or heterogeneous process migration |
WO2000004483A2 (en) * | 1998-07-15 | 2000-01-27 | Imation Corp. | Hierarchical data storage management |
US6516342B1 (en) * | 1998-07-17 | 2003-02-04 | International Business Machines Corporation | Method and apparatus for extending memory using a memory server |
US7392234B2 (en) * | 1999-05-18 | 2008-06-24 | Kom, Inc. | Method and system for electronic file lifecycle management |
US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
US6594701B1 (en) | 1998-08-04 | 2003-07-15 | Microsoft Corporation | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data |
US6321276B1 (en) | 1998-08-04 | 2001-11-20 | Microsoft Corporation | Recoverable methods and systems for processing input/output requests including virtual memory addresses |
US6360220B1 (en) * | 1998-08-04 | 2002-03-19 | Microsoft Corporation | Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries |
US7013305B2 (en) | 2001-10-01 | 2006-03-14 | International Business Machines Corporation | Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange |
US6405217B1 (en) * | 1998-09-21 | 2002-06-11 | Microsoft Corporation | State-based implementation of transactions on a file system |
US6489954B1 (en) * | 1998-10-13 | 2002-12-03 | Prophet Financial Systems, Inc. | System and method for permitting a software routine having restricted local access to utilize remote resources to generate locally usable data structure |
JP3976432B2 (ja) * | 1998-12-09 | 2007-09-19 | エヌイーシーコンピュータテクノ株式会社 | データ処理装置およびデータ処理方法 |
US6178519B1 (en) * | 1998-12-10 | 2001-01-23 | Mci Worldcom, Inc. | Cluster-wide database system |
JP3481485B2 (ja) * | 1999-01-28 | 2003-12-22 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム |
US7353194B1 (en) | 1999-03-02 | 2008-04-01 | Alticor Investments, Inc. | System and method for managing recurring orders in a computer network |
JP2003524815A (ja) | 1999-03-02 | 2003-08-19 | クイックスター インヴェストメンツ,インコーポレイテッド | 会員資格購入機会を含むマーケテイング・システム内の電子商取引 |
JP3837953B2 (ja) * | 1999-03-12 | 2006-10-25 | 株式会社日立製作所 | 計算機システム |
US7082462B1 (en) * | 1999-03-12 | 2006-07-25 | Hitachi, Ltd. | Method and system of managing an access to a private logical unit of a storage system |
US6295571B1 (en) * | 1999-03-19 | 2001-09-25 | Times N Systems, Inc. | Shared memory apparatus and method for multiprocessor systems |
US6401120B1 (en) * | 1999-03-26 | 2002-06-04 | Microsoft Corporation | Method and system for consistent cluster operational data in a server cluster using a quorum of replicas |
US7774469B2 (en) | 1999-03-26 | 2010-08-10 | Massa Michael T | Consistent cluster operational data in a server cluster using a quorum of replicas |
US6453426B1 (en) | 1999-03-26 | 2002-09-17 | Microsoft Corporation | Separately storing core boot data and cluster configuration data in a server cluster |
US6484185B1 (en) * | 1999-04-05 | 2002-11-19 | Microsoft Corporation | Atomic operations on data structures |
US6654772B1 (en) * | 1999-04-28 | 2003-11-25 | Emc Corporation | Multi-volume extent based file system |
US6895418B1 (en) * | 1999-04-28 | 2005-05-17 | Emc Corporation | Versatile indirection in an extent based file system |
US6222529B1 (en) | 1999-05-05 | 2001-04-24 | Shareware, Inc. | Method and apparatus for providing multiple sessions on a single user operating system |
US6505382B1 (en) | 1999-05-14 | 2003-01-14 | Apple Computer, Inc. | Hinge apparatus with cam mechanism |
US6760756B1 (en) * | 1999-06-23 | 2004-07-06 | Mangosoft Corporation | Distributed virtual web cache implemented entirely in software |
JP2001022716A (ja) * | 1999-07-09 | 2001-01-26 | Nec Corp | 通信サービス提供システム |
US7035880B1 (en) | 1999-07-14 | 2006-04-25 | Commvault Systems, Inc. | Modular backup and retrieval system used in conjunction with a storage area network |
US7389311B1 (en) | 1999-07-15 | 2008-06-17 | Commvault Systems, Inc. | Modular backup and retrieval system |
US7395282B1 (en) | 1999-07-15 | 2008-07-01 | Commvault Systems, Inc. | Hierarchical backup and retrieval system |
US6477544B1 (en) * | 1999-07-16 | 2002-11-05 | Microsoft Corporation | Single instance store for file systems |
US6513051B1 (en) | 1999-07-16 | 2003-01-28 | Microsoft Corporation | Method and system for backing up and restoring files stored in a single instance store |
US6389433B1 (en) | 1999-07-16 | 2002-05-14 | Microsoft Corporation | Method and system for automatically merging files into a single instance store |
US6834386B1 (en) * | 1999-07-16 | 2004-12-21 | Microsoft Corporation | Method and system for regulating background tasks using performance measurements |
US6546466B1 (en) | 1999-08-23 | 2003-04-08 | International Business Machines Corporation | Method, system and program products for copying coupling facility cache structures |
US6542970B1 (en) | 1999-08-23 | 2003-04-01 | International Business Machines Corporation | Method, system and program products for copying coupling facility list structures |
US6546414B1 (en) * | 1999-08-23 | 2003-04-08 | International Business Machines Corporation | Method, system and program products for copying coupling facility lock structures |
US6609214B1 (en) | 1999-08-23 | 2003-08-19 | International Business Machines Corporation | Method, system and program products for copying coupling facility structures |
US7162477B1 (en) * | 1999-09-03 | 2007-01-09 | International Business Machines Corporation | System and method for web or file system asset management |
US7028298B1 (en) * | 1999-09-10 | 2006-04-11 | Sun Microsystems, Inc. | Apparatus and methods for managing resource usage |
WO2001025953A1 (en) * | 1999-10-01 | 2001-04-12 | Infraworks Corporation | Registry monitoring system and method |
US6553466B1 (en) | 1999-10-01 | 2003-04-22 | Infraworks Corporation | Shared memory blocking method and system |
US6675205B2 (en) | 1999-10-14 | 2004-01-06 | Arcessa, Inc. | Peer-to-peer automated anonymous asynchronous file sharing |
US7152231B1 (en) * | 1999-11-01 | 2006-12-19 | Harris-Exigent, Inc. | High speed interprocess communication |
US6477624B1 (en) | 1999-11-08 | 2002-11-05 | Ondotek, Inc. | Data image management via emulation of non-volatile storage device |
SE517705C2 (sv) * | 1999-12-08 | 2002-07-09 | Axis Ab | I/O Metod och anordning för optiska lagringsmedia |
US6457111B1 (en) | 1999-12-14 | 2002-09-24 | International Business Machines Corporation | Method and system for allocation of a persistence indicator for an object in an object-oriented environment |
US6662219B1 (en) | 1999-12-15 | 2003-12-09 | Microsoft Corporation | System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource |
US7376587B1 (en) | 2000-07-11 | 2008-05-20 | Western Union Financial Services, Inc. | Method for enabling transfer of funds through a computer network |
US7089588B2 (en) | 2000-01-19 | 2006-08-08 | Reynolds And Reynolds Holdings, Inc. | Performance path method and apparatus for exchanging data among systems using different data formats |
US7028071B1 (en) * | 2000-01-28 | 2006-04-11 | Bycast Inc. | Content distribution system for generating content streams to suit different users and facilitating e-commerce transactions using broadcast content metadata |
GB0002019D0 (en) * | 2000-01-29 | 2000-03-22 | Ibm | Data migration tool |
US7003641B2 (en) | 2000-01-31 | 2006-02-21 | Commvault Systems, Inc. | Logical view with granular access to exchange data managed by a modular data and storage management system |
US7155481B2 (en) | 2000-01-31 | 2006-12-26 | Commvault Systems, Inc. | Email attachment management in a computer system |
US6658436B2 (en) | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
US7441014B1 (en) * | 2000-02-09 | 2008-10-21 | Tvworks, Llc | Broadcast distribution using low-level objects and locator tables |
US7509420B2 (en) * | 2000-02-18 | 2009-03-24 | Emc Corporation | System and method for intelligent, globally distributed network storage |
US20010044879A1 (en) * | 2000-02-18 | 2001-11-22 | Moulton Gregory Hagan | System and method for distributed management of data storage |
US20020029207A1 (en) * | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
US6542930B1 (en) * | 2000-03-08 | 2003-04-01 | International Business Machines Corporation | Distributed file system with automated file management achieved by decoupling data analysis and movement operations |
US9246975B2 (en) | 2000-03-17 | 2016-01-26 | Facebook, Inc. | State change alerts mechanism |
US20020023132A1 (en) * | 2000-03-17 | 2002-02-21 | Catherine Tornabene | Shared groups rostering system |
US7624172B1 (en) | 2000-03-17 | 2009-11-24 | Aol Llc | State change alerts mechanism |
US6891802B1 (en) | 2000-03-30 | 2005-05-10 | United Devices, Inc. | Network site testing method and associated system |
US20010039497A1 (en) * | 2000-03-30 | 2001-11-08 | Hubbard Edward A. | System and method for monitizing network connected user bases utilizing distributed processing systems |
US20040148336A1 (en) * | 2000-03-30 | 2004-07-29 | Hubbard Edward A | Massively distributed processing system architecture, scheduling, unique device identification and associated methods |
US6654783B1 (en) | 2000-03-30 | 2003-11-25 | Ethergent Corporation | Network site content indexing method and associated system |
USRE42153E1 (en) * | 2000-03-30 | 2011-02-15 | Hubbard Edward A | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US7003547B1 (en) | 2000-03-30 | 2006-02-21 | United Devices, Inc. | Distributed parallel processing system having capability-based incentives and associated method |
US6963897B1 (en) * | 2000-03-30 | 2005-11-08 | United Devices, Inc. | Customer services and advertising based upon device attributes and associated distributed processing system |
US20040103139A1 (en) * | 2000-03-30 | 2004-05-27 | United Devices, Inc. | Distributed processing system having sensor based data collection and associated method |
US7254607B2 (en) * | 2000-03-30 | 2007-08-07 | United Devices, Inc. | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US6847995B1 (en) | 2000-03-30 | 2005-01-25 | United Devices, Inc. | Security architecture for distributed processing systems and associated method |
US20010027467A1 (en) * | 2000-03-30 | 2001-10-04 | Anderson David P. | Massively distributed database system and associated method |
US7092985B2 (en) * | 2000-03-30 | 2006-08-15 | United Devices, Inc. | Method of managing workloads and associated distributed processing system |
US20090222508A1 (en) * | 2000-03-30 | 2009-09-03 | Hubbard Edward A | Network Site Testing |
US7039670B2 (en) * | 2000-03-30 | 2006-05-02 | United Devices, Inc. | Massively distributed processing system with modular client agent and associated method |
US20070033252A1 (en) * | 2000-03-30 | 2007-02-08 | Combest Ricky F | Dynamic virtual network and method |
US8010703B2 (en) | 2000-03-30 | 2011-08-30 | Prashtama Wireless Llc | Data conversion services and associated distributed processing system |
US20090216641A1 (en) | 2000-03-30 | 2009-08-27 | Niration Network Group, L.L.C. | Methods and Systems for Indexing Content |
US7082474B1 (en) | 2000-03-30 | 2006-07-25 | United Devices, Inc. | Data sharing and file distribution method and associated distributed processing system |
US7020678B1 (en) | 2000-03-30 | 2006-03-28 | United Devices, Inc. | Machine generated sweepstakes entry model and associated distributed processing system |
US6981027B1 (en) * | 2000-04-10 | 2005-12-27 | International Business Machines Corporation | Method and system for memory management in a network processing system |
US6820213B1 (en) | 2000-04-13 | 2004-11-16 | Stratus Technologies Bermuda, Ltd. | Fault-tolerant computer system with voter delay buffer |
US6687851B1 (en) | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
US6901481B2 (en) | 2000-04-14 | 2005-05-31 | Stratus Technologies Bermuda Ltd. | Method and apparatus for storing transactional information in persistent memory |
US6802022B1 (en) | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
US6629227B1 (en) * | 2000-05-04 | 2003-09-30 | Scientific-Atlanta, Inc. | System and method for a communication terminal to manage memory and maintain a current application version for multiple applications |
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
CA2381189A1 (en) * | 2000-06-02 | 2001-12-13 | Inrange Technologies Corporation | Message queue server system |
US6745207B2 (en) * | 2000-06-02 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | System and method for managing virtual storage |
US6553391B1 (en) * | 2000-06-08 | 2003-04-22 | International Business Machines Corporation | System and method for replicating external files and database metadata pertaining thereto |
WO2001098952A2 (en) * | 2000-06-20 | 2001-12-27 | Orbidex | System and method of storing data to a recording medium |
US6842784B1 (en) | 2000-06-27 | 2005-01-11 | Emc Corporation | Use of global logical volume identifiers to access logical volumes stored among a plurality of storage elements in a computer storage system |
US6708265B1 (en) | 2000-06-27 | 2004-03-16 | Emc Corporation | Method and apparatus for moving accesses to logical entities from one storage element to another storage element in a computer storage system |
US7225191B1 (en) | 2000-06-27 | 2007-05-29 | Emc Corporation | Method and apparatus for verifying storage access requests in a computer storage system with multiple storage elements |
US6813686B1 (en) | 2000-06-27 | 2004-11-02 | Emc Corporation | Method and apparatus for identifying logical volumes in multiple element computer storage domains |
US6978324B1 (en) | 2000-06-27 | 2005-12-20 | Emc Corporation | Method and apparatus for controlling read and write accesses to a logical entity |
US6912548B1 (en) * | 2000-06-27 | 2005-06-28 | Emc Corporation | Logical volume identifier database for logical volumes in a computer storage system |
US7065610B1 (en) | 2000-06-27 | 2006-06-20 | Emc Corporation | Method and apparatus for maintaining inventory of logical volumes stored on storage elements |
US6760828B1 (en) | 2000-06-27 | 2004-07-06 | Emc Corporation | Method and apparatus for using logical volume identifiers for tracking or identifying logical volume stored in the storage system |
US7245291B2 (en) | 2000-07-11 | 2007-07-17 | Imran Sharif | System and method for internet appliance data entry and navigation |
US20030115167A1 (en) * | 2000-07-11 | 2003-06-19 | Imran Sharif | Web browser implemented in an Internet appliance |
US20020078445A1 (en) * | 2000-07-11 | 2002-06-20 | Imran Sharif | Internet appliance for interactive audio/video display using a remote control unit for user input |
US7249098B2 (en) * | 2000-07-11 | 2007-07-24 | First Data Corporation | Subscription-based payment |
CA2416130A1 (en) | 2000-07-11 | 2002-01-17 | First Data Corporation | Wide area network person-to-person payment |
US6980313B2 (en) * | 2000-07-11 | 2005-12-27 | Imran Sharif | Fax-compatible internet appliance |
US6714941B1 (en) * | 2000-07-19 | 2004-03-30 | University Of Southern California | Learning data prototypes for information extraction |
US8751248B2 (en) * | 2000-07-28 | 2014-06-10 | Visual Telecommunications Network, Inc. | Method, apparatus, and medium using a master control file for computer software interoperability between disparate operating systems |
US6772153B1 (en) * | 2000-08-11 | 2004-08-03 | International Business Machines Corporation | Method and apparatus to provide concurrency control over objects without atomic operations on non-shared objects |
US7529750B2 (en) * | 2000-08-11 | 2009-05-05 | International Business Machines Corporation | Accessing information on a network |
US6981005B1 (en) * | 2000-08-24 | 2005-12-27 | Microsoft Corporation | Partial migration of an object to another storage location in a computer system |
US7299255B2 (en) * | 2000-09-26 | 2007-11-20 | I2 Technologies Us, Inc. | System and method for migrating data in an electronic commerce system |
US7590558B2 (en) * | 2000-09-26 | 2009-09-15 | I2 Technologies Us, Inc. | System and method for facilitating electronic commerce transactions |
US6708161B2 (en) | 2000-09-26 | 2004-03-16 | I2 Technologies Us, Inc. | System and method for selective database indexing |
US20020111870A1 (en) * | 2000-09-26 | 2002-08-15 | I2 Technologies, Inc. | System and method for identifying a product |
JP4902904B2 (ja) | 2000-10-06 | 2012-03-21 | ソニー株式会社 | 情報処理方法、並びにプログラムを格納している媒体 |
US7328232B1 (en) | 2000-10-18 | 2008-02-05 | Beptech Inc. | Distributed multiprocessing system |
EP2056248A1 (de) * | 2000-10-25 | 2009-05-06 | Thomson Financial Inc. | E-Commerce-System |
US7305360B1 (en) | 2000-10-25 | 2007-12-04 | Thomson Financial Inc. | Electronic sales system |
US7330830B1 (en) | 2000-10-25 | 2008-02-12 | Thomson Financial Inc. | Distributed commerce system |
US6850959B1 (en) | 2000-10-26 | 2005-02-01 | Microsoft Corporation | Method and system for transparently extending non-volatile storage |
FR2816090B1 (fr) * | 2000-10-26 | 2003-01-10 | Schlumberger Systems & Service | Dispositif de partage de fichiers dans un dispositif a circuit integre |
US7073089B2 (en) * | 2000-10-31 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | External fault tolerant shared memory unit in a distributed multiprocessing system |
US7266533B2 (en) | 2000-12-15 | 2007-09-04 | The Western Union Company | Electronic gift greeting |
US20070276873A1 (en) * | 2001-02-13 | 2007-11-29 | Vahdat Amin M | System and method for optimizing efficiency of replicated network services |
US7069295B2 (en) * | 2001-02-14 | 2006-06-27 | The Escher Group, Ltd. | Peer-to-peer enterprise storage |
US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
US6874102B2 (en) * | 2001-03-05 | 2005-03-29 | Stratus Technologies Bermuda Ltd. | Coordinated recalibration of high bandwidth memories in a multiprocessor computer |
JP3704573B2 (ja) * | 2001-03-14 | 2005-10-12 | 東芝ソリューション株式会社 | クラスタシステム |
US9853759B1 (en) | 2001-03-31 | 2017-12-26 | First Data Corporation | Staged transaction system for mobile commerce |
CA2443220A1 (en) | 2001-03-31 | 2002-10-10 | First Data Corporation | Electronic identifier payment system and methods |
US7184989B2 (en) | 2001-03-31 | 2007-02-27 | First Data Corporation | Staged transactions systems and methods |
US8150763B2 (en) | 2001-03-31 | 2012-04-03 | The Western Union Company | Systems and methods for staging transactions, payments and collections |
US7117183B2 (en) | 2001-03-31 | 2006-10-03 | First Data Coroporation | Airline ticket payment and reservation system and methods |
US20040158687A1 (en) * | 2002-05-01 | 2004-08-12 | The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | Distributed raid and location independence caching system |
EP1390854A4 (de) * | 2001-05-01 | 2006-02-22 | Rhode Island Education | Verteiltes raid- und ortsunabhängigkeits-cache-system |
US6983276B2 (en) * | 2001-05-15 | 2006-01-03 | I2 Technologies Us, Inc. | Facilitating electronic commerce transactions using buyer profiles |
US7349868B2 (en) | 2001-05-15 | 2008-03-25 | I2 Technologies Us, Inc. | Pre-qualifying sellers during the matching phase of an electronic commerce transaction |
US7475030B1 (en) | 2001-05-16 | 2009-01-06 | I2 Technologies Us, Inc. | Facilitating electronic commerce transactions using a shared product data repository |
TW523667B (en) * | 2001-05-31 | 2003-03-11 | Taiwan Semiconductor Mfg | Shared directory management system and method of the same |
US20040139125A1 (en) | 2001-06-05 | 2004-07-15 | Roger Strassburg | Snapshot copy of data volume during data access |
US8010558B2 (en) | 2001-06-05 | 2011-08-30 | Silicon Graphics International | Relocation of metadata server with outstanding DMAPI requests |
US7640582B2 (en) | 2003-04-16 | 2009-12-29 | Silicon Graphics International | Clustered filesystem for mix of trusted and untrusted nodes |
US7617292B2 (en) | 2001-06-05 | 2009-11-10 | Silicon Graphics International | Multi-class heterogeneous clients in a clustered filesystem |
US6732104B1 (en) * | 2001-06-06 | 2004-05-04 | Lsi Logic Corporatioin | Uniform routing of storage access requests through redundant array controllers |
DE10128475A1 (de) * | 2001-06-12 | 2003-01-02 | Siemens Ag | Mehrprozessorsystem mit geteiltem Arbeitsspeicher |
US7263515B1 (en) * | 2001-06-18 | 2007-08-28 | I2 Technologies Us, Inc. | Content enhancement in an electronic marketplace |
US6714953B2 (en) * | 2001-06-21 | 2004-03-30 | International Business Machines Corporation | System and method for managing file export information |
US7330829B1 (en) | 2001-06-26 | 2008-02-12 | I2 Technologies Us, Inc. | Providing market feedback associated with electronic commerce transactions to sellers |
US7809672B1 (en) | 2001-06-28 | 2010-10-05 | I2 Technologies Us, Inc. | Association of data with a product classification schema |
US8086643B1 (en) | 2001-06-28 | 2011-12-27 | Jda Software Group, Inc. | Translation between product classification schemas |
US7162453B1 (en) | 2001-06-29 | 2007-01-09 | I2 Technologies Us, Inc. | Protecting content from unauthorized reproduction |
US7346560B1 (en) | 2001-06-29 | 2008-03-18 | I2 Technologies Us, Inc. | Protecting content from unauthorized reproduction |
US7194513B2 (en) * | 2001-07-08 | 2007-03-20 | Imran Sharif | System and method for using an internet appliance to send/receive digital content files as E-mail attachments |
US6745175B2 (en) * | 2001-08-02 | 2004-06-01 | National Instruments Corporation | System and method for a shared memory architecture for high speed logging and trending |
US6721677B2 (en) | 2001-08-02 | 2004-04-13 | National Instruments Corporation | System and method for modular storage of measurement streams using a hierarchy of stream-processing objects |
US7383315B2 (en) | 2001-08-02 | 2008-06-03 | National Instruments Corporation | System and method for a delta page protocol for caching, replication, and client/server networking |
US6931408B2 (en) | 2001-08-17 | 2005-08-16 | E.C. Outlook, Inc. | Method of storing, maintaining and distributing computer intelligible electronic data |
US7290017B1 (en) * | 2001-09-20 | 2007-10-30 | Emc Corporation | System and method for management of data replication |
US8055555B2 (en) * | 2001-09-25 | 2011-11-08 | Emc Corporation | Mediation device for scalable storage service |
US7552056B2 (en) * | 2001-09-25 | 2009-06-23 | Emc Corporation | Scalable storage service registration application |
US6877108B2 (en) * | 2001-09-25 | 2005-04-05 | Sun Microsystems, Inc. | Method and apparatus for providing error isolation in a multi-domain computer system |
US7277952B2 (en) * | 2001-09-28 | 2007-10-02 | Microsoft Corporation | Distributed system resource protection via arbitration and ownership |
US7430593B2 (en) * | 2001-10-05 | 2008-09-30 | International Business Machines Corporation | Storage area network for topology rendering |
US8244632B2 (en) | 2001-10-26 | 2012-08-14 | First Data Corporation | Automated transfer with stored value |
US8374962B2 (en) | 2001-10-26 | 2013-02-12 | First Data Corporation | Stored value payouts |
US20030097445A1 (en) * | 2001-11-20 | 2003-05-22 | Stephen Todd | Pluggable devices services and events for a scalable storage service architecture |
US8549048B2 (en) * | 2001-12-19 | 2013-10-01 | Emc Corporation | Workflow database for scalable storage service |
US7177868B2 (en) * | 2002-01-02 | 2007-02-13 | International Business Machines Corporation | Method, system and program for direct client file access in a data management system |
EP1466261B1 (de) | 2002-01-08 | 2018-03-07 | Seven Networks, LLC | Verbindungsarchitektur für ein mobilnetzwerk |
US6795902B2 (en) | 2002-01-09 | 2004-09-21 | Sun Microsystems, Inc. | Inter-domain data transfer |
US7020753B2 (en) | 2002-01-09 | 2006-03-28 | Sun Microsystems, Inc. | Inter-domain data transfer |
US7281044B2 (en) * | 2002-01-10 | 2007-10-09 | Hitachi, Ltd. | SAN infrastructure on demand service system |
US6993520B2 (en) * | 2002-01-15 | 2006-01-31 | International Business Machines Corporation | Integrated content management and block layout technique |
US7243103B2 (en) * | 2002-02-14 | 2007-07-10 | The Escher Group, Ltd. | Peer to peer enterprise storage system with lexical recovery sub-system |
US6922757B2 (en) * | 2002-02-15 | 2005-07-26 | Exanet Inc. | Flexible and adaptive read and write storage system architecture |
US6993539B2 (en) | 2002-03-19 | 2006-01-31 | Network Appliance, Inc. | System and method for determining changes in two snapshots and for transmitting changes to destination snapshot |
US7412424B1 (en) | 2002-03-19 | 2008-08-12 | I2 Technologies Us, Inc. | Third party certification of content in electronic commerce transactions |
CA2377649C (en) * | 2002-03-20 | 2009-02-03 | Ibm Canada Limited-Ibm Canada Limitee | Dynamic cluster database architecture |
WO2003081443A1 (fr) | 2002-03-25 | 2003-10-02 | Ricoh Company, Ltd. | Dispositif de formation d'images comportant une fonction de service web |
US7219230B2 (en) * | 2002-05-08 | 2007-05-15 | Hewlett-Packard Development Company, L.P. | Optimizing costs associated with managing encrypted data |
US7296106B2 (en) * | 2002-06-28 | 2007-11-13 | Sun Microsystems, Inc. | Centerplaneless computer system |
US8037181B2 (en) * | 2002-06-28 | 2011-10-11 | Microsoft Corporation | Re-partitioning directories |
US7050307B2 (en) * | 2002-06-28 | 2006-05-23 | Sun Microsystems, Inc. | Circuit board orientation in a computer system |
US6980994B2 (en) * | 2002-07-08 | 2005-12-27 | International Business Machines Corporation | Method, apparatus and computer program product for mapping file handles |
US7093230B2 (en) | 2002-07-24 | 2006-08-15 | Sun Microsystems, Inc. | Lock management thread pools for distributed data systems |
US8095657B2 (en) * | 2002-07-24 | 2012-01-10 | Oracle America, Inc. | First thread lock management for distributed data systems |
US20040019660A1 (en) * | 2002-07-24 | 2004-01-29 | Sandhya E. | Lock holding multi-threaded processes for distibuted data systems |
US7565406B2 (en) * | 2002-07-24 | 2009-07-21 | Sun Microsystems, Inc. | Last thread lock management for multi-threaded process and distributed data systems |
US20040024729A1 (en) * | 2002-07-30 | 2004-02-05 | Worley John S. | Method and system for storing sparse data in memory and accessing stored sparse data |
US7107385B2 (en) * | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7873700B2 (en) * | 2002-08-09 | 2011-01-18 | Netapp, Inc. | Multi-protocol storage appliance that provides integrated support for file and block access protocols |
US20040049520A1 (en) * | 2002-09-05 | 2004-03-11 | Heather Bowers | System, method, and apparatus for sharing revision control databases |
US7340486B1 (en) * | 2002-10-10 | 2008-03-04 | Network Appliance, Inc. | System and method for file system snapshot of a virtual logical disk |
US8041735B1 (en) * | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
US7043655B2 (en) | 2002-11-06 | 2006-05-09 | Sun Microsystems, Inc. | Redundant clock synthesizer |
US20040093295A1 (en) * | 2002-11-13 | 2004-05-13 | Spotware Technologies, Inc. | Retail distributive computing |
US8122137B2 (en) | 2002-11-18 | 2012-02-21 | Aol Inc. | Dynamic location of a subordinate user |
US7899862B2 (en) | 2002-11-18 | 2011-03-01 | Aol Inc. | Dynamic identification of other users to an online user |
US8005919B2 (en) | 2002-11-18 | 2011-08-23 | Aol Inc. | Host-based intelligent results related to a character stream |
US7428580B2 (en) | 2003-11-26 | 2008-09-23 | Aol Llc | Electronic message forwarding |
US7640306B2 (en) | 2002-11-18 | 2009-12-29 | Aol Llc | Reconfiguring an electronic message to effect an enhanced notification |
US8701014B1 (en) | 2002-11-18 | 2014-04-15 | Facebook, Inc. | Account linking |
US7590696B1 (en) | 2002-11-18 | 2009-09-15 | Aol Llc | Enhanced buddy list using mobile device identifiers |
AU2003287671A1 (en) | 2002-11-18 | 2004-06-15 | America Online, Inc. | People lists |
US8965964B1 (en) | 2002-11-18 | 2015-02-24 | Facebook, Inc. | Managing forwarded electronic messages |
US7225302B2 (en) * | 2002-11-27 | 2007-05-29 | Sap Ag | Method and software application for avoiding data loss |
US7464091B2 (en) * | 2002-11-27 | 2008-12-09 | Sap Ag | Method and software for processing data objects in business applications |
US7430569B2 (en) * | 2002-11-27 | 2008-09-30 | Sap Ag | Computerized replication of data objects |
US7409412B2 (en) | 2002-11-27 | 2008-08-05 | Sap Ag | Data element and structure for data processing |
US7315862B1 (en) * | 2002-12-20 | 2008-01-01 | Nortel Networks Limited | Concurrent lock-free access to a record by write and read processes |
KR100507781B1 (ko) * | 2002-12-24 | 2005-08-17 | 한국전자통신연구원 | 공유 디스크 기반 다중 데이터베이스 관리시스템에서 검출및 회피 기반 일관성 유지 정책을 동시에 지원하는 버퍼장착방법 |
US7853563B2 (en) | 2005-08-01 | 2010-12-14 | Seven Networks, Inc. | Universal data aggregation |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US7917468B2 (en) | 2005-08-01 | 2011-03-29 | Seven Networks, Inc. | Linking of personal information management data |
US7809693B2 (en) * | 2003-02-10 | 2010-10-05 | Netapp, Inc. | System and method for restoring data on demand for instant volume restoration |
US7197490B1 (en) * | 2003-02-10 | 2007-03-27 | Network Appliance, Inc. | System and method for lazy-copy sub-volume load balancing in a network attached storage pool |
US6961733B2 (en) * | 2003-03-10 | 2005-11-01 | Unisys Corporation | System and method for storing and accessing data in an interlocking trees datastore |
JP4233900B2 (ja) * | 2003-03-19 | 2009-03-04 | 株式会社日立製作所 | 大容量記憶装置におけるデータの格納・読み出し制御 |
US20040210639A1 (en) | 2003-03-26 | 2004-10-21 | Roy Ben-Yoseph | Identifying and using identities deemed to be known to a user |
US7293152B1 (en) * | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | Consistent logical naming of initiator groups |
US7444349B1 (en) * | 2003-05-23 | 2008-10-28 | Xilinx, Inc. | Control of concurrent access to a partitioned data file |
US7454569B2 (en) | 2003-06-25 | 2008-11-18 | Commvault Systems, Inc. | Hierarchical system and method for performing storage operations in a computer network |
US7996361B1 (en) * | 2003-06-30 | 2011-08-09 | Symantec Operating Corporation | Method and system of providing replica files within a fileset |
US7653693B2 (en) | 2003-09-05 | 2010-01-26 | Aol Llc | Method and system for capturing instant messages |
US8028130B1 (en) | 2003-07-22 | 2011-09-27 | Oracle America, Inc. | Pipeline structure for a shared memory protocol |
JP2007501809A (ja) * | 2003-08-08 | 2007-02-01 | ユリシーズ・ファーマシューティカル・プロダクツ・インコーポレイテッド | 抗菌剤としてのハロゲン化キナゾリニルニトロフラン |
US20050044301A1 (en) * | 2003-08-20 | 2005-02-24 | Vasilevsky Alexander David | Method and apparatus for providing virtual computing services |
US20050080982A1 (en) * | 2003-08-20 | 2005-04-14 | Vasilevsky Alexander D. | Virtual host bus adapter and method |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US7162476B1 (en) * | 2003-09-11 | 2007-01-09 | Cisco Technology, Inc | System and method for sharing global data within distributed computing systems |
US20060101018A1 (en) * | 2004-11-08 | 2006-05-11 | Mazzagatti Jane C | Method for processing new sequences being recorded into an interlocking trees datastore |
US8516004B2 (en) * | 2003-09-19 | 2013-08-20 | Unisys Corporation | Method for processing K node count fields using an intensity variable |
JP2005115438A (ja) * | 2003-10-03 | 2005-04-28 | Mitsubishi Electric Corp | データ管理装置 |
WO2005036367A2 (en) * | 2003-10-08 | 2005-04-21 | Unisys Corporation | Virtual data center that allocates and manages system resources across multiple nodes |
US20070067366A1 (en) * | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
US7251822B2 (en) * | 2003-10-23 | 2007-07-31 | Microsoft Corporation | System and methods providing enhanced security model |
US7783611B1 (en) | 2003-11-10 | 2010-08-24 | Netapp, Inc. | System and method for managing file metadata during consistency points |
US7401093B1 (en) | 2003-11-10 | 2008-07-15 | Network Appliance, Inc. | System and method for managing file data during consistency points |
US7721062B1 (en) | 2003-11-10 | 2010-05-18 | Netapp, Inc. | Method for detecting leaked buffer writes across file system consistency points |
WO2005050381A2 (en) | 2003-11-13 | 2005-06-02 | Commvault Systems, Inc. | Systems and methods for performing storage operations using network attached storage |
CA2548542C (en) | 2003-11-13 | 2011-08-09 | Commvault Systems, Inc. | System and method for performing a snapshot and for restoring data |
JP4376040B2 (ja) * | 2003-11-27 | 2009-12-02 | 株式会社日立製作所 | 複数のプロセッサを用いて情報処理を行う装置及び方法 |
JP4327585B2 (ja) * | 2003-12-25 | 2009-09-09 | 株式会社東芝 | 記憶装置 |
US7039661B1 (en) | 2003-12-29 | 2006-05-02 | Veritas Operating Corporation | Coordinated dirty block tracking |
US7340471B2 (en) | 2004-01-16 | 2008-03-04 | Unisys Corporation | Saving and restoring an interlocking trees datastore |
JP4141391B2 (ja) * | 2004-02-05 | 2008-08-27 | 株式会社日立製作所 | ストレージサブシステム |
JP2005227922A (ja) * | 2004-02-12 | 2005-08-25 | Yokogawa Electric Corp | プロセス間情報共有システム |
US20050198636A1 (en) * | 2004-02-26 | 2005-09-08 | International Business Machines Corporation | Dynamic optimization of batch processing |
US20050192937A1 (en) * | 2004-02-26 | 2005-09-01 | International Business Machines Corporation | Dynamic query optimization |
US7213103B2 (en) * | 2004-04-22 | 2007-05-01 | Apple Inc. | Accessing data storage systems without waiting for read errors |
US7707179B2 (en) * | 2004-04-23 | 2010-04-27 | Waratek Pty Limited | Multiple computer architecture with synchronization |
US7849452B2 (en) * | 2004-04-23 | 2010-12-07 | Waratek Pty Ltd. | Modification of computer applications at load time for distributed execution |
US7844665B2 (en) * | 2004-04-23 | 2010-11-30 | Waratek Pty Ltd. | Modified computer architecture having coordinated deletion of corresponding replicated memory locations among plural computers |
US20050257219A1 (en) * | 2004-04-23 | 2005-11-17 | Holt John M | Multiple computer architecture with replicated memory fields |
US20050262513A1 (en) * | 2004-04-23 | 2005-11-24 | Waratek Pty Limited | Modified computer architecture with initialization of objects |
US7409494B2 (en) | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
US7430571B2 (en) * | 2004-04-30 | 2008-09-30 | Network Appliance, Inc. | Extension of write anywhere file layout write allocation |
US7409511B2 (en) * | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Cloning technique for efficiently creating a copy of a volume in a storage system |
US7240065B2 (en) * | 2004-05-27 | 2007-07-03 | Oracle International Corporation | Providing mappings between logical time values and real time values |
US7925551B2 (en) * | 2004-06-09 | 2011-04-12 | Syncada Llc | Automated transaction processing system and approach |
US7574386B2 (en) | 2004-06-09 | 2009-08-11 | U.S. Bank National Association | Transaction accounting auditing approach and system therefor |
WO2005124638A2 (en) | 2004-06-09 | 2005-12-29 | U.S. Bancorp Licensing, Inc. | Order-resource fulfillment and management system and approach |
US8762238B2 (en) | 2004-06-09 | 2014-06-24 | Syncada Llc | Recurring transaction processing system and approach |
US7251660B2 (en) | 2004-06-10 | 2007-07-31 | Oracle International Corporation | Providing mappings between logical time values and real time values in a multinode system |
US20050278552A1 (en) * | 2004-06-14 | 2005-12-15 | Vincent Delisle | Secure virtual account |
JP4480479B2 (ja) * | 2004-06-15 | 2010-06-16 | 株式会社日立製作所 | ストレージシステム |
US20050289143A1 (en) | 2004-06-23 | 2005-12-29 | Exanet Ltd. | Method for managing lock resources in a distributed storage system |
US20050289098A1 (en) * | 2004-06-24 | 2005-12-29 | International Business Machines Corporation | Dynamically selecting alternative query access plans |
US7593923B1 (en) | 2004-06-29 | 2009-09-22 | Unisys Corporation | Functional operations for accessing and/or building interlocking trees datastores to enable their use with applications software |
US7693840B1 (en) * | 2004-07-30 | 2010-04-06 | Sprint Communications Company L.P. | Method and system for distribution of common elements |
US7213041B2 (en) * | 2004-10-05 | 2007-05-01 | Unisys Corporation | Saving and restoring an interlocking trees datastore |
US7734753B2 (en) * | 2004-10-12 | 2010-06-08 | International Business Machines Corporation | Apparatus, system, and method for facilitating management of logical nodes through a single management module |
US8152054B2 (en) | 2004-10-19 | 2012-04-10 | The Western Union Company | Money transfer systems and methods |
US7716241B1 (en) | 2004-10-27 | 2010-05-11 | Unisys Corporation | Storing the repository origin of data inputs within a knowledge store |
US7908240B1 (en) | 2004-10-28 | 2011-03-15 | Unisys Corporation | Facilitated use of column and field data for field record universe in a knowledge store |
US7499932B2 (en) * | 2004-11-08 | 2009-03-03 | Unisys Corporation | Accessing data in an interlocking trees data structure using an application programming interface |
US20060101048A1 (en) * | 2004-11-08 | 2006-05-11 | Mazzagatti Jane C | KStore data analyzer |
US7348980B2 (en) * | 2004-11-08 | 2008-03-25 | Unisys Corporation | Method and apparatus for interface for graphic display of data from a Kstore |
US20060100845A1 (en) * | 2004-11-08 | 2006-05-11 | Mazzagatti Jane C | Multiple stream real time data simulation adapted for a KStore data structure |
US20060129709A1 (en) * | 2004-12-09 | 2006-06-15 | International Business Machines Corporation | Multipurpose scalable server communication link |
US20060136508A1 (en) * | 2004-12-16 | 2006-06-22 | Sam Idicula | Techniques for providing locks for file operations in a database management system |
US7627574B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Infrastructure for performing file operations by a database server |
US7548918B2 (en) * | 2004-12-16 | 2009-06-16 | Oracle International Corporation | Techniques for maintaining consistency for different requestors of files in a database management system |
US7716260B2 (en) * | 2004-12-16 | 2010-05-11 | Oracle International Corporation | Techniques for transaction semantics for a database server performing file operations |
US7496787B2 (en) * | 2004-12-27 | 2009-02-24 | Stratus Technologies Bermuda Ltd. | Systems and methods for checkpointing |
US7877703B1 (en) | 2005-03-14 | 2011-01-25 | Seven Networks, Inc. | Intelligent rendering of information in a limited display environment |
US7757056B1 (en) | 2005-03-16 | 2010-07-13 | Netapp, Inc. | System and method for efficiently calculating storage required to split a clone volume |
JP4615344B2 (ja) * | 2005-03-24 | 2011-01-19 | 株式会社日立製作所 | データ処理システム及びデータベースの管理方法 |
US20060222126A1 (en) * | 2005-03-31 | 2006-10-05 | Stratus Technologies Bermuda Ltd. | Systems and methods for maintaining synchronicity during signal transmission |
US20060222125A1 (en) * | 2005-03-31 | 2006-10-05 | Edwards John W Jr | Systems and methods for maintaining synchronicity during signal transmission |
US7409380B1 (en) | 2005-04-07 | 2008-08-05 | Unisys Corporation | Facilitated reuse of K locations in a knowledge store |
US20060230118A1 (en) * | 2005-04-12 | 2006-10-12 | Digi Chain Information Co., Ltd. | Share memory service system and method of web service oriented applications |
US20080065663A1 (en) * | 2005-04-14 | 2008-03-13 | Emc Corporation | Reestablishing process context |
US7657579B2 (en) * | 2005-04-14 | 2010-02-02 | Emc Corporation | Traversing data in a repeatable manner |
US20080065637A1 (en) * | 2005-04-14 | 2008-03-13 | Emc Corporation | Locating last processed data |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US8028299B2 (en) | 2005-04-21 | 2011-09-27 | Waratek Pty, Ltd. | Computer architecture and method of operation for multi-computer distributed processing with finalization of objects |
AU2006239882B2 (en) | 2005-04-25 | 2009-10-29 | Network Appliance, Inc. | System and method for caching network file systems |
EP1875393B1 (de) * | 2005-04-25 | 2015-08-05 | NetApp, Inc. | Architektur zur unterstützung spärlicher volumina |
US8672220B2 (en) | 2005-09-30 | 2014-03-18 | The Western Union Company | Money transfer system and method |
US7392940B2 (en) | 2005-05-18 | 2008-07-01 | The Western Union Company | In-lane money transfer systems and methods |
US7389301B1 (en) | 2005-06-10 | 2008-06-17 | Unisys Corporation | Data aggregation user interface and analytic adapted for a KStore |
WO2006136660A1 (en) | 2005-06-21 | 2006-12-28 | Seven Networks International Oy | Maintaining an ip connection in a mobile network |
US7523146B2 (en) | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
US8495015B2 (en) | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
US7809675B2 (en) | 2005-06-29 | 2010-10-05 | Oracle International Corporation | Sharing state information among a plurality of file operation servers |
US20070022148A1 (en) * | 2005-07-20 | 2007-01-25 | Akers David G | Reserving an area of a storage medium for a file |
US7653682B2 (en) * | 2005-07-22 | 2010-01-26 | Netapp, Inc. | Client failure fencing mechanism for fencing network file system data in a host-cluster environment |
US20070028144A1 (en) * | 2005-07-29 | 2007-02-01 | Stratus Technologies Bermuda Ltd. | Systems and methods for checkpointing |
US7370310B1 (en) * | 2005-08-08 | 2008-05-06 | Xilinx, Inc. | Static address mapping |
TW200707271A (en) * | 2005-08-08 | 2007-02-16 | Benq Corp | Methods and systems for signal display |
US20070038891A1 (en) * | 2005-08-12 | 2007-02-15 | Stratus Technologies Bermuda Ltd. | Hardware checkpointing system |
AU2006303865B2 (en) * | 2005-10-17 | 2011-09-08 | Waratek Pty Limited | Multiple machine architecture with overhead reduction |
US8015236B2 (en) * | 2005-10-25 | 2011-09-06 | Waratek Pty. Ltd. | Replication of objects having non-primitive fields, especially addresses |
US7761670B2 (en) * | 2005-10-25 | 2010-07-20 | Waratek Pty Limited | Modified machine architecture with advanced synchronization |
US20070100828A1 (en) * | 2005-10-25 | 2007-05-03 | Holt John M | Modified machine architecture with machine redundancy |
US7849369B2 (en) * | 2005-10-25 | 2010-12-07 | Waratek Pty Ltd. | Failure resistant multiple computer system and method |
US7660960B2 (en) * | 2005-10-25 | 2010-02-09 | Waratek Pty, Ltd. | Modified machine architecture with partial memory updating |
US7958322B2 (en) * | 2005-10-25 | 2011-06-07 | Waratek Pty Ltd | Multiple machine architecture with overhead reduction |
US20070168720A1 (en) * | 2005-11-30 | 2007-07-19 | Oracle International Corporation | Method and apparatus for providing fault tolerance in a collaboration environment |
US7610304B2 (en) * | 2005-12-05 | 2009-10-27 | Oracle International Corporation | Techniques for performing file operations involving a link at a database management system |
KR100763526B1 (ko) * | 2005-12-12 | 2007-10-04 | 한국전자통신연구원 | 애플리케이션 컨텍스트 관리 장치 및 방법 |
US7617262B2 (en) | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Systems and methods for monitoring application data in a data replication system |
WO2007075846A2 (en) * | 2005-12-19 | 2007-07-05 | Propero Ltd. | Method and system for providing virtualized application workspaces |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US8935429B2 (en) | 2006-12-19 | 2015-01-13 | Vmware, Inc. | Automatically determining which remote applications a user or group is entitled to access based on entitlement specifications and providing remote application access to the remote applications |
US7636743B2 (en) | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
US7962709B2 (en) | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US7651593B2 (en) | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
AU2006331932B2 (en) | 2005-12-19 | 2012-09-06 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US8661216B2 (en) | 2005-12-19 | 2014-02-25 | Commvault Systems, Inc. | Systems and methods for migrating components in a hierarchical storage network |
US7627652B1 (en) | 2006-01-31 | 2009-12-01 | Amazon Technologies, Inc. | Online shared data environment |
US7475077B2 (en) * | 2006-01-31 | 2009-01-06 | International Business Machines Corporation | System and method for emulating a virtual boundary of a file system for data management at a fileset granularity |
US8028133B2 (en) * | 2006-02-22 | 2011-09-27 | Oracle America, Inc. | Globally incremented variable or clock based methods and apparatus to implement parallel transactions |
US20070198979A1 (en) * | 2006-02-22 | 2007-08-23 | David Dice | Methods and apparatus to implement parallel transactions |
US7769395B2 (en) | 2006-06-20 | 2010-08-03 | Seven Networks, Inc. | Location-based operations and messaging |
US20070214153A1 (en) * | 2006-03-10 | 2007-09-13 | Mazzagatti Jane C | Method for processing an input particle stream for creating upper levels of KStore |
US7461289B2 (en) * | 2006-03-16 | 2008-12-02 | Honeywell International Inc. | System and method for computer service security |
US7734571B2 (en) * | 2006-03-20 | 2010-06-08 | Unisys Corporation | Method for processing sensor data within a particle stream by a KStore |
US20080275842A1 (en) * | 2006-03-20 | 2008-11-06 | Jane Campbell Mazzagatti | Method for processing counts when an end node is encountered |
US20070220069A1 (en) * | 2006-03-20 | 2007-09-20 | Mazzagatti Jane C | Method for processing an input particle stream for creating lower levels of a KStore |
US7590660B1 (en) | 2006-03-21 | 2009-09-15 | Network Appliance, Inc. | Method and system for efficient database cloning |
US7689571B1 (en) | 2006-03-24 | 2010-03-30 | Unisys Corporation | Optimizing the size of an interlocking tree datastore structure for KStore |
US8238351B2 (en) * | 2006-04-04 | 2012-08-07 | Unisys Corporation | Method for determining a most probable K location |
US7797670B2 (en) * | 2006-04-14 | 2010-09-14 | Apple Inc. | Mirrored file system |
US7676330B1 (en) | 2006-05-16 | 2010-03-09 | Unisys Corporation | Method for processing a particle using a sensor structure |
US20080010324A1 (en) * | 2006-06-25 | 2008-01-10 | Michael Stebner | System and method for high speed device access |
US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
US20080005719A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, systems, and computer program products for providing a program execution environment |
US20080005728A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment |
US20080005528A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space |
US20080005727A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity |
US20080005752A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for generating application processes by linking applications |
US20080127220A1 (en) * | 2006-06-30 | 2008-05-29 | Robert Paul Morris | Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application |
US8726242B2 (en) | 2006-07-27 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for continuous data replication |
EP2050002A2 (de) * | 2006-08-01 | 2009-04-22 | Massachusetts Institute of Technology | Externer virtueller speicher |
US7860826B2 (en) | 2006-08-04 | 2010-12-28 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
US20080133869A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Redundant multiple computer architecture |
US20080133859A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Advanced synchronization and contention resolution |
US20080120475A1 (en) * | 2006-10-05 | 2008-05-22 | Holt John M | Adding one or more computers to a multiple computer system |
US20080134189A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Job scheduling amongst multiple computers |
US20080120478A1 (en) * | 2006-10-05 | 2008-05-22 | Holt John M | Advanced synchronization and contention resolution |
US20080140805A1 (en) * | 2006-10-05 | 2008-06-12 | Holt John M | Multiple network connections for multiple computers |
US20080155127A1 (en) * | 2006-10-05 | 2008-06-26 | Holt John M | Multi-path switching networks |
US7849151B2 (en) * | 2006-10-05 | 2010-12-07 | Waratek Pty Ltd. | Contention detection |
WO2008040074A1 (en) * | 2006-10-05 | 2008-04-10 | Waratek Pty Limited | Contention detection with data consolidation |
US20080114853A1 (en) * | 2006-10-05 | 2008-05-15 | Holt John M | Network protocol for network communications |
US20080133689A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Silent memory reclamation |
US7949837B2 (en) * | 2006-10-05 | 2011-05-24 | Waratek Pty Ltd. | Contention detection and resolution |
US20080140982A1 (en) * | 2006-10-05 | 2008-06-12 | Holt John M | Redundant multiple computer architecture |
US7894341B2 (en) * | 2006-10-05 | 2011-02-22 | Waratek Pty Ltd. | Switch protocol for network communications |
WO2008040075A1 (en) * | 2006-10-05 | 2008-04-10 | Waratek Pty Limited | Contention detection with modified message format |
WO2008040076A1 (en) * | 2006-10-05 | 2008-04-10 | Waratek Pty Limited | Contention resolution with echo cancellation |
US20080126506A1 (en) * | 2006-10-05 | 2008-05-29 | Holt John M | Multiple computer system with redundancy architecture |
US20100121935A1 (en) * | 2006-10-05 | 2010-05-13 | Holt John M | Hybrid replicated shared memory |
WO2008040069A1 (en) * | 2006-10-05 | 2008-04-10 | Waratek Pty Limited | Hybrid replicated shared memory |
WO2008040084A1 (en) * | 2006-10-05 | 2008-04-10 | Waratek Pty Limited | Cyclic redundant multiple computer architecture |
US20080114896A1 (en) * | 2006-10-05 | 2008-05-15 | Holt John M | Asynchronous data transmission |
US20080126502A1 (en) * | 2006-10-05 | 2008-05-29 | Holt John M | Multiple computer system with dual mode redundancy architecture |
US7739349B2 (en) * | 2006-10-05 | 2010-06-15 | Waratek Pty Limited | Synchronization with partial memory replication |
US20080130652A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Multiple communication networks for multiple computers |
US7734890B2 (en) * | 2006-10-06 | 2010-06-08 | Okralabs Llc | Method and system for using a distributable virtual address space |
US8712884B2 (en) | 2006-10-06 | 2014-04-29 | Syncada Llc | Transaction finance processing system and approach |
KR20090087119A (ko) | 2006-12-06 | 2009-08-14 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 빈 데이터 토큰 지시어를 사용한 저장 장치 내의 데이터 관리 장치, 시스템 및 방법 |
US20080148095A1 (en) * | 2006-12-14 | 2008-06-19 | Motorola, Inc. | Automated memory recovery in a zero copy messaging system |
US8301673B2 (en) * | 2006-12-29 | 2012-10-30 | Netapp, Inc. | System and method for performing distributed consistency verification of a clustered file system |
US7567992B1 (en) * | 2006-12-29 | 2009-07-28 | Unisys Corporation | Replicating of plurality of instances of an object model in memory arrangement using portable object references where each object attribute assigned GUID |
US7657769B2 (en) | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
US7933835B2 (en) | 2007-01-17 | 2011-04-26 | The Western Union Company | Secure money transfer systems and methods using biometric keys associated therewith |
US8818904B2 (en) | 2007-01-17 | 2014-08-26 | The Western Union Company | Generation systems and methods for transaction identifiers having biometric keys associated therewith |
US7814360B2 (en) * | 2007-01-25 | 2010-10-12 | Oralce International Corporation | Synchronizing cluster time to a master node with a faster clock |
US7890456B2 (en) * | 2007-03-08 | 2011-02-15 | Sap Ag | Sharing of database objects |
US8290808B2 (en) | 2007-03-09 | 2012-10-16 | Commvault Systems, Inc. | System and method for automating customer-validated statement of work for a data storage environment |
US8768890B2 (en) * | 2007-03-14 | 2014-07-01 | Microsoft Corporation | Delaying database writes for database consistency |
US8219821B2 (en) | 2007-03-27 | 2012-07-10 | Netapp, Inc. | System and method for signature based data container recognition |
US8504473B2 (en) | 2007-03-28 | 2013-08-06 | The Western Union Company | Money transfer system and messaging system |
US7925829B1 (en) * | 2007-03-29 | 2011-04-12 | Emc Corporation | I/O operations for a storage array |
US7945758B1 (en) * | 2007-03-29 | 2011-05-17 | Emc Corporation | Storage array partitioning |
US7970992B1 (en) * | 2007-03-29 | 2011-06-28 | Emc Corporation | Asymetrical device distribution for a partitioned storage subsystem |
US8316190B2 (en) * | 2007-04-06 | 2012-11-20 | Waratek Pty. Ltd. | Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping |
US7882304B2 (en) * | 2007-04-27 | 2011-02-01 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US7827350B1 (en) | 2007-04-27 | 2010-11-02 | Netapp, Inc. | Method and system for promoting a snapshot in a distributed file system |
US8219749B2 (en) * | 2007-04-27 | 2012-07-10 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US7783571B2 (en) | 2007-05-31 | 2010-08-24 | First Data Corporation | ATM system for receiving cash deposits from non-networked clients |
US8805425B2 (en) | 2007-06-01 | 2014-08-12 | Seven Networks, Inc. | Integrated messaging |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
US20080320282A1 (en) * | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Transaction Support For Executable Program Components |
US20080320459A1 (en) * | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Concurrency Control For Addressable Entities |
US9417934B2 (en) * | 2007-08-31 | 2016-08-16 | Core Wireless Licensing S.A.R.L. | Information distribution in a dynamic multi-device environment |
US9075809B1 (en) * | 2007-09-29 | 2015-07-07 | Symantec Corporation | Methods and systems for application cluster virtual nodes |
US9102962B2 (en) * | 2007-10-16 | 2015-08-11 | Shiu Nan Chen | Production method for solid cultured active mushroom mycelium and fruit-body metabolites (AMFM) products thereof |
US9152817B1 (en) | 2007-10-31 | 2015-10-06 | Symantec Corporation | Methods and systems for performing data protection operations |
US7996636B1 (en) | 2007-11-06 | 2011-08-09 | Netapp, Inc. | Uniquely identifying block context signatures in a storage volume hierarchy |
WO2009060263A1 (en) * | 2007-11-08 | 2009-05-14 | Nokia Corporation | Connectivity architecture for service discovery |
US20090150511A1 (en) | 2007-11-08 | 2009-06-11 | Rna Networks, Inc. | Network with distributed shared memory |
US7797501B2 (en) * | 2007-11-14 | 2010-09-14 | Dell Products, Lp | Information handling system including a logical volume and a cache and a method of using the same |
US20090141692A1 (en) * | 2007-11-30 | 2009-06-04 | Mika Kasslin | Optimized ad hoc networking |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US7925842B2 (en) * | 2007-12-18 | 2011-04-12 | International Business Machines Corporation | Allocating a global shared memory |
US7921261B2 (en) * | 2007-12-18 | 2011-04-05 | International Business Machines Corporation | Reserving a global address space |
US8107921B2 (en) | 2008-01-11 | 2012-01-31 | Seven Networks, Inc. | Mobile virtual network operator |
US8751337B2 (en) | 2008-01-25 | 2014-06-10 | Syncada Llc | Inventory-based payment processing system and approach |
US8862657B2 (en) | 2008-01-25 | 2014-10-14 | Seven Networks, Inc. | Policy based content service |
US20090193338A1 (en) | 2008-01-28 | 2009-07-30 | Trevor Fiatal | Reducing network and battery consumption during content delivery and playback |
US8214604B2 (en) * | 2008-02-01 | 2012-07-03 | International Business Machines Corporation | Mechanisms to order global shared memory operations |
US8200910B2 (en) * | 2008-02-01 | 2012-06-12 | International Business Machines Corporation | Generating and issuing global shared memory operations via a send FIFO |
US8239879B2 (en) * | 2008-02-01 | 2012-08-07 | International Business Machines Corporation | Notification by task of completion of GSM operations at target node |
US8146094B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Guaranteeing delivery of multi-packet GSM messages |
US8255913B2 (en) * | 2008-02-01 | 2012-08-28 | International Business Machines Corporation | Notification to task of completion of GSM operations by initiator node |
US8893126B2 (en) * | 2008-02-01 | 2014-11-18 | International Business Machines Corporation | Binding a process to a special purpose processing element having characteristics of a processor |
US8484307B2 (en) * | 2008-02-01 | 2013-07-09 | International Business Machines Corporation | Host fabric interface (HFI) to perform global shared memory (GSM) operations |
US8275947B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Mechanism to prevent illegal access to task address space by unauthorized tasks |
EP2248309B1 (de) * | 2008-02-27 | 2017-06-21 | Nokia Technologies Oy | Puffersteuerung für multitransportarchitekturen |
CN101971593A (zh) * | 2008-02-27 | 2011-02-09 | 诺基亚公司 | 独立于传输方式的架构 |
DE102008012979A1 (de) * | 2008-03-06 | 2009-09-10 | Gip Ag | Verfahren und Programm zum Bereitstellen von Datenkohärenz in Netzwerken |
US8458285B2 (en) * | 2008-03-20 | 2013-06-04 | Post Dahl Co. Limited Liability Company | Redundant data forwarding storage |
US9203928B2 (en) | 2008-03-20 | 2015-12-01 | Callahan Cellular L.L.C. | Data storage and retrieval |
US8725986B1 (en) | 2008-04-18 | 2014-05-13 | Netapp, Inc. | System and method for volume block number to disk block number mapping |
US8019966B2 (en) * | 2008-06-09 | 2011-09-13 | International Business Machines Corporation | Data sharing utilizing virtual memory having a shared paging space |
US8041877B2 (en) * | 2008-06-09 | 2011-10-18 | International Business Machines Corporation | Distributed computing utilizing virtual memory having a shared paging space |
US8060603B2 (en) * | 2008-06-18 | 2011-11-15 | Qualcomm Incorporated | Persistent personal messaging in a distributed system |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8078158B2 (en) | 2008-06-26 | 2011-12-13 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
US8169856B2 (en) * | 2008-10-24 | 2012-05-01 | Oracle International Corporation | Time synchronization in cluster systems |
US9495382B2 (en) | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
JP4691154B2 (ja) * | 2008-12-22 | 2011-06-01 | 富士通株式会社 | データ管理装置,データ管理システム,データ管理方法およびデータ管理プログラム |
JP5526540B2 (ja) * | 2008-12-25 | 2014-06-18 | 株式会社リコー | 画像処理装置、アクセス制御方法、アクセス制御プログラム |
US8930423B1 (en) * | 2008-12-30 | 2015-01-06 | Symantec Corporation | Method and system for restoring encrypted files from a virtual machine image |
EP2449472A1 (de) * | 2009-07-03 | 2012-05-09 | Jantsch, Axel | Programmierbare steuerung |
KR101689420B1 (ko) | 2009-09-09 | 2016-12-23 | 샌디스크 테크놀로지스 엘엘씨 | 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법 |
US8510334B2 (en) * | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
EP2499576A2 (de) * | 2009-11-13 | 2012-09-19 | Richard S. Anderson | Verteilte symmetrische multiprozessor-datenverabreitungsarchitektur |
US8386715B2 (en) * | 2009-11-30 | 2013-02-26 | Nokia Corporation | Method and apparatus for tile mapping techniques |
US8793288B2 (en) * | 2009-12-16 | 2014-07-29 | Sap Ag | Online access to database snapshots |
US8750845B2 (en) * | 2010-02-24 | 2014-06-10 | Nokia Corporation | Method and apparatus for providing tiles of dynamic content |
US8504517B2 (en) | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
US8352422B2 (en) | 2010-03-30 | 2013-01-08 | Commvault Systems, Inc. | Data restore systems and methods in a replication environment |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
US8489656B2 (en) | 2010-05-28 | 2013-07-16 | Commvault Systems, Inc. | Systems and methods for performing data replication |
BR112012032999B1 (pt) | 2010-06-26 | 2022-11-29 | Virdia, Llc | Hidrolisado lignocelulósico e métodos de hidrólise ácida e desacidificação para gerar misturas de açúcar a partir de lignocelulose |
EP2599003B1 (de) | 2010-07-26 | 2018-07-11 | Seven Networks, LLC | Koordinierung eines mobilnetzwerkverkehrs zwischen mehreren anwendungen |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
US9002911B2 (en) * | 2010-07-30 | 2015-04-07 | International Business Machines Corporation | Fileset masks to cluster inodes for efficient fileset management |
US8417823B2 (en) | 2010-11-22 | 2013-04-09 | Seven Network, Inc. | Aligning data transfer to optimize connections established for transmission over a wireless network |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
WO2012060995A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
WO2012060747A1 (en) | 2010-11-03 | 2012-05-10 | Telefonaktiebolaget L M Ericsson (Publ) | Signalling gateway, method, computer program and computer program product for communication between http and sip |
US8819056B2 (en) | 2010-11-19 | 2014-08-26 | International Business Machines Corporation | Facilitation of search, list, and retrieval operations on persistent data set using distributed shared memory |
GB2500327B (en) | 2010-11-22 | 2019-11-06 | Seven Networks Llc | Optimization of resource polling intervals to satisfy mobile device requests |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
WO2012082792A2 (en) * | 2010-12-13 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for auto-commit memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US8738725B2 (en) | 2011-01-03 | 2014-05-27 | Planetary Data LLC | Community internet drive |
EP2661697B1 (de) | 2011-01-07 | 2018-11-21 | Seven Networks, LLC | System und verfahren zur reduzierung eines mobilnetzwerkverkehrs für domänennamensystem (dns)-anfragen |
US9021198B1 (en) | 2011-01-20 | 2015-04-28 | Commvault Systems, Inc. | System and method for sharing SAN storage |
US9658911B2 (en) * | 2011-03-02 | 2017-05-23 | International Business Machines Corporation | Selecting a directory of a dispersed storage network |
US8316098B2 (en) * | 2011-04-19 | 2012-11-20 | Seven Networks Inc. | Social caching for device resource sharing and management |
GB2504037B (en) | 2011-04-27 | 2014-12-24 | Seven Networks Inc | Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources |
US8621075B2 (en) | 2011-04-27 | 2013-12-31 | Seven Metworks, Inc. | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
WO2013001615A1 (ja) | 2011-06-28 | 2013-01-03 | 富士通株式会社 | データ処理方法およびデータ処理システム |
EP2737741A4 (de) | 2011-07-27 | 2015-01-21 | Seven Networks Inc | Überwachung der aktivitäten von mobilanwendungen für böswilligem verkehr auf einer mobiler vorrichtung |
US9390369B1 (en) | 2011-09-21 | 2016-07-12 | Brain Corporation | Multithreaded apparatus and methods for implementing parallel networks |
EP2789138B1 (de) | 2011-12-06 | 2016-09-14 | Seven Networks, LLC | Mobile vorrichtung und verfahren zum verwenden von failover-mechanismen zur fehlertoleranz für mobilverkehrsverwaltung und zur erhaltung von netzwerk-/vorrichtungs-ressourcen |
US8918503B2 (en) | 2011-12-06 | 2014-12-23 | Seven Networks, Inc. | Optimization of mobile traffic directed to private networks and operator configurability thereof |
EP2788889A4 (de) | 2011-12-07 | 2015-08-12 | Seven Networks Inc | Flexible und dynamische integrationsschemata eines verkehrsverwaltungssystems mit verschiedenen netzwerkbetreibern zur netzwerkverkehrabschwächung |
US9277443B2 (en) | 2011-12-07 | 2016-03-01 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US20130159511A1 (en) | 2011-12-14 | 2013-06-20 | Seven Networks, Inc. | System and method for generating a report to a network operator by distributing aggregation of data |
WO2013090821A1 (en) | 2011-12-14 | 2013-06-20 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
US9135123B1 (en) * | 2011-12-28 | 2015-09-15 | Emc Corporation | Managing global data caches for file system |
GB2499306B (en) | 2012-01-05 | 2014-10-22 | Seven Networks Inc | Managing user interaction with an application on a mobile device |
US9842025B2 (en) | 2012-01-16 | 2017-12-12 | International Business Machines Corporation | Efficient state tracking for clusters |
WO2013116856A1 (en) | 2012-02-02 | 2013-08-08 | Seven Networks, Inc. | Dynamic categorization of applications for network access in a mobile network |
WO2013116852A1 (en) | 2012-02-03 | 2013-08-08 | Seven Networks, Inc. | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
JP5614419B2 (ja) * | 2012-02-29 | 2014-10-29 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US20130268656A1 (en) | 2012-04-10 | 2013-10-10 | Seven Networks, Inc. | Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US11487707B2 (en) * | 2012-04-30 | 2022-11-01 | International Business Machines Corporation | Efficient file path indexing for a content repository |
US9208432B2 (en) | 2012-06-01 | 2015-12-08 | Brain Corporation | Neural network learning and collaboration apparatus and methods |
US9104560B2 (en) * | 2012-06-13 | 2015-08-11 | Caringo, Inc. | Two level addressing in storage clusters |
US9244824B2 (en) * | 2012-07-05 | 2016-01-26 | Samsung Electronics Co., Ltd. | Memory sub-system and computing system including the same |
WO2014011216A1 (en) | 2012-07-13 | 2014-01-16 | Seven Networks, Inc. | Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications |
US9852073B2 (en) | 2012-08-07 | 2017-12-26 | Dell Products L.P. | System and method for data redundancy within a cache |
US9495301B2 (en) | 2012-08-07 | 2016-11-15 | Dell Products L.P. | System and method for utilizing non-volatile memory in a cache |
US9549037B2 (en) | 2012-08-07 | 2017-01-17 | Dell Products L.P. | System and method for maintaining solvency within a cache |
US9292569B2 (en) | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US9307493B2 (en) | 2012-12-20 | 2016-04-05 | Seven Networks, Llc | Systems and methods for application management of mobile device radio state promotion and demotion |
US8935800B2 (en) * | 2012-12-31 | 2015-01-13 | Intel Corporation | Enhanced security for accessing virtual memory |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9262435B2 (en) | 2013-01-11 | 2016-02-16 | Commvault Systems, Inc. | Location-based data synchronization management |
US9251002B2 (en) | 2013-01-15 | 2016-02-02 | Stratus Technologies Bermuda Ltd. | System and method for writing checkpointing data |
US9241314B2 (en) | 2013-01-23 | 2016-01-19 | Seven Networks, Llc | Mobile device with application or context aware fast dormancy |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US8750123B1 (en) | 2013-03-11 | 2014-06-10 | Seven Networks, Inc. | Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network |
US9679084B2 (en) | 2013-03-14 | 2017-06-13 | Oracle International Corporation | Memory sharing across distributed nodes |
US9317472B2 (en) * | 2013-06-07 | 2016-04-19 | International Business Machines Corporation | Processing element data sharing |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US9262415B2 (en) * | 2013-11-08 | 2016-02-16 | Sybase, Inc. | Cache efficiency in a shared disk database cluster |
CN104750614B (zh) * | 2013-12-26 | 2018-04-10 | 伊姆西公司 | 用于管理存储器的方法和装置 |
WO2015102874A2 (en) | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Method of delaying checkpoints by inspecting network packets |
WO2015102875A1 (en) | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Checkpointing systems and methods of using data forwarding |
US9652338B2 (en) | 2013-12-30 | 2017-05-16 | Stratus Technologies Bermuda Ltd. | Dynamic checkpointing systems and methods |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US20150261677A1 (en) * | 2014-03-12 | 2015-09-17 | Silicon Graphics International Corp. | Apparatus and Method of Resolving Protocol Conflicts in an Unordered Network |
US9898414B2 (en) | 2014-03-28 | 2018-02-20 | Oracle International Corporation | Memory corruption detection support for distributed shared memory applications |
CN104980454B (zh) * | 2014-04-02 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 一种资源数据共享方法、服务器及系统 |
EP3126984A4 (de) | 2014-04-03 | 2017-10-11 | Strato Scale Ltd. | Clusterweite speicherverwaltung unter verwendung von ähnlichkeitsbewahrenden signaturen |
US9342346B2 (en) | 2014-07-27 | 2016-05-17 | Strato Scale Ltd. | Live migration of virtual machines that use externalized memory pages |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US9390028B2 (en) | 2014-10-19 | 2016-07-12 | Strato Scale Ltd. | Coordination between memory-saving mechanisms in computers that run virtual machines |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US9524328B2 (en) | 2014-12-28 | 2016-12-20 | Strato Scale Ltd. | Recovery synchronization in a distributed storage system |
US9912748B2 (en) | 2015-01-12 | 2018-03-06 | Strato Scale Ltd. | Synchronization of snapshots in a distributed storage system |
US10061743B2 (en) | 2015-01-27 | 2018-08-28 | International Business Machines Corporation | Host based non-volatile memory clustering using network mapped storage |
EP3251020A4 (de) * | 2015-01-30 | 2018-02-07 | Hewlett-Packard Enterprise Development LP | Speichergesteuerte out-of-band-verwaltung |
EP3126987A4 (de) | 2015-02-26 | 2017-11-22 | Strato Scale Ltd. | Verwendung von zugangsfrequenzhierarchie zur auswahl eines entfernungszielorts |
WO2016183795A1 (en) | 2015-05-19 | 2016-11-24 | Guangzhou Ucweb Computer Technology Co., Ltd. | Method, apparatus for loading a resource in a web page on a device |
JP2017004469A (ja) * | 2015-06-16 | 2017-01-05 | 富士通株式会社 | 基地局装置、処理方法、プログラム、無線通信システム、及び、基地局処理カード |
KR102397582B1 (ko) * | 2015-06-22 | 2022-05-13 | 삼성전자주식회사 | 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 이의 작동 방법 |
US10013551B2 (en) * | 2015-08-24 | 2018-07-03 | Accenture Global Services Limited | Isolated memory space |
CN106557477B (zh) * | 2015-09-24 | 2020-05-19 | 伊姆西Ip控股有限责任公司 | 在存储器中锁定文件的方法和设备 |
US11038960B1 (en) | 2015-10-20 | 2021-06-15 | Amazon Technologies, Inc. | Stream-based shared storage system |
US10423608B2 (en) * | 2015-10-26 | 2019-09-24 | International Business Machines Corporation | Dynamic directory of objects based on logical attributes |
US10942864B2 (en) * | 2015-11-20 | 2021-03-09 | Hewlett Packard Enterprise Development Lp | Shared memory for distributed data |
CA3006776A1 (en) * | 2015-12-08 | 2017-06-15 | Ultrata, Llc. | Memory fabric operations and coherency using fault tolerant objects |
CN106952085B (zh) * | 2016-01-06 | 2021-06-25 | 创新先进技术有限公司 | 一种数据存储与业务处理的方法及装置 |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US9507532B1 (en) * | 2016-05-20 | 2016-11-29 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices |
US10241906B1 (en) * | 2016-07-30 | 2019-03-26 | EMC IP Holding Company LLC | Memory subsystem to augment physical memory of a computing system |
JP2018025983A (ja) * | 2016-08-10 | 2018-02-15 | ルネサスエレクトロニクス株式会社 | 半導体装置及びその制御方法 |
DE112016007293T5 (de) * | 2016-09-30 | 2019-06-19 | Intel Corporation | Objektkohärenz in verteilten gemeinsamen Speichersystemen |
US11157422B2 (en) * | 2017-03-31 | 2021-10-26 | Intel Corporation | Shared memory for intelligent network interface cards |
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10268408B2 (en) * | 2017-08-28 | 2019-04-23 | Vmware, Inc. | Flexible efficient runtime placement of data across multiple disks |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
FR3076003B1 (fr) * | 2017-12-27 | 2021-01-22 | Bull Sas | Acces multiples a un fichier de donnees stocke dans un systeme de stockage de donnees associe a un espace memoire tampon |
US10467139B2 (en) | 2017-12-29 | 2019-11-05 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
US10452547B2 (en) | 2017-12-29 | 2019-10-22 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US11416395B2 (en) | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US10891239B2 (en) | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
US10880401B2 (en) * | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
US10740022B2 (en) | 2018-02-14 | 2020-08-11 | Commvault Systems, Inc. | Block-level live browsing and private writable backup copies using an ISCSI server |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
US11816043B2 (en) | 2018-06-25 | 2023-11-14 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of I/O requests |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
US10877892B2 (en) | 2018-07-11 | 2020-12-29 | Micron Technology, Inc. | Predictive paging to accelerate memory access |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
US10747673B2 (en) * | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
JP6922879B2 (ja) | 2018-11-30 | 2021-08-18 | 日本電気株式会社 | 通信装置、情報処理システム、および通信方法 |
US10769018B2 (en) | 2018-12-04 | 2020-09-08 | Alibaba Group Holding Limited | System and method for handling uncorrectable data errors in high-capacity storage |
US11734192B2 (en) * | 2018-12-10 | 2023-08-22 | International Business Machines Corporation | Identifying location of data granules in global virtual address space |
US11016908B2 (en) | 2018-12-11 | 2021-05-25 | International Business Machines Corporation | Distributed directory of named data elements in coordination namespace |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US10860420B2 (en) | 2019-02-05 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for mitigating read disturb impact on persistent memory |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
US10970212B2 (en) | 2019-02-15 | 2021-04-06 | Alibaba Group Holding Limited | Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones |
US11061834B2 (en) | 2019-02-26 | 2021-07-13 | Alibaba Group Holding Limited | Method and system for facilitating an improved storage system by decoupling the controller from the storage medium |
US10783035B1 (en) | 2019-02-28 | 2020-09-22 | Alibaba Group Holding Limited | Method and system for improving throughput and reliability of storage media with high raw-error-rate |
US10891065B2 (en) | 2019-04-01 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
US11487674B2 (en) * | 2019-04-17 | 2022-11-01 | Rankin Labs, Llc | Virtual memory pool within a network which is accessible from multiple platforms |
US11157184B2 (en) * | 2019-04-30 | 2021-10-26 | EMC IP Holding Company LLC | Host access to storage system metadata |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
WO2020243244A1 (en) | 2019-05-28 | 2020-12-03 | John Rankin | Supporting a virtual memory area at a remote computing machine |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11074124B2 (en) | 2019-07-23 | 2021-07-27 | Alibaba Group Holding Limited | Method and system for enhancing throughput of big data analysis in a NAND-based read source storage |
US11042318B2 (en) | 2019-07-29 | 2021-06-22 | Commvault Systems, Inc. | Block-level data replication |
US10909033B1 (en) * | 2019-08-15 | 2021-02-02 | Nvidia Corporation | Techniques for efficiently partitioning memory |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US10997019B1 (en) | 2019-10-31 | 2021-05-04 | Alibaba Group Holding Limited | System and method for facilitating high-capacity system memory adaptive to high-error-rate and low-endurance media |
CN111061724B (zh) * | 2019-11-08 | 2023-11-14 | 珠海许继芝电网自动化有限公司 | 用于配电自动化系统的高速实时数据库管理方法和装置 |
US11200159B2 (en) | 2019-11-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating efficient utilization of NAND flash memory |
US11119847B2 (en) | 2019-11-13 | 2021-09-14 | Alibaba Group Holding Limited | System and method for improving efficiency and reducing system resource consumption in a data integrity check |
US20210201392A1 (en) * | 2019-12-31 | 2021-07-01 | Snap Inc. | Auction system for augmented reality experiences in a messaging system |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11809421B2 (en) | 2020-07-23 | 2023-11-07 | II Craig Ken Yamato | System and method for data analytics |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11507512B2 (en) * | 2020-12-08 | 2022-11-22 | EMC IP Holding Company LLC | Fault tolerant cluster data handling |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4096567A (en) * | 1976-08-13 | 1978-06-20 | Millard William H | Information storage facility with multiple level processors |
US4426688A (en) * | 1981-08-03 | 1984-01-17 | Ncr Corporation | Memory system having an alternate memory |
US4868738A (en) * | 1985-08-15 | 1989-09-19 | Lanier Business Products, Inc. | Operating system independent virtual memory computer system |
US4710926A (en) * | 1985-12-27 | 1987-12-01 | American Telephone And Telegraph Company, At&T Bell Laboratories | Fault recovery in a distributed processing system |
US4933846A (en) * | 1987-04-24 | 1990-06-12 | Network Systems Corporation | Network communications adapter with dual interleaved memory banks servicing multiple processors |
US5226039A (en) * | 1987-12-22 | 1993-07-06 | Kendall Square Research Corporation | Packet routing switch |
US5335325A (en) * | 1987-12-22 | 1994-08-02 | Kendall Square Research Corporation | High-speed packet switching apparatus and method |
US5251308A (en) * | 1987-12-22 | 1993-10-05 | Kendall Square Research Corporation | Shared memory multiprocessor with data hiding and post-store |
US5341483A (en) * | 1987-12-22 | 1994-08-23 | Kendall Square Research Corporation | Dynamic hierarchial associative memory |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5119481A (en) * | 1987-12-22 | 1992-06-02 | Kendall Square Research Corporation | Register bus multiprocessor system with shift |
US5282201A (en) * | 1987-12-22 | 1994-01-25 | Kendall Square Research Corporation | Dynamic packet routing network |
US5077736A (en) * | 1988-06-28 | 1991-12-31 | Storage Technology Corporation | Disk drive memory |
US5117350A (en) * | 1988-12-15 | 1992-05-26 | Flashpoint Computer Corporation | Memory address mechanism in a distributed memory architecture |
US4934764A (en) * | 1989-03-31 | 1990-06-19 | Kendall Square Research Corporation | Computer system module assembly |
US5551035A (en) * | 1989-06-30 | 1996-08-27 | Lucent Technologies Inc. | Method and apparatus for inter-object communication in an object-oriented program controlled system |
IT1239122B (it) * | 1989-12-04 | 1993-09-28 | Bull Hn Information Syst | Sistema multiprocessore a risorse distribuite con replicazione dinamica di dati globali |
EP0447736B1 (de) * | 1990-03-19 | 1995-09-27 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür |
EP0472829A3 (en) * | 1990-08-31 | 1993-01-07 | International Business Machines Corporation | Multicomputer complex and distributed shared data memory |
US5333315A (en) * | 1991-06-27 | 1994-07-26 | Digital Equipment Corporation | System of device independent file directories using a tag between the directories and file descriptors that migrate with the files |
US5430850A (en) * | 1991-07-22 | 1995-07-04 | Massachusetts Institute Of Technology | Data processing system with synchronization coprocessor for multiple threads |
US5313647A (en) * | 1991-09-20 | 1994-05-17 | Kendall Square Research Corporation | Digital data processor with improved checkpointing and forking |
US5245563A (en) * | 1991-09-20 | 1993-09-14 | Kendall Square Research Corporation | Fast control for round unit |
US5313626A (en) * | 1991-12-17 | 1994-05-17 | Jones Craig S | Disk drive array with efficient background rebuilding |
US5423037A (en) * | 1992-03-17 | 1995-06-06 | Teleserve Transaction Technology As | Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes |
JPH0619785A (ja) * | 1992-03-27 | 1994-01-28 | Matsushita Electric Ind Co Ltd | 分散共有仮想メモリーとその構成方法 |
US5452447A (en) * | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
US5394555A (en) * | 1992-12-23 | 1995-02-28 | Bull Hn Information Systems Inc. | Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory |
US5493728A (en) * | 1993-02-19 | 1996-02-20 | Borland International, Inc. | System and methods for optimized access in a multi-user environment |
JPH06290096A (ja) * | 1993-03-31 | 1994-10-18 | Matsushita Electric Ind Co Ltd | パス名解決装置 |
US5390326A (en) * | 1993-04-30 | 1995-02-14 | The Foxboro Company | Local area network with fault detection and recovery |
US5408649A (en) * | 1993-04-30 | 1995-04-18 | Quotron Systems, Inc. | Distributed data access system including a plurality of database access processors with one-for-N redundancy |
FI97594C (fi) * | 1993-07-05 | 1997-01-10 | Nokia Telecommunications Oy | Aikajakoinen monikäyttöradiojärjestelmä, menetelmä kapasiteetin jakamiseksi solun sisällä sekä menetelmä solun sisäisen handoverin suorittamiseksi |
US5617537A (en) * | 1993-10-05 | 1997-04-01 | Nippon Telegraph And Telephone Corporation | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
WO1995011508A1 (fr) * | 1993-10-18 | 1995-04-27 | Sony Corporation | Procede de gestion d'informations, support d'enregistrement de donnees, procede d'enregistrement de donnees, procede et dispositif d'extraction d'informations |
US5495607A (en) * | 1993-11-15 | 1996-02-27 | Conner Peripherals, Inc. | Network management system having virtual catalog overview of files distributively stored across network domain |
US5560027A (en) * | 1993-12-15 | 1996-09-24 | Convex Computer Corporation | Scalable parallel processing systems wherein each hypernode has plural processing modules interconnected by crossbar and each processing module has SCI circuitry for forming multi-dimensional network with other hypernodes |
US5689700A (en) * | 1993-12-29 | 1997-11-18 | Microsoft Corporation | Unification of directory service with file system services |
US5701462A (en) * | 1993-12-29 | 1997-12-23 | Microsoft Corporation | Distributed file system providing a unified name space with efficient name resolution |
US5588147A (en) * | 1994-01-14 | 1996-12-24 | Microsoft Corporation | Replication facility |
US5519855A (en) * | 1994-01-14 | 1996-05-21 | Microsoft Corporation | Summary catalogs |
US5490272A (en) * | 1994-01-28 | 1996-02-06 | International Business Machines Corporation | Method and apparatus for creating multithreaded time slices in a multitasking operating system |
SE515344C2 (sv) * | 1994-02-08 | 2001-07-16 | Ericsson Telefon Ab L M | Distribuerat databassystem |
US5812533A (en) * | 1994-02-28 | 1998-09-22 | British Telecommunications Public Limited Company | Service provision in communications networks |
WO1995025306A2 (en) * | 1994-03-14 | 1995-09-21 | Stanford University | Distributed shared-cache for multi-processors |
EP0678812A1 (de) * | 1994-04-20 | 1995-10-25 | Microsoft Corporation | Replikationsüberprüfung |
JP3454947B2 (ja) * | 1994-06-07 | 2003-10-06 | 富士通株式会社 | パーソナル通信サービス分散制御システム |
US5566328A (en) * | 1995-01-23 | 1996-10-15 | Tandem Computers Incorporated | Reconstructing directory pathnames from file handles in a computer system |
US5513314A (en) * | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
US5978577A (en) * | 1995-03-17 | 1999-11-02 | Csg Systems, Inc. | Method and apparatus for transaction processing in a distributed database system |
JP3889044B2 (ja) * | 1995-05-05 | 2007-03-07 | シリコン、グラフィクス、インコーポレイテッド | 不均一メモリ・アクセス(numa)システムにおけるページ移動 |
US5675723A (en) * | 1995-05-19 | 1997-10-07 | Compaq Computer Corporation | Multi-server fault tolerance using in-band signalling |
US5687308A (en) * | 1995-06-07 | 1997-11-11 | Tandem Computers Incorporated | Method to improve tolerance of non-homogeneous power outages |
US5781537A (en) * | 1995-07-07 | 1998-07-14 | International Business Machines Corporation | Setting up, taking down and maintaining connections in a communications network |
US5805785A (en) * | 1996-02-27 | 1998-09-08 | International Business Machines Corporation | Method for monitoring and recovery of subsystems in a distributed/clustered system |
US5906658A (en) * | 1996-03-19 | 1999-05-25 | Emc Corporation | Message queuing on a data storage system utilizing message queuing in intended recipient's queue |
US5768510A (en) * | 1996-07-01 | 1998-06-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server application enabler system |
US5812773A (en) * | 1996-07-12 | 1998-09-22 | Microsoft Corporation | System and method for the distribution of hierarchically structured data |
US5805786A (en) * | 1996-07-23 | 1998-09-08 | International Business Machines Corporation | Recovery of a name server managing membership of a domain of processors in a distributed computing environment |
US6496865B1 (en) * | 1997-03-12 | 2002-12-17 | Novell, Inc. | System and method for providing interpreter applications access to server resources in a distributed network |
US6279151B1 (en) * | 1998-01-20 | 2001-08-21 | International Business Machines Corporation | Method and apparatus for remote source code inclusion |
US6510450B1 (en) * | 1999-02-04 | 2003-01-21 | Novell, Inc. | Multiple storage class distributed nametags for locating items in a distributed computing system |
-
1996
- 1996-11-22 US US08/754,481 patent/US6148377A/en not_active Expired - Lifetime
-
1997
- 1997-03-28 US US08/827,534 patent/US5918229A/en not_active Expired - Lifetime
- 1997-11-20 CA CA002221874A patent/CA2221874C/en not_active Expired - Fee Related
- 1997-11-21 JP JP52394698A patent/JP2001506022A/ja not_active Ceased
- 1997-11-21 JP JP9337986A patent/JPH10254761A/ja active Pending
- 1997-11-21 WO PCT/US1997/021466 patent/WO1998022892A1/en active IP Right Grant
- 1997-11-21 DE DE69722962T patent/DE69722962T2/de not_active Expired - Fee Related
- 1997-11-21 AT AT97949572T patent/ATE243336T1/de not_active IP Right Cessation
- 1997-11-21 EP EP97949572A patent/EP0978069B1/de not_active Expired - Lifetime
- 1997-11-21 AU AU73035/98A patent/AU7303598A/en not_active Abandoned
- 1997-11-21 EP EP97309471A patent/EP0844559A3/de not_active Withdrawn
- 1997-11-21 WO PCT/US1997/021457 patent/WO1998022874A1/en active Application Filing
- 1997-11-21 AU AU73030/98A patent/AU7303098A/en not_active Abandoned
-
2008
- 2008-06-23 US US12/144,508 patent/US20080256090A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US6148377A (en) | 2000-11-14 |
EP0978069A1 (de) | 2000-02-09 |
US20080256090A1 (en) | 2008-10-16 |
WO1998022892A1 (en) | 1998-05-28 |
CA2221874A1 (en) | 1998-05-22 |
EP0844559A2 (de) | 1998-05-27 |
CA2221874C (en) | 2006-08-15 |
JPH10254761A (ja) | 1998-09-25 |
AU7303598A (en) | 1998-06-10 |
DE69722962D1 (de) | 2003-07-24 |
EP0844559A3 (de) | 1998-06-10 |
EP0978069B1 (de) | 2003-06-18 |
US5918229A (en) | 1999-06-29 |
AU7303098A (en) | 1998-06-10 |
JP2001506022A (ja) | 2001-05-08 |
ATE243336T1 (de) | 2003-07-15 |
WO1998022874A1 (en) | 1998-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69722962T2 (de) | Strukturiertes datenspeichersystem mit global adressierbarem speicher | |
DE69724834T2 (de) | System für hochverfügbare datenspeicherung mit allgemein-adressiertem speicher | |
DE69838367T2 (de) | Paralleles Dateiensystem und Verfahren zur unabhängigen Aufzeichnung von Metadaten | |
DE69833914T2 (de) | Architektur eines Multiprozessorrechners mit mehreren Betriebssysteminstanzen und softwaregesteuerter Betriebsmittelzuteilung | |
DE602005001041T2 (de) | Speicherauszugssystem | |
US6026474A (en) | Shared client-side web caching using globally addressable memory | |
DE69719564T2 (de) | Dynamischer dateiverzeichnisdienst | |
DE69728176T2 (de) | Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt | |
DE69531513T2 (de) | Vervielfältigungssystem | |
DE69635469T2 (de) | Synchronisierung zwischen verschiedenen Computeranbieterumgebungen | |
DE60111072T2 (de) | Verfahren und vorrichtung zur parallelen nachrichtenübermittlung in echtzeit von dateisegmentierten | |
DE602005002668T2 (de) | Verfahren zur Datenspeicherungskapazitätzuweisung und Verwaltung unter Verwendung eines oder mehreren Datenspeicherungslaufwerken | |
DE60025749T2 (de) | Dateisystemabbildübertragung zwischen ungleichen dateisystemen | |
DE102004013114B4 (de) | Plattenarrayvorrichtung | |
DE60008021T2 (de) | Speicherverwaltungssystem mit gemeinsamen trägerverwalter | |
DE10393771T5 (de) | Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD) | |
DE10055603B4 (de) | Verfahren zum Zugriff auf eine Datei in einer Vielzahl von Datenspeicherbibliotheken und Datenspeicherbibliothek-System | |
DE102020120553A1 (de) | Virtuell persistente volumes für containerisierte anwendungen | |
DE602005004166T2 (de) | Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen | |
DE112017005868T5 (de) | Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem | |
DE102021125179A1 (de) | Erzeugen und bereitstellen von containerabbildern | |
DE4221073A1 (de) | Datenspeichersystem und -verfahren mit geraeteunabhaengigen dateiverzeichnissen | |
DE112009000411T5 (de) | Verfahren und System zum Implementieren eines virtuellen Speicherpools in einer virtuellen Umgebung | |
DE202014010953U1 (de) | Gruppierung von Objekten in einem verteilten Datenspeichersystem basierend auf Protokollen und Platzierungsrichtlinien | |
DE102021108572A1 (de) | Containerisierte anwendungsmanifeste und virtuelle persistente volumes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |