DE69722962T2 - Strukturiertes datenspeichersystem mit global adressierbarem speicher - Google Patents

Strukturiertes datenspeichersystem mit global adressierbarem speicher Download PDF

Info

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
Application number
DE69722962T
Other languages
English (en)
Other versions
DE69722962D1 (de
Inventor
H. Scott DAVIS
B. John CARTER
J. Steven FRANK
J. Daniel DIETTERICH
H. Hsin LEE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mangosoft Corp
Original Assignee
Mangosoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25034985&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69722962(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Mangosoft Corp filed Critical Mangosoft Corp
Publication of DE69722962D1 publication Critical patent/DE69722962D1/de
Application granted granted Critical
Publication of DE69722962T2 publication Critical patent/DE69722962T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0721Error 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/0724Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2043Error 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

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 aus 1, 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 aus 2 geeignet ist.
  • 4 zeigt ein Diagramm eines zur Verwendung mit dem Dateisystem aus 2 geeigneten Inoden.
  • 5 zeigt ein verteiltes gemeinsam verwendetes Speicher-Computernetzwerk.
  • 6 zeigt ein Funktionsblockdiagramm, in dem ein verteiltes gemeinsam verwendetes Speicher-Computernetzwerk des in 5 dargestellten Typs in weiteren Einzelheiten dargestellt ist.
  • 7 zeigt in weiteren Einzelheiten ein gemeinsam verwendetes Speicheruntersystem, das zum Einsatz mit dem in 6 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 in 8 dargestellten Typs bereitgestellt werden kann.
  • 10 zeigt ein Verzeichnis, das innerhalb eines gemeinsam verwendeten Speichers verteilt werden kann und aus Verzeichnisseiten des in 9 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 System 10 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 Netzwerksystem 10 gemäß der Erfindung eine Mehrzahl von Netzwerkknoten 12a12d und einen adressierbaren gemeinsam verwendeten Speicherplatz 20 aufweist, wobei der gemeinsam verwendete Speicherplatz 20 einen Abschnitt 22 zum Speichern eines strukturierten Datenspeichers 28 aufweist. Jeder der Knoten 12a12d kann mehrere Unterelemente aufweisen. Beispielsweise weist der Knoten 12a einen Prozessor 30a, ein Datensteuerprogramm 32a und ein gemeinsam verwendetes Speicheruntersystem 34a auf. Bei der offenbarten Ausführungsform weisen zwei der Knoten 12a und 12c Bildschirme auf, die Anzeigen 40 und 42 bereitstellen, die den strukturierten Datenspeicher 28 innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes 20 graphisch darstellen. Der adressierbare gemeinsam verwendete Speicherplatz 20 verbindet alle Netzwerkknoten 12a12d miteinander und bietet jedem der Knoten 12a12d einen Zugriff auf den im adressierbaren gemeinsam verwendeten Speicherplatz 20 enthaltenen strukturierten Datenspeicher 28.
  • Ein erfindungsgemäßes System 10 kann unter anderem jeden Netzwerkknoten 12a12d mit einer geteilten Steuerung des strukturierten Datenspeichers 28 versehen, und das System 10 kann daher die Steuerung des Datenspeichers über die Knoten des Netzwerks verteilen. Hierzu weist jeder Knoten des Systems 10 in der Art des Knotens 12a ein Datensteuerprogramm 32a auf, das mit einem gemeinsam verwendeten Speicheruntersystem 34a verknüpft ist. Das Datensteuerprogramm 32a 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 Datensteuerprogramms 32a kann das gemeinsam verwendete Speicheruntersystem 34a auf Daten innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes 20 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 System 10 innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes 20 einen strukturierten Datenspeicher 28 betreibt. Jeder der Knoten 12a12d kann über die gemeinsam verwendeten Speicheruntersysteme 34a34d auf den adressierbaren gemeinsam verwendeten Speicherplatz 20 zugreifen. Jedes der gemeinsam verwendeten Speicheruntersysteme 34a34d bietet seinem Knoten einen Zugriff auf den adressierbaren gemeinsam verwendeten Speicherplatz 20. Die gemeinsam verwendeten Speicheruntersysteme 34a34d koordinieren jede der Speicherzugriffsoperationen des jeweiligen Knotens, um einen Zugriff auf die gewünschten Daten bereitzustellen und innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes 20 die Datenkohärenz zu erhalten. Dies ermöglicht es, daß die miteinander verbundenen Knoten 12a12d den adressierbaren gemeinsam verwendeten Speicherplatz 20 als einen Platz zum Speichern und Abrufen von Daten verwenden. Wenigstens ein Abschnitt des adressierbaren gemeinsam verwendeten Speicherplatzes 20 wird durch ein physikalisches Speichersystem unterstützt, das einen permanenten Datenspeicher bereitstellt. Beispielsweise kann ein Abschnitt des adressierbaren gemeinsam verwendeten Speicherplatzes 20 einem oder mehreren Festplattenlaufwerken, die sich auf dem Netzwerk befinden oder einem oder mehreren der Netzwerkknoten 12a12d als lokaler Festplattenspeicher für diese bestimmten Knoten zugeordnet sind, zugewiesen werden oder darauf abgebildet werden. Demgemäß zeigt 1 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 12a12d sein jeweiliges gemeinsam verwendetes Speicheruntersystem als eine Speichervorrichtung verwenden kann, die einen permanenten Datenspeicher bereitstellt.
  • Jedes der Datensteuerprogramme 32a32d ist ein Softwaremodul, das in einer Weise mit dem jeweiligen gemeinsam verwendeten Speicheruntersystem 34a34d gekoppelt ist, das in ähnlicher Weise wie eine Schnittstelle zwischen einem herkömmlichen Datenspeicherprogramm und einer lokalen Speichervorrichtung arbeitet. Beispielsweise kann das Datensteuerprogramm 32a Daten zu dem gemeinsam verwendeten Speicheruntersystem 34a leiten und Daten von diesem aufnehmen. Weil die gemeinsam verwendeten Speicheruntersysteme die Speicherzugriffe auf den adressierbaren gemeinsam verwendeten Speicherplatz 20 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 Datensteuerprogramme 32a32d eine Peer-Ausgestaltung (also eine Instanz bzw. Ausprägung) sein, die an einem anderen der Netzwerkknoten 12a12d vorhanden ist und das jeweilige gemeinsam verwendete Speicheruntersystem 34a34d als eine lokale Speichervorrichtung in der Art einer lokalen Festplatte behandeln kann.
  • Eines oder mehrere der Datensteuerprogramme 32a32d kann eine graphische Benutzerschnittstelle 42 bereitstellen, die den innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes 20 enthaltenen strukturierten Datenspeicher 28 graphisch darstellt. Die graphische Benutzerschnittstelle 42 ermöglicht es einem Benutzer an einem Knoten, beispielsweise an einem Knoten 12a, Datenobjekte graphisch innerhalb des strukturierten Datenspeichers 28 einzufügen. Hierzu kann das Datensteuerprogramm 32a einen Befehlssatz erzeugen, der dem gemeinsam verwendeten Speicheruntersystem 34a einen Datenstrom zuführt, und das gemeinsam verwendete Speicheruntersystem 34a verwendet den Datenstrom zum Speichern eines Objekts innerhalb des strukturierten Datenspeichers 28. In ähnlicher Weise können die anderen gemeinsam verwendeten Speicheruntersysteme 34b34d ihren jeweiligen Knoten Informationen zuführen, die diese Änderung an dem strukturierten Datenspeicher 28 angeben. Dementsprechend reflektiert dieser Knoten (der eine graphische Benutzerschnittstelle 40 aufweist), wie in 1 nur der Einfachheit halber für den Knoten 12c dargestellt ist, die vom Datensteuerprogramm 32a des Knotens 12a bewirkte Änderung am strukturierten Datenspeicher 28. Insbesondere kann die graphische Benutzerschnittstelle 40 des Knotens 12c einem Benutzer zeigen, daß ein Objekt in den strukturierten Datenspeicher 28 gegeben wird. Beispielsweise enthält der adressierbare gemeinsam verwendete Speicherplatz 20 auch die Datenobjekte 50a50c, die in den strukturierten Datenspeicher 28 gegeben werden können, um Teil dieses strukturierten Datenspeichers zu werden. Wie dargestellt ist, kann ein Systembenutzer am Knoten 12a vorschreiben, daß ein Objekt 50a an einer festgelegten Stelle innerhalb des Datenspeichers 28 eingefügt wird. Das Datensteuerprogramm 32a schreibt dem gemeinsam verwendeten Speicheruntersystem 34a dann vor, das Objekt 50a an der geeigneten Stelle in den Datenspeicher 28 zu geben. Weiterhin erfaßt das gemeinsam verwendete Speicheruntersystem 34c am Knoten 12c die Änderung innerhalb des Datenspeichers 28 und reflektiert diese Änderung innerhalb der graphischen Benutzerschnittstelle 40.
  • Mit Bezug auf 2 sei bemerkt, daß ein strukturiertes Dateisystem 60 eine spezielle Ausführungsform gemäß der Erfindung ist, bei der die Eigenschaften des adressierbaren gemeinsam verwendeten Speicherplatzes 20 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 Speicherplatz 20 gekoppelten Netzwerkknoten umfaßt.
  • Das Dateisystem 60 aus 2 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 Dateisystem 60 gemäß der Erfindung die Abbildung einer Verzeichnis- und Dateistruktur auf ein verteiltes, adressierbares gemeinsam verwendetes Speichersystem 20, 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 Dateisystem 60 gemäß der Erfindung Peer-Knoten, die jeweils eine Ausgestaltung oder Ausprägung desselben Datensteuerprogramms aufweisen. Weiterhin führt das Dateisystem 60 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 Dateisystem 60 teilweise innerhalb des adressierbaren gemeinsam verwendeten Speicherplatzes 20 vorhanden ist und einen strukturierten Datenspeicher 62, eine Über-Wurzel 64, Dateisätze 6674, einen Verzeichniseintrag 80 und eine Datei oder ein Dokument 82 aufweist. Es sind zwei Netzwerkknoten 84 und 86 dargestellt, die über die logischen Laufwerke 90 und 94 auf den adressierbaren gemeinsam verwendeten Speicherplatz 20 zugreifen (in der vorstehend mit Bezug auf 1 beschriebenen Weise). Anwendungsprogramme 92 und 96, die auf den Knoten ausgeführt werden, tauschen sich mit den Datensteuerprogrammen (in 2 nicht dargestellt, jedoch in 1 als 32a32d dargestellt) aus und bewirken, daß die Datensteuerprogramme in den Knoten auf die logischen Laufwerke 90 und 94 zugreifen. Bei der offenbarten Ausführungsform sind die logischen Laufwerke DOS-Vorrichtungen, die sich über installierbare Dateisystem-Treiber, die dem Dateisystem 60 zugeordnet sind, mit den Verzeichnissen des Dateisatzes verbinden.
  • Das Dateisystem 60 unterstützt ein globales Dateisystem je adressierbarem gemeinsam verwendetem Speicherplatz 20, das von allen Netzwerkknoten gemeinsam verwendet wird. Dieses globale Dateisystem ist in ein oder mehrere unabhängige Dateisammlungen organisiert, die als Dateisätze 6674 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 Verzeichnisse 80, und die Zweige in dem Baum sind reguläre Dateien 82 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ätze 6674 besteht darin, daß den Benutzern des Systems 60 dadurch eine flexiblere Dateisystemverwaltung bereitgestellt wird. Wenn das Dateisystem 60 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 Wurzel 64 den Anfangspunkt zum Lokalisieren der Dateisätze in dem adressierbaren gemeinsam verwendeten Speicherplatz 20 bildet. Die Wurzel 64 kann an einer statischen und wohlbekannten Speicherstelle in dem adressierbaren gemeinsam verwendeten Speicherplatz 20 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 Wurzel 64 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 Dateisystem 60 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 Dateisystems 60 gemäß der Erfindung auf ein Verzeichnis 126 (wie bspw. das Verzeichnis 80 aus 2) zugegriffen wird, wobei bei einem Verzeichnis-Inode oder Deskriptor 128 begonnen wird, der eine Adresse enthält, die auf einen Verzeichniseintragsstrom-Deskriptor 130 verweist. Dieser Deskriptor 130 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-Deskriptoren 132 ist. Die Strom-Deskriptoren für die Datei 1 werden verwendet, um die verschiedenen 4-Kilobyte-Seiten in dem adressierbaren gemeinsam verwendeten Speicherplatz 20, die die Datei 1 bilden, zu lokalisieren und abzurufen. Andere Dateien werden in gleicher Weise aus dem adressierbaren gemeinsam verwendeten Speicherplatz 20 abgerufen und aufgebaut. Die von dem Dateisystem 60 verwendeten Verzeichnisse werden nachstehend unter der Überschrift "Verzeichnis" in näheren Einzelheiten beschrieben.
  • Bei der in 4 offenbarten Ausführungsform des Dateisystems 60 wird eine Datei 98 (wie bspw. die Datei 82 aus 2) durch eine oder mehrere gemeinsam verwendete Datenseiten 100, 102, 104, 106 und 108 in dem adressierbaren gemeinsam verwendeten Speicherplatz 20 dargestellt. Jede Datei 98 weist einen Datei-Inoden oder Deskriptor 110 auf, der verschiedene Dateiattribute 112 enthält. Der Datei-Deskriptor 110 enthält eine Adresse, die auf einen Datenstrom-Deskriptor 114 verweist, und der Datenstrom selbst weist eine oder mehrere Adressen 116, 118, 120, 122 und 124 auf, die auf bestimmte Seiten in dem identifizierbaren gemeinsam verwendeten Speicherplatz 20 verweisen. Bei der offenbarten Ausführungsform ist eine Seite die atomare Einheit in dem adressierbaren gemeinsam verwendeten Speicherplatz 20, 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 Seite 108 dargestellt, die nur etwa 2 Kilobytes an Daten enthält. Die von dem Dateisystem 60 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 Dateisystem 60 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 Speicherplatz 20 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 Speicherplatz 20. Das gleiche Verfahren wird für die Informationen zum gesamten freien Platz verwendet, und der Gesamtwert des adressierbaren gemeinsam verwendeten Speicherplatzes 20 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 Dateisystem 60 durch als Inoden bezeichnete Objekte beschrieben. Der Inode ist eine Datenstruktur, die Datei-Metadaten speichert. Er repräsentiert die Datei in dem Dateisystem 60.
  • 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 Speicherplatz 20 zugeordnet werden. Das Dateisystem 60 segmentiert einen Datenstrom in eine Folge von 4-Kilobyte-Segmenten, wobei jedes Segment einer Seite entspricht. Das Dateisystem 60 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. Siehe 4.
  • 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 Dateisystems 60 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 Dateisystem 60 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 Dateisystem 60 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 Dateisystem 60 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 Dateisystem 60 den Umfang der Buchhaltungsinformationen auf den Byte-Versatz für die Seitenabbildung reduzieren. Das Dateisystem 60 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 Dateisystem 60 dazu über, die Seiten zuzuordnen, um die Anforderung zu erfüllen. Die Tatsache, daß das Dateisystem 60 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 Speichersystems 20 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 Dateisystems 60 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 Dateisystems 60 auf jedem Netzwerkknoten betrachtet die gemeinsam verwendeten Speicherbetriebsmittel (also Seiten) als mit anderen lokalen oder fernen Teilprozessen gemeinsam verwendet. Das Dateisystem 60 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 Dateisystems 60 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 Dateisystem 60 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 Dateisystem 60 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 Dateisystem 60 das exklusive Sperren der Seite an, wodurch garantiert wird, daß nur eine Knotenausprägung des Dateisystems 60 die Sperrdatenstruktur modifizieren kann, und falls die Anforderung Erfolg hat, führt das Dateisystem 60 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 Dateisystem 60 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 Dateisystems 60 benachrichtigt und wiederholt den vorstehenden Schritt (a). Das Dateisystem 60 implementiert die Mitteilung unter Verwendung eines primitiven Signalelements. Die auf eine Sperre wartenden Teilprozesse des Dateisystems 60 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 Dateisystems 60 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 Dateisystem 60 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 Dateisystem 60 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 Dateisystem 60 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 Computernetzwerk 10 darstellt, das einen gemeinsam verwendeten Speicher bereitstellt, der den Speicherplatz von jedem der Knoten des dargestellten Computernetzwerks 210 umfaßt.
  • Insbesondere zeigt 5 ein Computernetzwerk 210, das eine Mehrzahl von Knoten 212a212c umfaßt, die jeweils eine CPU 214, ein Betriebssystem 216, eine optionale private Speichervorrichtung 218 und ein gemeinsam verwendetes Speicheruntersystem 220 aufweist. Wie weiter in 5 dargestellt ist, ist jeder Knoten 212a212c über das gemeinsam verwendete Speicheruntersystem 220 mit einem virtuellen gemeinsam verwendeten Speicher 222 verbunden. Wie nachstehend in näheren Einzelheiten erklärt wird, ermöglicht das Computernetzwerk 210 durch Bereitstellen des gemeinsam verwendeten Speicheruntersystems 220, das den Knoten 212a212c ermöglicht, auf den virtuellen gemeinsam verwendeten Speicher 222 zuzugreifen, daß die Netzwerkknoten 212a212c 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 Knoten 212 den virtuellen gemeinsam verwendeten Speicher 222 verwenden, um Daten und Objekte zwischen Anwendungsprogrammen auszutauschen, die auf den verschiedenen Knoten 212 des Netzwerks 210 laufen.
  • Bei der in 5 dargestellten Ausführungsform kann jeder Knoten 212 ein herkömmliches Computersystem, wie bspw. ein im Handel erhältliches IBM-PC-kompatibles Computersystem, sein. Der Prozessor 214 kann eine beliebige Prozessoreinheit sein, die geeignet ist, um die Datenverarbeitung für dieses Computersystem auszuführen. Das Betriebssystem 216 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 Speichervorrichtung 218 einen RAM oder einen Abschnitt eines RAM-Speichers auf, um Daten und Anwendungsprogramme vorübergehend zu speichern und um dem Prozessor 214 mit Speicher zum Ausführen von Programmen zu versorgen. Die private Speichervorrichtung 18 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 in 5 dargestellt ist, ist eine Ausführungsform der Erfindung, die eine Kopplung zwischen dem Betriebssystem 216 und dem virtuellen gemeinsam verwendeten Speicher 222 herstellt und eine Schnittstelle zwischen dem Betriebssystem 216 und dem virtuellen gemeinsam verwendeten Speicher bildet, um es dem Betriebssystem 216 zu ermöglichen, auf den virtuellen gemeinsam verwendeten Speicher 222 zuzugreifen. Das dargestellte gemeinsam verwendete Speicheruntersystem 220 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 Knoten 212a212c über das gemeinsam verwendete Speicheruntersystem 220 zugänglich ist. Der virtuelle gemeinsam verwendete Speicher 222 kann auf Vorrichtungen abbilden, die einen physikalischen Speicher für vom Computer lesbare Daten bereitstellen, die in 5 als eine Mehrzahl von Seiten 224a224d 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 212a212c des gemeinsam verwendeten Speicheruntersystems 220 kann auf jede im virtuellen gemeinsam verwendeten Speicher 222 gespeicherte Seite 224a224d zugreifen. Jede Seite 224a224d stellt einen eindeutigen Eintrag innerhalb des virtuellen gemeinsam verwendeten Speichers 222 gespeicherter Computerdaten dar. Jede Seite 224a224d ist für jeden der Knoten 212a212c zugänglich, und jeder Knoten kann alternativ zusätzliche Datenseiten innerhalb des virtuellen gemeinsam verwendeten Speichers 222 speichern. Jede neu gespeicherte Datenseite kann für jeden der anderen Knoten 212a212c zugänglich sein. Demgemäß liefert der virtuelle gemeinsam verwendete Speicher 222 ein System zum Gemeinsamverwenden und Übertragen von Daten zwischen jedem Knoten 212 des Computernetzwerks 210.
  • 6 zeigt in Form eines Funktionsblockdiagramms ein Computernetzwerk 230, das einen verteilten gemeinsam verwendeten Speicher aufweist. Bei dieser Ausführungsform weist jeder Knoten 212a212c ein Speicheruntersystem 232 auf, das zwischen dem Betriebssystem 216 und den zwei lokalen Speichervorrichtungen, dem RAM 234 und der Platte 236 verbindet und das weiterhin mit einem Netzwerk 238 koppelt, das mit jedem der dargestellten Knoten 212a, 212b und 212c und einer Netzwerk-Speichervorrichtung 226 koppelt.
  • Insbesondere zeigt 6 ein verteiltes gemeinsam verwendetes Speichernetzwerk 30, das eine Mehrzahl von Knoten 212a212c aufweist, die jeweils eine Verarbeitungseinheit 214, ein Betriebssystem 216, ein Speicheruntersystem 232, einen RAM 234 und eine Platte 236 aufweisen. 6 zeigt weiterhin ein Computernetzwerksystem 38, das zwischen den Knoten 212a212c und der Netzwerk-Speichervorrichtung 226 verbindet. Das Netzwerk 238 liefert ein Netzwerkkommunikationssystem über diese Elemente.
  • Die dargestellten Speicheruntersysteme 232a232c, die zwischen dem Betriebssystem 216a216c, den Speicherelementen 234a234c, 236a236c und dem Netzwerk 238 verbinden, kapseln die lokalen Speicher aller Knoten ein, um eine Abstraktion eines gemeinsam verwendeten virtuellen Speichersystems bereitzustellen, das alle Knoten 212a212c auf dem Netzwerk 238 umfaßt. Die Speicheruntersysteme 232a232c 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 Knotens 212 gespeicherten Daten und betreiben weiterhin Netzwerkverbindungen mit dem Netzwerk 238, um Daten zwischen den Knoten 212a212c zu übertragen. Auf diese Weise greifen die Speicheruntersysteme 232a232c auf jedes Speicherelement auf dem Netzwerk 238 zu und steuern dieses, um Speicherzugriffsoperationen auszuführen, die für das Betriebssystem 216 transparent sind. Demgemäß verknüpft das Betriebssystem 216 als eine Schnittstelle zu einem globalen Speicherplatz, der alle Knoten 212a212c auf dem Netzwerk 238 umfaßt, mit dem Speicheruntersystem 232.
  • 6 zeigt weiterhin, daß das System 230 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 Untersystems 232a, auf, das mit einer als Platte 236a dargestellten permanenten Speichervorrichtung verknüpft. Das Untersystem 232a 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 in 6 dargestellten permanenten Speichervorrichtungen 236 ein Abschnitt des adressierbaren Speicherplatzes abgebildet. Beispielsweise sind auf die Vorrichtung 236a 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 232a232c 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 Speicheruntersystem 240 gemäß der Erfindung. 7 zeigt ein gemeinsam verwendetes Speicheruntersystem 240, das eine Schnittstelle 242, eine DSM-Verzeichnisverwaltungseinheit 244, eine Speichersteuereinrichtung 246, eine lokale Platten-Cache-Steuereinrichtung 248 und eine lokale RAM-Cache-Steuereinrichtung 250 aufweist. 7 zeigt weiterhin das Netzwerk 254, einen optionalen Kunden des DSM-Systems, der als der Dienst 258 dargestellt ist, das Betriebssystem 216, einen Plattentreiber 260, ein Plattenelement 262 und ein RAM-Element 264.
  • Das in 7 dargestellte gemeinsam verwendete Speicheruntersystem 240 kann die Speicherverwaltungsoperationen des Netzwerkknotens 212 einschließen, um einen virtuellen gemeinsam verwendeten Speicher bereitzustellen, der jeden Knoten umfassen kann, der sich mit dem Netzwerk 254 verbindet. Dementsprechend betrachtet jeder lokale Knoten 212 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 Schnittstelle 242 kann direkt mit dem Betriebssystem 216, einer verteilten Diensteinrichtung, wie bspw. das dargestellte DSM-Dateisystem 258, 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 Schnittstelle 242 einen Satz von Schnittstellen exportieren, die eine Steuerung des verteilten Speichers auf einer niedrigen Ebene bereitstellen. Wie in 7 dargestellt ist, exportiert die Schnittstelle 242 die API zu dem Betriebssystem 216 oder zu dem optionalen DSM-Dienst 258. Das Betriebssystem 216 oder der Dienst verwendet die Schnittstelle 242, 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 Schnittstelle 242 ein Softwaremodul aufweisen, das eine Bibliothek von Funktionen aufweist, die von Diensten, dem OS 216 oder einem anderen Rufer oder einer anderen Vorrichtung aufgerufen werden können. Die Funktionsaufrufe stellen dem OS 216 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 Verzeichnisverwaltungseinheit 244 und die lokale Speichersteuereinrichtung 246 betreiben. Dementsprechend kann die Schnittstelle 242 ein Satz von Speicherfunktionsaufrufen hoher Ebene zur Verknüpfung mit den Funktionselementen niedriger Ebene des gemeinsam verwendeten Speicheruntersystems 240 sein.
  • 7 zeigt weiterhin eine DSM-Verzeichnisverwaltungseinheit 244, die mit der Schnittstelle 242 gekoppelt ist. Die Schnittstelle 242 ü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 Verzeichnisverwaltungseinheit 244 verwaltet ein Verzeichnis, das Abbildungen aufweisen kann, die jede mit dem in 6 dargestellten Netzwerk 238 verbundene Speichervorrichtung, einschließlich jedes RAM- und Plattenelements, das für das Netzwerk zugänglich ist, umfassen können. Die Verzeichnisverwaltungseinheit 244 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 Verzeichnisverwaltungseinheit 244 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 Verzeichnisverwaltungseinheit 244 Informationen zum Zugreifen auf jede beliebige Adressenstelle innerhalb des Bezeichnerraums.
  • Die Steuerung des verteilten gemeinsam verwendeten Speichers kann durch die Verzeichnisverwaltungseinheit 244 und die Speichersteuereinrichtung 246 koordiniert werden. Die Verzeichnisverwaltungseinheit 244 unterhält eine Verzeichnisstruktur, die mit einer von der Schnittstelle 242 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 Verzeichnisverwaltungseinheit 244 identifiziert, welcher Knoten für das Unterhalten einer bestimmten Adresse verantwortlich ist, kann die Verzeichnisverwaltungseinheit 244 einen Knoten identifizieren, der Informationen zum Lokalisieren einer Kopie der Seite speichert, und den Aufruf an die Speichersteuereinrichtung 246 dieses Knotens richten und an die Speichersteuereinrichtung dieses Knotens die von der Speicherschnittstelle 242 bereitgestellte Speicheranforderung übergeben. Dementsprechend ist die dargestellte Verzeichnisverwaltungseinheit 244 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 Verzeichnisverwaltungseinheit 244 eines ersten Knotens eine Speicherzugriffsanforderung über die Schnittstelle 242 an das Netzwerkmodul des OS 216 und über das Netzwerk 254 zu einem zweiten Knoten leiten, den die Verzeichnisverwaltungseinheit 244 als den verantwortlichen Knoten für die gegebene Adresse identifiziert. Die Verzeichnisverwaltungseinheit 244 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 Speichersteuereinrichtung 246 des Eigentümers kann über das OS 216 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 in 7 dargestellt ist, mit dem Netzwerkmodul 252 gekoppelt, das mit dem Netzwerk 254 gekoppelt ist. Die Verzeichnisverwaltungseinheit kann zum Netzwerkmodul 252 einen Befehl und zugeordnete Daten übertragen, welche die Netzwerkschnittstelle 252 anweisen, ein Datensignal an den Eigentümerknoten zu übergeben. Der Eigentümerknoten empfängt die Speicheranforderung über das Netzwerk 254 und über das Netzwerkmodul 252, das die Speicheranforderung an die Schnittstelle 242 dieses Eigentümerknotens übergibt. Die Schnittstelle 242 ist mit der Speichersteuereinrichtung 246 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 Netzwerk 254 zu dem Knoten übertragen, der ursprünglich den Zugriff auf diesen Abschnitt des gemeinsam verwendeten Speichers angefordert hat. Die Datenseite wird über das Netzwerk 254 zu dem Netzwerkmodul 252 des anfordernden Knotens übertragen, und das gemeinsam verwendete Speicheruntersystem 240 veranlaßt die Speichersteuereinrichtung 246, 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 in 7 dargestellt, die eine Speichersteuereinrichtung zeigt, die eine lokale Platten-Cache-Steuereinrichtung 248 und eine lokale RAM-Cache-Steuereinrichtung 250 aufweist. Diese beiden lokalen Cache-Steuereinrichtungen können für das Betriebssystem 216 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 in 8 dargestellte gemeinsam verwendete Speicheruntersystem 270 weist ein Fernoperationselement 274, einen lokalen RAM-Cache-Speicher 276, einen RAM-Kopiersatz 278, ein globales RAM-Verzeichnis 280, einen Platten-Kopiersatz 282, ein globales Plattenverzeichnis 284, eine Konfigurationsverzeichniseinheit 288, ein Verfahrenselement 290 und einen lokalen Platten-Cache-Speicher 94 auf. Weiterhin sind in 8 ein Netzwerkelement 304, ein physikalischer Speicher 300, ein gemeinsam verwendetes Datenelement 302, ein physikalisches Dateisystem 298, das Teil des Betriebssystems 216 ist, ein Konfigurationsdienst 308, ein diagnostischer Dienst 310 und eine Speicherzugriffsanforderung 312 dargestellt. Das dargestellte Untersystem 270 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 Ablaufplanungseinrichtung 272 kann die von einer API des Untersystems 270 bereitgestellten Steuerungen koordinieren. Gemäß einer Ausführungsform kann die Ablaufplanungseinrichtung 272 eine Zustandsmaschine sein, die die Anforderungen 312 und die Fernanforderungen über das Netzwerk 304 ü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 Speicheroperationsanforderungen 312 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 Ablaufplanungseinrichtung 272 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 in 8 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 Elementen 274294 des Untersystems 270 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 in 8 dargestellt. Dementsprechend kann die Ablaufplanungseinrichtung 272 eine Umgebung zum Laden und Ausführen von Applets bereitstellen. Die Applets werden von der Ablaufplanungseinrichtung 272 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 Ablaufplanungseinrichtung 272 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-Verzeichnis 280 und das globale Plattenverzeichnis 284 aufweist. Das globale RAM-Verzeichnis 280 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 Plattenverzeichnis 284 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-Verzeichnis 280 und das globale Plattenverzeichnis 284 das gemeinsam verwendete Speicheruntersystem 270 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-Speicher 276 und den lokalen Platten-Cache-Speicher 294 gebildet. Der lokale RAM-Cache-Speicher 276, der mit dem physikalischen Speicher 300 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-Speichers 300 gespeichert sind. In ähnlicher Weise ist der lokale Platten-Cache-Speicher 294 mit der permanenten Speichervorrichtung 298 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 Fernoperationselement 274, das das Netzwerk 304 und die Ablaufplanungseinrichtung 272 koppelt. Das Fernoperationselement 274 verhandelt die Übertragung von Daten über das Netzwerk 304, um Abschnitte der im gemeinsam verwendeten Speicherplatz gespeicherten Daten zwischen den Knoten des Netzwerks zu übertragen. Das Fernoperationselement 274 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 Verfahrenselement 290, 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 Speicheruntersystem 270, das einen RAM-Kopiersatz 278 und einen Platten-Kopiersatz 282 aufweist. Diese Kopiersätze können Kopien von Seiten verwalten, die an einem einzigen Knoten in dem Cache-Speicher abgelegt sind. Der Platten-Kopiersatz 282 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-Kopiersatz 278 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-Speicher 276 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-Speicher 276 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 Speicheruntersystem 270 den Knotenzugriff auf den verteilten Speicherplatz durch die koordinierte Operation der Verzeichnisverwaltungseinheit, die das globale RAM-Verzeichnis 280 und das globale Plattenverzeichnis 284 aufweist, der Cache-Steuereinrichtung, die den lokalen RAM-Cache-Speicher und die lokalen Platten-Cache-Elemente 276 und 294 aufweist, und der Kopiersatzelemente, die den RAM-Kopiersatz 278 und den Platten-Kopiersatz 282 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 und 10 ist ein Beispiel einer Verzeichnisstruktur dargestellt, die einen Zugriff auf den gemeinsam verwendeten Speicherplatz bereitstellt. 9 zeigt eine Verzeichnisseite 320, die einen Seitenkopf 322 und Verzeichniseinträge 324 und 326 aufweist, wobei jeder Verzeichniseintrag ein Bereichsfeld 330, ein Feld 332 des verantwortlichen Knotens und ein Adressenfeld 334 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 Verzeichnisseite 320 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 Verzeichnisseite 120 einen Seitenkopf 322 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äge 324 und 326 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 Verzeichnisseite 320 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 Bereichsfeld 330 aufweisen kann, das den Anfang eines Adressenbereichs beschreibt, den dieser Eintrag lokalisiert.
  • Demgemäß kann jede Verzeichnisseite 320 mehrere Verzeichniseinträge, wie bspw. Einträge 324 und 326, aufweisen, die den Adressenraum in einen Untersatz von Adressenbereichen unterteilen können. Beispielsweise weist die dargestellte Verzeichnisseite 320 zwei Verzeichnis einträge 324 und 326 auf. Die Verzeichniseinträge 324 und 326 können beispielsweise den Adressenraum in zwei Unterabschnitte unterteilen. In diesem Beispiel könnte der Anfangsadressenbereich des Verzeichniseintrags 324 die Basisadresse des Adressenraums sein, und der Anfangsadressenbereich des Verzeichniseintrags 326 könnte die Adresse für die obere Hälfte des Speicherplatzes sein. Dementsprechend liefert der Verzeichniseintrag 324 einen Index für Seiten, die in dem Adressenraum zwischen der Basisadresse und dem Mittelpunkt des Speicherplatzes gespeichert sind, und der Verzeichniseintrag 326 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 Verzeichnisseite 320, die in jedem Verzeichniseintrag ein verantwortliches Knotenfeld 332 und das globale Adressenfeld 334 der abhängigen Seite aufweist. Diese Felder 332, 334 liefern weitere Ortsinformationen für die Daten, die auf Seiten innerhalb des im Feld 330 identifizierten Adressenbereichs gespeichert sind.
  • 10 zeigt ein Verzeichnis 340, das aus Verzeichnisseiten ähnlich den in 9 dargestellten besteht. 10 zeigt, daß das Verzeichnis 340 Verzeichnisseiten 342, 350354 und 360366 aufweist. 10 zeigt weiterhin, daß das Verzeichnis 340 Ortsinformationen für die in 10 als die Seiten 370384 dargestellten Seiten des verteilten gemeinsam verwendeten Speicherplatzes bereitstellt.
  • Die in 10 dargestellte Verzeichnisseite 342 wirkt wie eine Wurzelverzeichnisseite und kann sich an einer statischen Adresse befinden, die jedem mit dem verteilten Adressenraum gekoppelten Knoten bekannt ist. Die Wurzelverzeichnisseite 342 weist drei Verzeichniseinträge 344, 346 und 348 auf. Jeder in 10 dargestellte Verzeichniseintrag weist Verzeichniseinträge ähnlich den in 9 dargestellten auf. Beispielsweise weist der Verzeichniseintrag 344 eine Variable Co, die das Adressenbereichsfeld 330 repräsentiert, eine Variable Nj, die das Feld 332 repräsentiert, und eine Variable Cs, die das Feld 334 repräsentiert, auf. Die dargestellte Wurzelverzeichnisseite 342 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 Verzeichniseintrag 344, 346 und 348 auf eine untergeordnete Verzeichnisseite, die als Verzeichnisseiten 350, 352 und 354 dargestellt ist, von denen jede weiterhin den Adressenbereichsindex durch den zugeordneten Verzeichniseintrag des Wurzelverzeichnisses 342 unterteilt. In 9 wird dieser Unterteilungsprozeß fortgesetzt, weil jede der Verzeichnisseiten 350, 352 und 354 jeweils wiederum Verzeichniseinträge aufweist, die untergeordnete Verzeichnisseiten einschließlich der dargestellten Beispiele der Verzeichnisseiten 360, 362, 364 und 366 lokalisieren.
  • In dem dargestellten Beispiel sind die Verzeichnisseiten 360, 362, 364 und 366 jeweils Zweigeinträge. Die Zweigeinträge enthalten Verzeichniseinträge, wie bspw. die Verzeichniseinträge 356 und 358 des Zweigeintrags 360, die ein Bereichsfeld 330 und das verantwortliche Knotenfeld 332 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 Seiten 370384. Beispielsweise verweist der Zweigeintrag 356, wie in 10 dargestellt ist, auf die Seite 370, die dem Bereichsfeld 330 des Zweigeintrags 356 entspricht, die für einen Zweigeintrag die Seite ist, auf die zugegriffen wird. Auf diese Weise liefert die Verzeichnisstruktur 340 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 Zweigeintrag 356 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 Speicheruntersystem 270 an den im Zweigeintrag 356 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 Verzeichnisstruktur 340 eine hierarchische Struktur aufweist. Hierzu liefert die Verzeichnisstruktur 340 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 aus 10, das von einem erfindungsgemäßen System verwendet wird. Insbesondere zeigt 11 ein System 400, das zwei Knoten 406a und 406b, eine Verzeichnisstruktur 340 und ein Paar lokaler Speicher mit flüchtigen Speichervorrichtungen 264a und 264b und permanenten Speichervorrichtungen 262a und 262b aufweist. Ein dargestellter Knoten 406a weist einen Adressenkunden 408a, eine globale Adresse 410a sowie eine Schnittstelle 242a, eine Verzeichnisverwaltungseinheit 244a und eine Speichersteuereinrichtung 246a auf. Ein Knoten 406b weist entsprechende Elemente auf. Die Knoten sind durch das Netzwerk 254 verbunden. Das Verzeichnis 340 weist eine Wurzelseite, Verzeichnisseiten A–F und Seiten 1–5 auf.
  • Jeder Knoten 406a und 406b arbeitet so, wie vorstehend erörtert wurde. Die dargestellten Adressenkunden 408a und 408b 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 Adressenkunden 408a und 408b 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 Verzeichnisverwaltungseinheiten 244a und 244b Verzeichnisseiten und speichern die Seiten in der Verzeichnisstruktur 340. Wie dargestellt ist, verfolgt die Verzeichnisstruktur 340 die Abschnitte des Adressenraums, die von dem System 400 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 in 11 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 Verzeichnis 340 erforderlich wären. Dies wird erreicht, indem ein Verzeichnis 340 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 Verzeichnis 340 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Verfahren nach Anspruch 4, bei dem des weiteren das Dateiverzeichnis als eine Mehrzahl von innerhalb des gemeinsam verwendeten Speicherplatzes gespeicherten logischen Dateipartitionen organisiert werden.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. Verfahren nach Anspruch 11, bei dem des weiteren das Datenbankverzeichnis als eine Mehrzahl von innerhalb des gemeinsam verwendeten Speicherplatzes gespeicherten Sätzen organisiert wird.
  13. 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.
  14. Verfahren nach Anspruch 13, das des weiteren das Sperren von Datenbankindizes umfaßt.
  15. Verfahren nach Anspruch 13, das des weiteren das Sperren von Datenbankschlüsseln umfaßt.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
  24. 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.
  25. 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.
  26. 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.
  27. 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.
  28. 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.
  29. 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.
  30. 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.
  31. 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.
  32. 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.
  33. 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.
  34. 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.
DE69722962T 1996-11-22 1997-11-21 Strukturiertes datenspeichersystem mit global adressierbarem speicher Expired - Fee Related DE69722962T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US754481 1996-11-22
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
US827534 1997-03-28
PCT/US1997/021466 WO1998022892A1 (en) 1996-11-22 1997-11-21 Structured data storage using globally addressable memory

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) AU7303098A (de)
CA (1) CA2221874C (de)
DE (1) DE69722962T2 (de)
WO (2) WO1998022892A1 (de)

Families Citing this family (691)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 並列データベースシステム検索方法
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
US8396811B1 (en) 1999-02-26 2013-03-12 Syncada Llc Validation approach for auditing a vendor-based transaction
US20070055582A1 (en) * 1996-11-12 2007-03-08 Hahn-Carlson Dean W Transaction processing with core and distributor processor implementations
GB2319705B (en) * 1996-11-21 2001-01-24 Motorola Ltd Arrangement for encryption/decryption of data and data carrier incorporating same
US7058696B1 (en) 1996-11-22 2006-06-06 Mangosoft Corporation Internet-based shared file service with native PC client access and semantics
US6647393B1 (en) * 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
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
US6330572B1 (en) * 1998-07-15 2001-12-11 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
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
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
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
CN1423786A (zh) 1999-03-02 2003-06-11 奎克斯塔投资公司 包含一种会员购买机会的行销系统内的电子商务交易
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
US6453426B1 (en) 1999-03-26 2002-09-17 Microsoft Corporation Separately storing core boot data and cluster configuration data in a server cluster
US7774469B2 (en) * 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
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
US7395282B1 (en) 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US7389311B1 (en) 1999-07-15 2008-06-17 Commvault Systems, Inc. Modular backup and retrieval system
US6477544B1 (en) * 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
US6389433B1 (en) 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
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
US6834386B1 (en) 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
US6609214B1 (en) 1999-08-23 2003-08-19 International Business Machines Corporation Method, system and program products for copying coupling facility structures
US6542970B1 (en) 1999-08-23 2003-04-01 International Business Machines Corporation Method, system and program products for copying coupling facility list structures
US6546466B1 (en) 1999-08-23 2003-04-08 International Business Machines Corporation Method, system and program products for copying coupling facility cache structures
US6546414B1 (en) * 1999-08-23 2003-04-08 International Business Machines Corporation Method, system and program products for copying coupling facility lock 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
US6553466B1 (en) 1999-10-01 2003-04-22 Infraworks Corporation Shared memory blocking method and system
AU1430901A (en) * 1999-10-01 2001-05-10 Infraworks Corporation Method and system for providing data security using file spoofing
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
US7188147B2 (en) 1999-12-08 2007-03-06 Axis Ab I/O method and apparatus for optical storage media
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
WO2002005195A1 (en) 2000-07-11 2002-01-17 First Data Corporation Wide area network person-to-person payment
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
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
US7155481B2 (en) 2000-01-31 2006-12-26 Commvault Systems, Inc. Email attachment management in a computer system
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
US7441014B1 (en) * 2000-02-09 2008-10-21 Tvworks, Llc Broadcast distribution using low-level objects and locator tables
US20010044879A1 (en) * 2000-02-18 2001-11-22 Moulton Gregory Hagan System and method for distributed management of data storage
US7509420B2 (en) * 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network 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
US7624172B1 (en) 2000-03-17 2009-11-24 Aol Llc State change alerts mechanism
WO2001072002A2 (en) 2000-03-17 2001-09-27 America Online, Inc. Shared groups rostering system
US9246975B2 (en) 2000-03-17 2016-01-26 Facebook, Inc. State change alerts mechanism
US20010039497A1 (en) 2000-03-30 2001-11-08 Hubbard Edward A. System and method for monitizing network connected user bases utilizing distributed processing systems
US6891802B1 (en) 2000-03-30 2005-05-10 United Devices, Inc. Network site testing method and associated system
US7092985B2 (en) * 2000-03-30 2006-08-15 United Devices, Inc. Method of managing workloads and associated distributed processing system
US20070033252A1 (en) * 2000-03-30 2007-02-08 Combest Ricky F Dynamic virtual network and method
US20010027467A1 (en) * 2000-03-30 2001-10-04 Anderson David P. Massively distributed database system and associated method
US20040103139A1 (en) * 2000-03-30 2004-05-27 United Devices, Inc. Distributed processing system having sensor based data collection and associated method
US6654783B1 (en) 2000-03-30 2003-11-25 Ethergent Corporation Network site content indexing method and associated system
US6963897B1 (en) 2000-03-30 2005-11-08 United Devices, Inc. Customer services and advertising based upon device attributes and associated distributed processing system
US7082474B1 (en) 2000-03-30 2006-07-25 United Devices, Inc. Data sharing and file distribution method and associated distributed processing system
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
US20040148336A1 (en) * 2000-03-30 2004-07-29 Hubbard Edward A Massively distributed processing system architecture, scheduling, unique device identification and associated methods
US7020678B1 (en) 2000-03-30 2006-03-28 United Devices, Inc. Machine generated sweepstakes entry model and associated distributed processing system
US8010703B2 (en) 2000-03-30 2011-08-30 Prashtama Wireless Llc Data conversion services 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
US7003547B1 (en) 2000-03-30 2006-02-21 United Devices, Inc. Distributed parallel processing system having capability-based incentives and associated method
US6847995B1 (en) 2000-03-30 2005-01-25 United Devices, Inc. Security architecture for distributed processing systems and associated method
US20090216641A1 (en) 2000-03-30 2009-08-27 Niration Network Group, L.L.C. Methods and Systems for Indexing Content
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
US6981027B1 (en) * 2000-04-10 2005-12-27 International Business Machines Corporation Method and system for memory management in a network processing system
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
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
US6745207B2 (en) * 2000-06-02 2004-06-01 Hewlett-Packard Development Company, L.P. System and method for managing virtual storage
CA2381189A1 (en) * 2000-06-02 2001-12-13 Inrange Technologies Corporation Message queue server system
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
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
US6978324B1 (en) * 2000-06-27 2005-12-20 Emc Corporation Method and apparatus for controlling read and write accesses to a logical entity
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
US6912548B1 (en) * 2000-06-27 2005-06-28 Emc Corporation Logical volume identifier database for logical volumes in a computer storage system
US6813686B1 (en) 2000-06-27 2004-11-02 Emc Corporation Method and apparatus for identifying logical volumes in multiple element computer storage domains
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
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
US7065610B1 (en) 2000-06-27 2006-06-20 Emc Corporation Method and apparatus for maintaining inventory of logical volumes stored on storage elements
US7249098B2 (en) 2000-07-11 2007-07-24 First Data Corporation Subscription-based payment
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
US6980313B2 (en) * 2000-07-11 2005-12-27 Imran Sharif Fax-compatible internet appliance
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
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
US7529750B2 (en) * 2000-08-11 2009-05-05 International Business Machines Corporation Accessing information on a network
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
US6981005B1 (en) * 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer 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
US7299255B2 (en) * 2000-09-26 2007-11-20 I2 Technologies Us, Inc. System and method for migrating data in an electronic commerce system
JP4902904B2 (ja) 2000-10-06 2012-03-21 ソニー株式会社 情報処理方法、並びにプログラムを格納している媒体
US7328232B1 (en) * 2000-10-18 2008-02-05 Beptech Inc. Distributed multiprocessing system
US7330830B1 (en) 2000-10-25 2008-02-12 Thomson Financial Inc. Distributed commerce system
US7305360B1 (en) 2000-10-25 2007-12-04 Thomson Financial Inc. Electronic sales system
WO2002042880A2 (en) * 2000-10-25 2002-05-30 Thomson Financial Inc. Electronic commerce system
FR2816090B1 (fr) * 2000-10-26 2003-01-10 Schlumberger Systems & Service Dispositif de partage de fichiers dans un dispositif a circuit integre
US6850959B1 (en) 2000-10-26 2005-02-01 Microsoft Corporation Method and system for transparently extending non-volatile storage
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
WO2002065329A1 (en) * 2001-02-14 2002-08-22 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 東芝ソリューション株式会社 クラスタシステム
US7096205B2 (en) 2001-03-31 2006-08-22 First Data Corporation Systems and methods for enrolling consumers in goods and services
US9853759B1 (en) 2001-03-31 2017-12-26 First Data Corporation Staged transaction system for mobile commerce
US7117183B2 (en) 2001-03-31 2006-10-03 First Data Coroporation Airline ticket payment and reservation 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
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
WO2002088961A1 (en) * 2001-05-01 2002-11-07 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Distributed raid and location independence caching 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
US8010558B2 (en) 2001-06-05 2011-08-30 Silicon Graphics International Relocation of metadata server with outstanding DMAPI requests
US20040139125A1 (en) * 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
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
US7346560B1 (en) 2001-06-29 2008-03-18 I2 Technologies Us, Inc. Protecting content from unauthorized reproduction
US7162453B1 (en) 2001-06-29 2007-01-09 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
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
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
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
US7552056B2 (en) * 2001-09-25 2009-06-23 Emc Corporation Scalable storage service registration application
US8055555B2 (en) * 2001-09-25 2011-11-08 Emc Corporation Mediation device for scalable storage service
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
US8374962B2 (en) 2001-10-26 2013-02-12 First Data Corporation Stored value payouts
US8244632B2 (en) 2001-10-26 2012-08-14 First Data Corporation Automated transfer with stored value
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
EP3401794A1 (de) 2002-01-08 2018-11-14 Seven Networks, LLC Verbindungsarchitektur für ein mobiles netzwerk
US7020753B2 (en) 2002-01-09 2006-03-28 Sun Microsystems, Inc. Inter-domain data transfer
US6795902B2 (en) 2002-01-09 2004-09-21 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
US7743162B2 (en) 2002-03-25 2010-06-22 Ricoh Company, Ltd. Image forming apparatus, with connection request mediation, having web service functions
US7219230B2 (en) * 2002-05-08 2007-05-15 Hewlett-Packard Development Company, L.P. Optimizing costs associated with managing encrypted data
US7050307B2 (en) * 2002-06-28 2006-05-23 Sun Microsystems, Inc. Circuit board orientation in a computer system
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
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
US8701014B1 (en) 2002-11-18 2014-04-15 Facebook, Inc. Account linking
US8005919B2 (en) 2002-11-18 2011-08-23 Aol Inc. Host-based intelligent results related to a character stream
US7899862B2 (en) 2002-11-18 2011-03-01 Aol Inc. Dynamic identification of other users to an online user
US7640306B2 (en) 2002-11-18 2009-12-29 Aol Llc Reconfiguring an electronic message to effect an enhanced notification
US8122137B2 (en) 2002-11-18 2012-02-21 Aol Inc. Dynamic location of a subordinate user
WO2004046867A2 (en) 2002-11-18 2004-06-03 America Online, Inc. People lists
US8965964B1 (en) 2002-11-18 2015-02-24 Facebook, Inc. Managing forwarded electronic messages
US7428580B2 (en) 2003-11-26 2008-09-23 Aol Llc Electronic message forwarding
US7590696B1 (en) 2002-11-18 2009-09-15 Aol Llc Enhanced buddy list using mobile device identifiers
US7464091B2 (en) * 2002-11-27 2008-12-09 Sap Ag Method and software for processing data objects in business applications
US7409412B2 (en) 2002-11-27 2008-08-05 Sap Ag Data element and structure for data processing
US7225302B2 (en) * 2002-11-27 2007-05-29 Sap Ag Method and software application for avoiding data loss
US7430569B2 (en) * 2002-11-27 2008-09-30 Sap Ag Computerized replication of data objects
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
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
US7809693B2 (en) * 2003-02-10 2010-10-05 Netapp, Inc. System and method for restoring data on demand for instant volume restoration
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 株式会社日立製作所 大容量記憶装置におけるデータの格納・読み出し制御
US7603417B2 (en) 2003-03-26 2009-10-13 Aol Llc 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
AU2004262533A1 (en) * 2003-08-08 2005-02-17 Ulysses Pharmaceutical Products Inc. Halogenated quinazolinyl nitrofurans as antibacterial agents
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
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
US7162476B1 (en) * 2003-09-11 2007-01-09 Cisco Technology, Inc System and method for sharing global data within distributed computing systems
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 データ管理装置
WO2005036358A2 (en) * 2003-10-08 2005-04-21 Unisys Corporation Virtualization system for guest
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
US7401093B1 (en) 2003-11-10 2008-07-15 Network Appliance, Inc. System and method for managing file data during consistency points
US7783611B1 (en) 2003-11-10 2010-08-24 Netapp, Inc. System and method for managing file metadata during consistency points
US7721062B1 (en) 2003-11-10 2010-05-18 Netapp, Inc. Method for detecting leaked buffer writes across file system consistency points
US7546324B2 (en) 2003-11-13 2009-06-09 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
US7849452B2 (en) * 2004-04-23 2010-12-07 Waratek Pty Ltd. Modification of computer applications at load time for distributed execution
US20050262513A1 (en) * 2004-04-23 2005-11-24 Waratek Pty Limited Modified computer architecture with initialization of objects
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
US7707179B2 (en) * 2004-04-23 2010-04-27 Waratek Pty Limited Multiple computer architecture with synchronization
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
US7409494B2 (en) * 2004-04-30 2008-08-05 Network Appliance, Inc. Extension of write anywhere file system layout
US7240065B2 (en) * 2004-05-27 2007-07-03 Oracle International Corporation Providing mappings between logical time values and real time values
EP1782259A4 (de) 2004-06-09 2009-04-22 Us Bancorp Licensing Inc Auf einem verteiler basierende transaktionsverarbeitungsanordnung und ansatz
US7925551B2 (en) * 2004-06-09 2011-04-12 Syncada Llc Automated transaction processing system and approach
AU2005255456B2 (en) 2004-06-09 2007-09-13 Syncada Llc Order-resource fulfillment and management system and approach
US8762238B2 (en) 2004-06-09 2014-06-24 Syncada Llc Recurring 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
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
US20060100845A1 (en) * 2004-11-08 2006-05-11 Mazzagatti Jane C Multiple stream real time data simulation adapted for a KStore data structure
US20060101048A1 (en) * 2004-11-08 2006-05-11 Mazzagatti Jane C KStore data analyzer
US7418445B1 (en) 2004-11-08 2008-08-26 Unisys Corporation Method for reducing the scope of the K node construction lock
US7499932B2 (en) * 2004-11-08 2009-03-03 Unisys Corporation Accessing data in an interlocking trees data structure using an application programming interface
US7348980B2 (en) * 2004-11-08 2008-03-25 Unisys Corporation Method and apparatus for interface for graphic display of data from a Kstore
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
US7716260B2 (en) * 2004-12-16 2010-05-11 Oracle International Corporation Techniques for transaction semantics for a database server performing file operations
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
US7627574B2 (en) * 2004-12-16 2009-12-01 Oracle International Corporation Infrastructure for performing file operations by a database server
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
US20080065637A1 (en) * 2005-04-14 2008-03-13 Emc Corporation Locating last processed data
US7657579B2 (en) * 2005-04-14 2010-02-02 Emc Corporation Traversing data in a repeatable manner
US20080065663A1 (en) * 2005-04-14 2008-03-13 Emc Corporation Reestablishing process context
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
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US7689609B2 (en) * 2005-04-25 2010-03-30 Netapp, Inc. Architecture for supporting sparse volumes
US8055702B2 (en) * 2005-04-25 2011-11-08 Netapp, Inc. System and method for caching network file systems
US7392940B2 (en) 2005-05-18 2008-07-01 The Western Union Company In-lane money transfer systems and methods
US8672220B2 (en) 2005-09-30 2014-03-18 The Western Union Company Money transfer system and method
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
US7660960B2 (en) * 2005-10-25 2010-02-09 Waratek Pty, Ltd. Modified machine architecture with partial memory updating
US7849369B2 (en) * 2005-10-25 2010-12-07 Waratek Pty Ltd. Failure resistant multiple computer system and method
US7761670B2 (en) * 2005-10-25 2010-07-20 Waratek Pty Limited Modified machine architecture with advanced synchronization
US7958322B2 (en) * 2005-10-25 2011-06-07 Waratek Pty Ltd 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
US20070100828A1 (en) * 2005-10-25 2007-05-03 Holt John M Modified machine architecture with machine redundancy
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 한국전자통신연구원 애플리케이션 컨텍스트 관리 장치 및 방법
US7636743B2 (en) 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7962709B2 (en) 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
US8655850B2 (en) 2005-12-19 2014-02-18 Commvault Systems, Inc. Systems and methods for resynchronizing information
US8010701B2 (en) 2005-12-19 2011-08-30 Vmware, Inc. Method and system for providing virtualized application workspaces
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
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
ES2582364T3 (es) 2005-12-19 2016-09-12 Commvault Systems, Inc. Sistemas y métodos para realizar replicación de datos
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
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
US8065499B2 (en) * 2006-02-22 2011-11-22 Oracle America, Inc. 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
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
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
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
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
US20080005719A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, systems, and computer program products for providing a program execution environment
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
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
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
US20080005752A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for generating application processes by linking applications
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US9852079B2 (en) * 2006-08-01 2017-12-26 Massachusetts Institute Of Technology EXtreme virtual memory
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
WO2008040076A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Contention resolution with echo cancellation
WO2008040084A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Cyclic redundant multiple computer architecture
US20080114853A1 (en) * 2006-10-05 2008-05-15 Holt John M Network protocol for network communications
US20080120475A1 (en) * 2006-10-05 2008-05-22 Holt John M Adding one or more computers to a multiple computer system
US20080120477A1 (en) * 2006-10-05 2008-05-22 Holt John M Contention detection with modified message format
US7958329B2 (en) * 2006-10-05 2011-06-07 Waratek Pty Ltd Hybrid replicated shared memory
US20080126506A1 (en) * 2006-10-05 2008-05-29 Holt John M Multiple computer system with redundancy architecture
US20080126572A1 (en) * 2006-10-05 2008-05-29 Holt John M Multi-path switching networks
US8095616B2 (en) 2006-10-05 2012-01-10 Waratek Pty Ltd. Contention detection
WO2008040078A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Synchronization with partial memory replication
US20080133688A1 (en) * 2006-10-05 2008-06-05 Holt John M Multiple computer system with dual mode redundancy architecture
WO2008040064A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Switch protocol for network communications
US20080133869A1 (en) * 2006-10-05 2008-06-05 Holt John M Redundant multiple computer architecture
US20080140762A1 (en) * 2006-10-05 2008-06-12 Holt John M Job scheduling amongst multiple computers
US20080151902A1 (en) * 2006-10-05 2008-06-26 Holt John M Multiple network connections for multiple computers
US20080140856A1 (en) * 2006-10-05 2008-06-12 Holt John M Multiple communication networks for multiple computers
WO2008040080A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Silent memory reclamation
US20080120478A1 (en) * 2006-10-05 2008-05-22 Holt John M Advanced synchronization and contention resolution
US20080140970A1 (en) * 2006-10-05 2008-06-12 Holt John M Advanced synchronization and contention resolution
US20080140973A1 (en) * 2006-10-05 2008-06-12 Holt John M Contention detection with data consolidation
CN101548268B (zh) * 2006-10-05 2014-05-21 瓦拉泰克有限公司 更新存储器位置的内容的方法和系统
US20100121935A1 (en) * 2006-10-05 2010-05-13 Holt John M Hybrid replicated shared memory
US20100054254A1 (en) * 2006-10-05 2010-03-04 Holt John M Asynchronous data transmission
US8473564B2 (en) 2006-10-05 2013-06-25 Waratek Pty Ltd. Contention detection and resolution
US8712884B2 (en) 2006-10-06 2014-04-29 Syncada Llc Transaction finance processing system and approach
US7734890B2 (en) * 2006-10-06 2010-06-08 Okralabs Llc Method and system for using a distributable virtual address space
WO2008070814A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a scalable, composite, reconfigurable backplane
US20080148095A1 (en) * 2006-12-14 2008-06-19 Motorola, Inc. Automated memory recovery in a zero copy messaging 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
US8301673B2 (en) * 2006-12-29 2012-10-30 Netapp, Inc. System and method for performing distributed consistency verification of a clustered file system
US7657769B2 (en) 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US8818904B2 (en) 2007-01-17 2014-08-26 The Western Union Company Generation systems and methods for transaction identifiers having biometric keys associated therewith
US7933835B2 (en) 2007-01-17 2011-04-26 The Western Union Company Secure money transfer systems and methods using 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
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
US7925829B1 (en) * 2007-03-29 2011-04-12 Emc Corporation I/O operations for a storage array
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
US8219749B2 (en) * 2007-04-27 2012-07-10 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
US7882304B2 (en) * 2007-04-27 2011-02-01 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
US8493888B2 (en) * 2007-11-08 2013-07-23 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
US7921261B2 (en) * 2007-12-18 2011-04-05 International Business Machines Corporation Reserving a global address space
US7925842B2 (en) * 2007-12-18 2011-04-12 International Business Machines Corporation Allocating a global shared memory
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US8751337B2 (en) 2008-01-25 2014-06-10 Syncada Llc Inventory-based payment processing system and approach
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US8255913B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
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
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
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
US9825863B2 (en) * 2008-02-27 2017-11-21 Nokia Technologies Oy Buffer control for multi-transport architectures
ATE541397T1 (de) * 2008-02-27 2012-01-15 Nokia Corp Transportunabhängige architektur
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
US8041877B2 (en) * 2008-06-09 2011-10-18 International Business Machines Corporation Distributed computing utilizing virtual memory having a shared paging space
US8019966B2 (en) * 2008-06-09 2011-09-13 International Business Machines Corporation Data sharing utilizing virtual memory having a shared paging space
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8060603B2 (en) * 2008-06-18 2011-11-15 Qualcomm Incorporated Persistent personal messaging in a distributed system
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
US8289801B2 (en) 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
WO2011060366A2 (en) * 2009-11-13 2011-05-19 Anderson Richard S Distributed symmetric multiprocessing computing architecture
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
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
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8572038B2 (en) 2010-05-28 2013-10-29 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
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US9002911B2 (en) * 2010-07-30 2015-04-07 International Business Machines Corporation Fileset masks to cluster inodes for efficient fileset management
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
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
EP2636199B1 (de) * 2010-11-03 2018-06-13 Telefonaktiebolaget LM Ericsson (publ) Signalgebungsgateway, verfahren, computerprogramm und computerprogrammprodukt zur kommunikation zwischen http und 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
GB2495463B (en) 2010-11-22 2013-10-09 Seven Networks Inc Aligning data transfer to optimize connections established for transmission over a wireless network
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
EP2652623B1 (de) * 2010-12-13 2018-08-01 SanDisk Technologies LLC Vorrichtung, system, und verfahren für einen auto-commit-speicher
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
WO2012094330A1 (en) 2011-01-03 2012-07-12 Planetary Data LLC Community internet drive
GB2501416B (en) 2011-01-07 2018-03-21 Seven Networks Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
US9021198B1 (en) 2011-01-20 2015-04-28 Commvault Systems, Inc. System and method for sharing SAN storage
US9183073B2 (en) * 2011-03-02 2015-11-10 Cleversafe, Inc. Maintaining data concurrency with a dispersed storage network
WO2012145533A2 (en) * 2011-04-19 2012-10-26 Seven Networks, Inc. Shared resource and virtual resource management in a networked environment
WO2012149434A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
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
WO2013001615A1 (ja) 2011-06-28 2013-01-03 富士通株式会社 データ処理方法およびデータ処理システム
WO2013015994A1 (en) 2011-07-27 2013-01-31 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
US9390369B1 (en) * 2011-09-21 2016-07-12 Brain Corporation Multithreaded apparatus and methods for implementing parallel networks
US8868753B2 (en) 2011-12-06 2014-10-21 Seven Networks, Inc. System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
WO2013086447A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9009250B2 (en) 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
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
EP2792188B1 (de) 2011-12-14 2019-03-20 Seven Networks, LLC Mobilfunknetzbenachrichtigung und nutzungsanalysesystem sowie verfahren mittels aggregation von daten in einem verteilten verkehrsoptimierungssystem
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
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc 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 富士通株式会社 情報処理装置、制御方法および制御プログラム
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9298715B2 (en) 2012-03-07 2016-03-29 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
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices 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
US9549037B2 (en) 2012-08-07 2017-01-17 Dell Products L.P. System and method for maintaining solvency within a cache
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
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
US9336226B2 (en) 2013-01-11 2016-05-10 Commvault Systems, Inc. Criteria-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 伊姆西公司 用于管理存储器的方法和装置
EP3090344B1 (de) 2013-12-30 2018-07-18 Stratus Technologies Bermuda Ltd. Systeme und verfahren für dynamisches checkpointing
US9588844B2 (en) 2013-12-30 2017-03-07 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods using data forwarding
ES2652262T3 (es) 2013-12-30 2018-02-01 Stratus Technologies Bermuda Ltd. Método de retardar puntos de comprobación inspeccionando paquetes de red
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
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
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 腾讯科技(深圳)有限公司 一种资源数据共享方法、服务器及系统
WO2015150976A1 (en) 2014-04-03 2015-10-08 Strato Scale Ltd. Cluster-wide memory management using similarity-preserving signatures
US9342346B2 (en) 2014-07-27 2016-05-17 Strato Scale Ltd. Live migration of virtual machines that use externalized memory pages
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
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
US9390028B2 (en) 2014-10-19 2016-07-12 Strato Scale Ltd. Coordination between memory-saving mechanisms in computers that run virtual machines
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
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
CN106575304A (zh) 2015-05-19 2017-04-19 广州市动景计算机科技有限公司 用于在设备上加载网页中的资源的方法和装置
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
CN115061971A (zh) * 2015-12-08 2022-09-16 乌尔特拉塔有限责任公司 使用容错对象的存储器结构操作和一致性
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
US10452547B2 (en) 2017-12-29 2019-10-22 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
US10467139B2 (en) 2017-12-29 2019-11-05 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
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
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
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
US10732885B2 (en) 2018-02-14 2020-08-04 Commvault Systems, Inc. Block-level live browsing and private writable snapshots using an ISCSI server
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
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
CN111902804B (zh) 2018-06-25 2024-03-01 阿里巴巴集团控股有限公司 用于管理存储设备的资源并量化i/o请求成本的系统和方法
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
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
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
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
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
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
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)

* Cited by examiner, † Cited by third party
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
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5335325A (en) * 1987-12-22 1994-08-02 Kendall Square Research Corporation High-speed packet switching apparatus and method
US5226039A (en) * 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5119481A (en) * 1987-12-22 1992-06-02 Kendall Square Research Corporation Register bus multiprocessor system with shift
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
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
DE69022716T2 (de) * 1990-03-19 1996-03-14 Bull Hn Information Syst 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
US5245563A (en) * 1991-09-20 1993-09-14 Kendall Square Research Corporation Fast control for round unit
US5313647A (en) * 1991-09-20 1994-05-17 Kendall Square Research Corporation Digital data processor with improved checkpointing and forking
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 パス名解決装置
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
US5390326A (en) * 1993-04-30 1995-02-14 The Foxboro Company Local area network with fault detection and recovery
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
US5701462A (en) * 1993-12-29 1997-12-23 Microsoft Corporation Distributed file system providing a unified name space with efficient name resolution
US5689700A (en) * 1993-12-29 1997-11-18 Microsoft Corporation Unification of directory service with file system services
US5519855A (en) * 1994-01-14 1996-05-21 Microsoft Corporation Summary catalogs
US5588147A (en) * 1994-01-14 1996-12-24 Microsoft Corporation Replication facility
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
DE69526652T2 (de) * 1994-02-28 2002-12-05 British Telecomm Bereitstellung von Diensten in Kommunikationsnetzen
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

Also Published As

Publication number Publication date
AU7303598A (en) 1998-06-10
EP0978069B1 (de) 2003-06-18
US20080256090A1 (en) 2008-10-16
WO1998022874A1 (en) 1998-05-28
DE69722962D1 (de) 2003-07-24
CA2221874C (en) 2006-08-15
WO1998022892A1 (en) 1998-05-28
EP0978069A1 (de) 2000-02-09
EP0844559A3 (de) 1998-06-10
CA2221874A1 (en) 1998-05-22
JPH10254761A (ja) 1998-09-25
AU7303098A (en) 1998-06-10
JP2001506022A (ja) 2001-05-08
US6148377A (en) 2000-11-14
EP0844559A2 (de) 1998-05-27
ATE243336T1 (de) 2003-07-15
US5918229A (en) 1999-06-29

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
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
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

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee