DE19900636A1 - Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem - Google Patents
Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein RechnersystemInfo
- Publication number
- DE19900636A1 DE19900636A1 DE19900636A DE19900636A DE19900636A1 DE 19900636 A1 DE19900636 A1 DE 19900636A1 DE 19900636 A DE19900636 A DE 19900636A DE 19900636 A DE19900636 A DE 19900636A DE 19900636 A1 DE19900636 A1 DE 19900636A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- storage devices
- computer
- data storage
- cells
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Abstract
Die vorliegende Erfindung ermöglicht einen verbesserten Datenzugriff und eine verbesserte Datenverwaltung in einem Rechnersystem, indem Daten in einzelne Teildaten F unterteilt und in Zellen Z von Speichereinrichtungen C so gespeichert werden, daß die Teildaten F, auf die zugegriffen wird und die verwaltet werden, in dem Rechnersystem redundant vorliegen. Rechnereinheiten CL können auf die redundant gespeicherten Daten zugreifen, wobei deren Speicherung in den Speichereinrichtungen C eine schnellere Versorgung der zugreifenden Rechnereinheiten CL gewährleistet. Dies wird insbesondere dadurch erreicht, daß auf die redundant gespeicherten Daten in Abhängigkeit von Parametern von Datenübertragungen zwischen den Rechnereinheiten CL und den Datenspeichereinrichtungen C zugegriffen wird und die redundant gespeicherten Daten in Abhängigkeit der Datenübertragungsparameter durch entsprechendes Kopieren und Löschen zwischen den Datenspeichereinrichtungen C verschoben werden.
Description
Die Erfindung betrifft im allgemeinen ein Datenzugriffs-
und -verwaltungssystem sowie ein Verfahren zum Datenzugriff
und zur Datenverwaltung für ein Rechnersystem. Insbesondere
betrifft die Erfindung ein System und ein Verfahren zur
Optimierung des Zugriffs auf Daten und deren Bearbeitung in
verteilten und vernetzten Rechnerstrukturen.
Die zunehmende Anwendung verteilter und vernetzter Rechner
strukturen und -anordnungen hat zur Folge, daß Daten und
Funktionalitäten zur Datenverwaltung nicht mehr von ein
heitlichen Rechnersystemen bereitgestellt bzw. genutzt
werden, sondern von unterschiedlichen, verteilten Rechner
systemen, die untereinander vernetzt sind.
Bei herkömmlichen verteilten und vernetzten Rechnerstruktu
ren und -anordnungen werden im allgemeinen Daten und Funk
tionalitäten von einem zentralen Rechnersystem, einem
sogenannten Server, oder einer Ansammlung zentraler Rech
nersysteme, sogenannten Serverclustern, zur Verfügung
gestellt. Andere Rechnersysteme, sogenannte Clients, wie
z. B. Personal Computer, stehen beispielsweise über Netzwer
ke oder Busse mit dem zentralen Rechnersystem in Verbin
dung, um auf die Daten und Funktionalitäten zuzugreifen.
Dabei treten verschiedene, die Versorgung von Clients mit
Daten und/oder Funktionalitäten einschränkende Probleme
auf, insbesondere, wenn der Zugriff auf ein zentrales
Rechnersystem durch mehrere Clients in einem kurzen Zeit
raum oder sogar gleichzeitig erfolgt. Ein Beispiel hierfür
sind Computerspiele, die über das Internet mehreren Spie
lern zur Verfügung gestellt werden.
Da nur ein zentrales Rechnersystem (Server) verwendet wird,
führt dessen Ausfall dazu, daß die Clients nicht mehr auf
die bereitgehalten Daten und Funktionalitäten zugreifen
können. Auch der Ausfall von Netzwerkbereichen, die den
Server mit den Clients verbinden, führt zu einem Totalaus
fall der gesamten Rechnerstruktur.
Das weiteren sind die Übertragungszeiten von dem Server zu
einzelnen Clients z. T. stark unterschiedlich, da die Ver
bindungsqualität zu den Clients z. B. aufgrund der unter
schiedlichen Entfernungen zwischen dem Server und den
Clients sowie unterschiedlichen Übertragungsleistungen in
verschiedenen Bereichen des Netzwerks variiert. Besonders
bei interaktiven Operationen mehrerer Clients in Verbindung
mit dem Server führt eine derartige unzureichende Übertra
gungscharakteristik oft zu einer unbefriedigenden Versor
gung einzelner Clients mit Daten/Funktionalitäten. Hier
sind z. B. die sogenannten "lags" (Verzögerungen) zu nennen,
die die Kommunikation zwischen dem Server und den Clients
stören.
Die Aufgabe der vorliegenden Erfindung ist es, die oben
aufgeführten Probleme des bekannten Stands der Technik zu
beseitigen. Insbesondere ist es eine Aufgabe der Erfindung,
die Übertragungsqualität zwischen Clients und Daten bereit
stellenden Einrichtungen einer vernetzten, verteilten
Rechnerstruktur so zu optimieren, daß jeder Client mit den
jeweils angeforderten Daten in einer gewünschten, anwen
dungsspezifischen Weise versorgt wird. Vorzugsweise soll
die Erfindung eine möglichst schnelle Versorgung mit Da
ten/Funktionalitäten ermöglichen, wobei zusätzlich gewähr
leistet sein soll, daß die Übertragungen möglichst
fehlertolerant durchgeführt werden.
Des weiteren soll die Erfindung die Funktionsfähigkeit
eines verteilten, vernetzten Rechnersystems bei einem
Ausfall von Daten bereitstellenden Einrichtungen der Rech
nerstruktur sicherstellen. Die Erfindung soll auch die
Funktionsfähigkeit eines verteilten, vernetzten Rechnersy
stems bei einem Ausfall einzelner Bereiche der Netzwerke
gewährleisten, über die die Daten bereitstellenden Einrich
tungen und Clients miteinander in Verbindung stehen.
Des weiteren soll die Erfindung ermöglichen, daß Clients
nur aktuelle Daten zur Verfügung gestellt werden. Auch
soll die Erfindung die erforderliche Übertragungskapazitä
ten eines vernetzten, verteilten Rechnersystems reduzieren.
Die oben genannten Aufgaben der Erfindung werden mit Syste
men gemäß den Ansprüchen 1, 17 und 18 und mit Verfahren
gemäß den Ansprüchen 30, 44 und 45 sowie durch bevorzugte
Ausführungsformen der erfindungsgemäßen Systeme nach einem
der Ansprüche 2 bis 16 sowie nach einem der Ansprüche 19
bis 29 und durch bevorzugte Ausführungsformen der erfin
dungsgemäßen Verfahren nach einem der Ansprüche 31 bis 43
sowie nach einem der Ansprüche 46 bis 55 gelöst.
Bei dem erfindungsgemäßen System nach Anspruch 1 sind die
in einem Rechnersystem vorliegenden Daten in Abhängigkeit
von ermittelten vorbestimmten Parametern der Datenübertra
gung zwischen Datenspeichereinrichtungen und Rechnereinhei
ten in den Datenspeichereinrichtungen redundant gespeichert
und die Rechnereinheiten greifen in Abhängigkeit von den
ermittelten vorbestimmten Parametern auf eine der Datenspei
chereinrichtungen zu. Auf diese Weise wird ermöglicht,
Datenübertragungen zwischen den Datenspeichereinrichtungen
und den Rechnereinheiten in einer gewünschten anwendungs
spezifischen Weise zu optimieren, um beispielsweise schnel
ler oder mit weniger Fehlern behaftet durchgeführt zu
werden.
Des weiteren umfassen die Datenspeichereinrichtungen Steu
ereinheiten zur Steuerung des Datenzugriffs und der Daten
verwaltung, um unabhängig von anderen Einrichtungen des
Rechnersystems zu arbeiten. Dies reduziert die Menge der zu
übertragenden Daten in dem des erfindungsgemäßen System und
erhöht die Ausfallsicherheit des erfindungsgemäßen Systems,
da die Daten nicht zentral bearbeitet werden.
Um eine zusätzliche Optimierung zu erreichen, ist es zu
bevorzugen, daß die Datenspeichereinrichtungen in dem
System redundant gespeicherten Daten in Abhängigkeit der
ermittelten Parameter von Datenübertragungen zwischen den
einzelnen Datenspeichereinrichtungen und der Rechnereinheit
untereinander kopieren und in den Datenspeichereinrichtun
gen löschen, in denen die kopierten Daten zuvor gespeichert
waren. Somit können Daten innerhalb des erfindungsgemäßen
Systems von einer Datenspeichereinrichtung zu anderen
Datenspeichereinrichtungen verschoben werden, deren Parame
ter der Datenübertragung für den jeweiligen Anwendungsfall
der Erfindung in höherem Maß eine Optimierung des Datenzu
griffs und der Datenverwaltung zu ermöglichen.
Außerdem ist es zu bevorzugen, daß die Datenspeicherein
richtungen die gespeicherten Daten unabhängig von der
Rechnereinheit bearbeiten. Auf diese Weise können Daten
dezentral bearbeitet werden, wodurch eine erhöhte Datensi
cherheit und erhöhte Ausfallsicherheit sowie eine Entla
stung einzelner Systemkomponenten erreicht wird.
Bei einer weiteren Ausführungsform sind die in dem System
Daten in Datenteilmengen unterteilt und die Datenspei
chereinrichtungen sind so in Zellen unterteilt, daß jede
der redundant zu speichernde der Datenteilmengen in jeweils
einer der Zellen der entsprechenden Datenspeichereinrich
tungen gespeichert sind, um nur die Daten redundant zu
speichern, die aktuell benötigt werden.
Des weiteren ist es vorteilhaft, daß die Datenspeicherein
richtungen in Abhängigkeit von den Datenübertragungsparame
tern in Zellen unterteilt sind, um die Datenübertragungen
innerhalb des erfindungsgemäßen Systems weiter zu optimie
ren.
Um den Datenzugriff und die Datenverwaltung effizienter
durchzuführen, kann jede Zelle zusätzliche Daten aufweisen,
die die Parameter von Datenübertragungen zwischen den
einzelnen Datenspeichereinrichtungen und der Rechnerein
heit, und/oder benachbarte Zellen, und/oder Zellen betref
fen, die die in dem System redundant gespeicherten Daten
umfassen.
Außerdem ist es möglich Zellen zu verwenden, die unterein
ander zusätzliche Daten austauschen können, die zum Daten
zugriff und zur Datenverwaltung verwendet werden. So werden
die in dem erfindungsgemäßen System zu übermittelnden
Informationen zum Datenzugriff und zur Datenverwaltung
zusätzlich reduziert.
Bei speziellen Datenspeichereinrichtungen können die Zellen
so gestaltet sein, daß die Parameter von Datenübertragungen
zwischen den einzelnen Datenspeichereinrichtungen und der
Rechnereinheit für die Zellen einer Datenspeichereinrich
tung gleich sind, um einen einheitlichen Datenzugriff für
die einzelnen Datenspeichereinrichtungen zu erzielen.
Auch können Rechnereinheiten verwendet werden, die Daten
zur Speicherung in den Datenspeichereinrichtungen ausgeben
und/oder in den Datenspeichereinrichtungen gespeicherte
Daten bearbeiten, um die Datenspeichereinrichtungen zu
entlasten.
Um die Daten unabhängig von dem erfindungsgemäßen System zu
bearbeiten, können die Rechnereinheiten auch mit einem oder
mehreren Benutzern in Verbindung stehen, um die Daten der
Datenspeichereinrichtungen weiterzuleiten und/oder von dem
Benutzer gesteuert zu werden. Vorzugsweise ist ein derarti
ger Benutzer ein Personal Computer und/oder eine zentrale
Recheneinheit eines Computers und/oder eine weitere Daten
speichereinrichtung.
Auf diese Weise kann die Rechnereinheit auch ein System
sein, das Internetdienste zur Verfügung stellt, wie z. B.
Datenbankzugriffe und Computerspiele. Die Rechnereinheit
kann auch geeignet sein, direkt auf einzelne Zellen der
Datenspeichereinrichtungen zuzugreifen, wodurch die einzel
nen Datenspeichereinrichtungen von Aufgaben zum Datenzu
griff und zur Datenverwaltung entlastet werden.
Insbesondere können die vorbestimmten Parameter von Daten
übertragungen zwischen den einzelnen Datenspeichereinrich
tungen und der Rechnereinheit die Übertragungsdauer
und/oder die Fehlerrate und/oder die Dauer von Datenbear
beitungen der einzelnen Datenspeichereinrichtungen vor der
Übertragung der Daten umfassen. Auf diese Weise kann auf
Daten schneller zugegriffen werden und es werden Daten zur
Verfügung gestellt, die weniger fehlerbehaftet sind.
Die einzelnen Komponenten des erfindungsgemäßen Systems
gemäß Anspruch 1 sind über Datenübertragungseinrichtungen
miteinander verbunden, wobei diese elektrisch leitende
Verbindungen und/oder Bussysteme und/oder Rechnernetzwerke
und/oder drahtgebundene oder drahtlose (mobile) Telefon
netzwerke und/oder das Internet umfassen können. Somit
eignet sich die vorliegende Erfindung für jede Rechner
struktur und -anordnung sowie für jedes Rechnersystem, die
verteilte und vernetzte Einrichtungen nutzen.
Unter Verwendung der Erfindung kann somit ein Datenbanksy
stem oder eine Rechnerstruktur zum Datenzugriff und zur
Datenverwaltung gemäß Anspruch 17 aufgebaut werden, wobei
ein erfindungsgemäßes Datenbanksystem oder eine erfindungs
gemäße Rechnerstruktur auch aus lokal benachbart angeordne
ten Komponenten aufgebaut werden kann.
Des weiteren kann die Erfindung in einem System gemäß
Anspruch 18 für ein Computerspiel verwendet werden, das
über das Internet zur Verfügung gestellt wird. Wobei hier
zu bevorzugen ist, daß wenigstens eine Rechnereinheit ein
Internet-Service-Provider ist, um die vorliegende Erfindung
in vorhandene Rechnerstrukturen des Internets zu integrie
ren und um Internetbenutzern einen erfindungsgemäßen Zu
griff auf Daten zu ermöglichen.
Insbesondere eignet sich die Erfindung für interaktive
Computerspiele zur Benutzung durch wenigstens zwei Benut
zer, um eine optimierte Versorgung der einzelnen Benutzer
mit für das Computerspiel erforderlichen Daten zu gewähr
leisten, wobei jeder Benutzer jeweils mit einer Rechnerein
heit verbunden sein kann.
Vorzugsweise werden von den Rechnereinheiten Daten zur
Durchführung des Computerspiels an die Benutzer übertragen,
wodurch das Computerspiel auch zumindest teilweise unabhän
gig von den Rechnereinheiten durchgeführt werden kann.
Eine weitere Entlastung der Rechnereinheiten und der Daten
speichereinrichtungen kann erreicht werden, wenn die Benut
zer die erhaltenen Daten zur Durchführung des Computer
spiels bearbeiten und an die entsprechenden Rechnereinhei
ten zurück übertragen.
Außerdem kann das erfindungsgemäße System für ein Computer
spiel zusätzlich Einrichtungen zur Erfassung vorbestimmter
Parameter der Datenübertragung zwischen den Rechnereinhei
ten und den jeweils damit verbundenen Benutzern aufweisen,
um den Datenzugriff und die Datenverwaltung zusätzlich zu
optimieren. Vorzugsweise umfassen diese vorbestimmten
Parameter die Übertragungsdauer, und/oder die Fehlerrate,
und/oder die Dauer von Datenbearbeitungen der einzelnen
Rechnereinheiten und/oder der einzelnen Benutzern vor der
Übertragung der Daten.
Somit können die Daten zur Durchführung des Computerspiels
auch in Abhängigkeit der ermittelten vorbestimmten Parame
ter der Datenübertragung zwischen den Rechnereinheiten und
den jeweils damit verbundenen Benutzern redundant gespei
chert werden.
Des weiteren können die Rechnereinheiten von den entspre
chenden Benutzern Steuerdaten zur Durchführung des Compu
terspiels erhalten, um verbesserte Interaktionen der
einzelnen Benutzer zu ermöglichen.
Diese Steuerdaten oder diesen entsprechende Daten können
dann von den Rechnereinheiten an die Datenspeichereinrich
tungen ausgeben werden. Auf diese Weise wird es möglich,
daß die Rechnereinheiten in Abhängigkeit der Steuerdaten
Daten zur Durchführung des Computerspiels bearbeiten,
und/oder die Datenspeichereinrichtungen in Abhängigkeit der
Steuerdaten oder der den Steuerdaten entsprechenden Daten
Daten zur Durchführung des Computerspiels bearbeiten,
wodurch ein effizienterer Datenzugriff und eine effiziente
rer Datenverwaltung erreicht wird.
In vergleichbarer Weise werden bei dem erfindungsgemäßen
Verfahren gemäß Anspruch 30 Daten in wenigstens zwei von
wenigstens zwei Datenspeichereinrichtungen in Abhängigkeit
von ermittelten Parameter der Datenübertragung zwischen den
Datenspeichereinrichtungen und Rechnereinheiten redundant
gespeichert, wobei der Zugriff auf die gespeicherten Daten
durch die Rechnereinheiten in Abhängigkeit von den ermit
telten Parameter der Datenübertragung erfolgt.
Vorzugsweise wird der Datenzugriff und die Datenverwaltung
von den Datenspeichereinrichtungen gesteuert.
Bei einer Ausführungsform des erfindungsgemäßen Verfahrens
werden die redundant gespeicherten Daten in Abhängigkeit
von den ermittelten Parametern von Datenübertragungen
zwischen den einzelnen Datenspeichereinrichtungen und der
Rechnereinheit von den Datenspeichereinrichtungen unterein
ander kopiert und in den Datenspeichereinrichtungen ge
löscht, in denen die kopierten Daten zuvor gespeichert
waren.
Außerdem ist es möglich, die gespeicherten Daten von den
Datenspeichereinrichtungen unabhängig von der Rechnerein
heit zu bearbeiten, um einzelne Einrichtungen zu entlasten
und eine erhöhte Betriebssicherheit des erfindungsgemäßen
Verfahrens zu erreichen.
Um eine anwendungsspezifische und somit optimierte Speiche
rung der Daten zu ermöglichen, können die Daten in Daten
teilmengen unterteilt werden, wobei die redundant zu
speichernde der Datenteilmengen jeweils in den Zellen der
einzelnen Datenspeichereinrichtungen gespeichert werden.
Vorzugsweise wird das Unterteilen in Datenteilmengen und
das Speichern in die Zellen in Abhängigkeit der Datenüber
tragungsparameter durchgeführt.
Eine weitere Optimierung kann erreicht werden, wenn zusätz
liche Daten zum Datenzugriff und zur Datenverwaltung in den
Zellen gespeichert werden, die die Parameter von Datenüber
tragungen zwischen den einzelnen Datenspeichereinrichtungen
und der Rechnereinheit, und/oder benachbarte Zellen,
und/oder Zellen betreffen, die die in dem System redundant
gespeicherten Daten umfassen.
Darüber hinaus können zusätzliche Daten zum Datenzugriff
und zur Datenverwaltung zwischen den Zellen der Datenspei
chereinrichtungen ausgetauscht werden. Vorzugsweise weist
das Zugreifen auf Daten von Zellen einer Datenspeicherein
richtung die gleichen Datenübertragungsparameter auf, um
einen einheitlichen Datenzugriff für die einzelnen Daten
speichereinrichtungen zu gewährleisten.
Zur Entlastung des gesamten Systems können auch Daten von
der Rechnereinheit zur Speicherung in den Datenspeicherein
richtungen ausgegeben und/oder die in den Datenspeicherein
richtungen gespeicherten Daten von der Rechnereinheit
bearbeitet werden.
Vorzugsweise werden die Daten von der Rechnereinheit an
einen Benutzer übertragen und/oder die Rechnereinheit wird
von dem Benutzer gesteuert, um Daten unabhängig von der
Durchführung des erfindungsgemäßen Verfahrens zu bearbeiten
und den Ablauf des erfindungsgemäßen Verfahrens zusätzlich
zu steuern. Somit können mit dem erfindungsgemäßen Verfah
ren Internetdienste zur Verfügung gestellt werden.
Um einen effizienteren Datenzugriff und eine effizientere
Datenverwaltung zu erzielen, kann der Zugriff auch direkt
auf die Daten einzelner Zellen der Datenspeichereinrichtun
gen erfolgen.
Außerdem ist zu bevorzugen, daß die Ermittlung der vorbe
stimmten Parameter von Datenübertragungen zwischen den
einzelnen Datenspeichereinrichtungen und der Rechnereinheit
die Ermittlung der Übertragungsdauer, und/oder der Fehler
rate, und/oder der Dauer von Datenbearbeitungen der einzel
nen Datenspeichereinrichtungen vor der Übertragung der
Daten umfaßt, um schneller und/oder sicherer auf Daten
zuzugreifen.
Auf diese Weise ist es möglich ein Verfahren für ein Daten
banksystem oder eine Rechnerstruktur gemäß Anspruch 44
sowie ein Verfahren für ein Internetcomputerspiel gemäß
Anspruch 45 zur Verfügung zu stellen, wobei im letzteren
Fall das Zugreifen auf Daten in den Datenspeichereinrich
tungen vorzugsweise die Nutzung eines Internet-Service-
Providers umfaßt.
Des weiteren kann das Verfahren es ermöglichen, daß hierbei
wenigstens zwei Benutzer auf das Computerspiel zugreifen,
wobei das Computerspiel ein interaktives Computerspiel ist.
Die Daten zur Durchführung des Computerspiels von den
Rechnereinheiten können an die entsprechenden Benutzer
übertragen werden. Vorzugsweise werden dann die von den
Benutzern erhaltenen Daten von den Benutzern bearbeitet und
an die entsprechenden Rechnereinheiten zurück übertragen,
um die Rechnereinheiten und die Datenspeichereinrichtungen
zu entlasten und die Durchführung des Computerspiels zu
optimieren.
Bei einer weiteren Ausführungsform werden zusätzlich vorbe
stimmte Parameter der Datenübertragung zwischen den Rech
nereinheiten und den jeweils damit verbundenen Benutzern
ermittelt, um den Datenzugriff und die Datenverwaltung bei
dem erfindungsgemäßen Verfahren auch unter Berücksichtigung
dieser Parameter durchzuführen.
Des weiteren ist zu bevorzugen, daß die Ermittlung der
vorbestimmten Parameter von Datenübertragungen zwischen den
Rechnereinheiten und den jeweils damit verbundenen Benut
zern die Ermittlung der Übertragungsdauer, und/oder der
Fehlerrate, und/oder der Dauer von Datenbearbeitungen der
einzelnen Rechnereinheiten und/oder der einzelnen Benutzern
vor der Übertragung der Daten umfaßt.
Auf diese Weise kann die redundante Speicherung der Daten
zur Durchführung des Computerspiels auch in Abhängigkeit
der ermittelten vorbestimmten Parameter der Datenübertra
gung zwischen den Rechnereinheiten und den jeweils damit
verbundenen Benutzern redundant durchgeführt werden.
Eine effizientere Durchführung von interaktiven Vorgängen
des Computerspiels kann erzielt werden, wenn zusätzlich
Steuerdaten zur Durchführung des Computerspiels von den
Benutzern die entsprechenden Rechnereinheiten übertragen
werden. Vorzugsweise werden die Steuerdaten oder entspre
chende Daten von den Rechnereinheiten auch an die Daten
speichereinrichtungen übertragen werden.
Schließlich ist es möglich die Daten zur Durchführung des
Computerspiels in Abhängigkeit der Steuerdaten von den
Rechnereinheiten zu bearbeiten, und/oder die Daten zur
Durchführung des Computerspiels in Abhängigkeit der Steu
erdaten oder der den Steuerdaten entsprechenden Daten von
den Datenspeichereinrichtungen zu bearbeiten. Auf diese
Weise werden die einzelnen Benutzer entlastet und die
redundant gespeicherten Daten werden von den Datenspei
chereinrichtungen bearbeitet, die eine gewünschte Daten
übertragung sicherstellen.
Durch ein erfindungsgemäßes Ersetzen einzelner ausgefalle
ner Zellen ist es möglich Verbindungsfehler zu kompensieren
und bei einem Ausfall einzelner Bereiche einer verteilten,
vernetzten Rechnerstruktur Bereiche zu nutzen, die die Fun
ktionalität der gesamten Rechnerstruktur beibehalten, indem
Daten redundant in dem Rechnersystem vorliegen. Da die
Erfindung eine Überwachung der verwendeten Daten ermög
licht, wird auf diese Weise auch die Konsistenz der verfüg
baren Daten gewährleistet.
Des weiteren optimiert die Verwendung der vorliegenden
Erfindung die Verbindungsgüte zwischen Clients und Daten
bereitstellenden Einrichtungen einer Rechnerstruktur selb
ständig, so daß schlechte Übertragungsqualitäten (z. B.
niedrige Übertragungsrate, Verzögerungen, . . .) automatisch
kompensiert werden.
Hierzu werden einzelne Bereiche eines verteilten, vernetz
ten Rechnersystems, z. B. einzelne Speicherbereiche, ohne
Unterbrechung des Betriebs skaliert. D. h. derartige einzel
ne Bereiche des erfindungsgemäßen Systems können zu jedem
beliebigen Zeitpunkt hinzugefügt oder entfernt werden.
Außerdem ermöglicht die Erfindung, einzelne ausgefallene
Bereiche eines vernetzten, verteilten Rechnersystems ohne
Unterbrechung des Betriebs durch andere Bereiche zu erset
zen. Dies ist möglich, da die Erfindung keine zentrale
Verbindung zwischen einzelnen Bereichen des Rechnersystems
erfordert, wodurch Einschränkungen der Funktionalität des
erfindungsgemäßen Systems aufgrund von Ausfällen (z. B.
technischen Defekten) verhindert werden. Zusätzlich gewähr
leistet die Erfindung eine höhere Datensicherheit, da die
Daten nicht zentral gespeichert werden.
Auch die Menge der von einzelnen Bereichen eines vernetz
ten, verteilten Rechnersystems zu verwaltenden Daten kann
auf diese Weise reduziert werden. Das hat zur Folge, daß
auch die erforderlichen Übertragungskapazitäten zwischen
einzelnen Bereichen des erfindungsgemäßen Systems reduziert
werden.
Außerdem können dem erfindungsgemäßen System weitere Kompo
nenten hinzugefügt werden ohne dabei dessen grundsätzliche
Struktur ändern zu müssen.
Der erfindungsgemäße Ansatz entstand zwar insbesondere bei
der Lösung der oben genannten Problem bei der Umsetzung von
(interaktiven) Computerspielen für das Internet. Es ist
aber ausdrücklich zu betonen, daß die vorliegende Erfindung
nicht auf derartige Anwendungen beschränkt ist, sondern
ohne Einschränkung für jedes Rechnersystem und jede Rech
nerstruktur anwendbar ist, die verteilte, vernetzte Ein
richtungen nutzen, die Daten bereitstellen.
In der folgenden Beschreibung wird auf die beigefügten
Zeichnungen Bezug genommen:
Fig. 1: Schematische Darstellung einer bevorzugten Aus
führungsform einer Rechnerstruktur gemäß der vorliegenden
Erfindung.
Fig. 2: Schematische Darstellung einer Datenstruktur
sowie deren Unterteilung und Zuordnung zu Zellen gemäß der
vorliegenden Erfindung.
Fig. 3: Schematische Darstellung einer weiteren bevorzug
ten Ausführungsform einer Rechnerstruktur gemäß der vorlie
genden Erfindung.
Fig. 4: Schematische Darstellung eines Ausschnitts der
bevorzugten Ausführungsform von Fig. 1, zur Erläuterung von
Operationen, die zur Durchführung der Erfindung verwendet
werden.
Die im folgenden Text verwendeten Begriffe werden hier
unter Bezugnahme auf Fig. 1 und 2 erläutert.
Die gesamte Datenmenge GD, die in Verbindung mit der Erfin
dung verwendet wird, wird in einzelne Teildatenmengen
unterteilt, die als Feld F bezeichnet werden.
Die Position jedes Felds F in der Gesamtdatenmenge GD wird
durch eine eindeutige Feldposition oder Kennung FeldID
beschrieben, wobei die Gesamtdatenmenge GD ein oder mehrdi
mensional aufgeteilt werden kann. Wird beispielsweise die
Gesamtdatenmenge GD dreidimensional aufgeteilt, kann jede
Feldposition FeldID durch x, y, z beschrieben werden.
Eine Zelle Z ist die kleinste Einheit zur Datenspeicherung,
die genau ein Feld F speichert. Eine Zelle Z enthält auch
weitere Informationen, auf die später im Einzelnen einge
gangen wird.
Ein Cluster C besteht aus einer Zelle Z oder ist eine An
sammlung mehrerer Zellen Z. Ein Cluster C kann beispiels
weise von einem einzelnen Rechner oder einem integrierten
Schaltkreis gebildet werden, der einzelne oder mehrere
Zellen Z verwaltet. Des weiteren kann ein Cluster C als
übergeordnete Kontrolleinheit für die in ihm enthaltenen
Zellen Z arbeiten.
Alle Cluster C, die zur Repräsentation des gesamten Daten
bestandes GD zusammengefaßt werden, bilden einen Cluster
pool oder Clusterverbund CV. Die einzelnen Cluster C sind
über ein Netzwerk N verbunden, wobei jeder Cluster C eine
eindeutige Adresse hat. So kann ein Clusterverbund CV durch
Vernetzung einzelner, Cluster bildender Rechner und/oder
Verschaltung einzelner, Cluster bildender integrierter
Schaltkreise gebildet werden.
Innerhalb des Clusterverbandes wird jeder Cluster mit einer
eindeutigen Kennung ClusterID identifiziert, die eine
einzelne Nummer oder ein Tupel sein kann. Einzelne Cluster
im Verband enthalten eine Tabelle ihrer Nachbarn (Nachbar-
Tabelle), um Nachrichten an bestimmte Cluster weiterleiten
zu können. Hierbei ist ein Nachbar ein anderer Cluster mit
einer nächsten höheren oder niedrigeren Kennung ClusterID.
Die Anzahl der Zellen Z, die zu einem Cluster C gehören,
kann zwischen 0 und einer Obergrenze maxcc schwanken, wobei
maxcc für jeden Cluster C im Clusterverbund CV verschieden
sein kann. Die Anzahl der Zellen Z, die tatsächlich in
einem Cluster C enthalten sind, wird mit ncc bezeichnet.
Außerdem hat jede Zelle Z eine eindeutige Kennung
ZellID innerhalb eines Clusters C.
Des weiteren können Zellen Z eines Clusters C Informationen
untereinander austauschen ohne dabei Nachrichten über das
Netzwerk N zu senden, wodurch eine sichere Nachrichtenüber
tragung innerhalb eines Clusters C ermöglicht wird. Zudem
ist zu bevorzugen, daß alle Zellen Z eines Clusters C über
die gleiche Verbindungsgüte verfügen, d. h. die Anbindung an
das Netzwerk N kann zwar zwischen einzelnen Clustern C
verschieden sein, ist jedoch für alle Zellen Z eines Clu
sters C gleich.
Wie beschrieben, umfaßt ein Cluster C zwischen 0 und maxcc
Zellen Z. Jeder Speicherplatz eines Clusters C, der eine
Zelle Z speichern kann, wird als Slot S bezeichnet. Ein
Slot S kann voll sein, d. h. er speichert die Daten einer
Zelle Z, oder leer sein, d. h. er repräsentiert keine Zelle
Z. So weisen die Cluster C aus Fig. 2 jeweils nur einen
vollen Slot S auf. Die Kennung SlotID jedes Slots S ent
spricht der Kennung ZellID, die eine Zelle Z an diesem
Speicherplatz erhalten würde.
Ein Client CL (z. B. Internet-Provider, Personal-Computer,
Netzwerkrechner, o. ä.) ist eine über das Netzwerk N kommu
nizierende Einheit, die Daten anfordert, bearbeitet
und/oder den Auftrag gibt, die geänderten Daten zu spei
chern. Bei der vorliegenden Erfindung wird keinerlei Annah
me über die tatsächliche Realisierung des Netzwerkes N
gemacht. Als Netzwerk N können beliebige Daten übertragende
Einrichtungen zum Einsatz kommen, wie z. B. propritäre
Busse, lokale Netzwerke oder das Internet. Auch wird bei
der Erfindung nicht vorausgesetzt, daß das Netzwerk N die
Übertragung aller Daten gewährleistet, weshalb auch Rück
meldungen über eine Datenübertragung an den entsprechenden
Absender nicht erforderlich sind, und daß das Netzwerk N
Daten entsprechend ihres Aussendezeitpunkts übermittelt.
Wie im folgenden und in Fig. 2 dargestellt, basiert die
Erfindung unter anderem auf einer Verteilung der gesamten
Daten GD bzw. der Felder F auf mehrere Zellen Z gleichen
Inhalts, d. h. ein einzelnes Feld F wird in mehreren Zellen
Z redundant gespeichert. Die Anzahl der Zellen Z, die ein
bestimmtes Feld F speichern und verwalten, wird als nm
bezeichnet und ist im gesamten Clusterverbund CV gleich,
wobei jede dieser nm Zellen Z als Spiegel SP für das Feld F
bezeichnet wird, das in den nm Zellen Z gespeichert ist.
In der folgenden Erläuterung der Erfindung wird von nm = 3
ausgegangen, wobei dieser Wert nur zur Veranschaulichung
der Erfindung dient und spezifisch für jeden Anwendungsfall
der Erfindung zu wählen ist.
Eine Antwort AK ist die Antwort auf eine Anfrage RQ. Wel
chen Inhalt und Funktion die einzelnen Anfragen RQ und
Antworten AK haben, hängt von den jeweils übertragenen
Daten ab.
Eine Nachricht MSG ist eine Datenmenge, die zwischen Zellen
Z, Clustern C und Clients CL ausgetauscht wird. Es ist
Aufgabe des Netzwerks N die Nachrichten MSG zu übertragen.
Da der Absender einer Nachricht MSG keine Rückmeldung über
eine erfolgreiche Übertragung erhält, können Nachrichten
MSG verloren gehen. Auch können zwei Nachrichten MSG nach
unterschiedlicher Zeitdauer bei einem Ziel ankommen.
Es werden nun die grundsätzliche Vorgehensweise bei der
vorliegenden Erfindung und einzelne Vorgänge bzw. Operatio
nen zu Durchführung der Erfindung beschrieben.
Die gesamte Datenmenge GD wird in einzelne Felder F aufge
teilt. Eine solche Aufteilung kann beispielsweise zwei-
oder dreidimensional erfolgen. Zum Beispiel könnte man ein
Schachbrett in 8 × 8 Felder F aufteilen, wobei jedes Feld F
dann die Information über das entsprechende Schachbrettfeld
enthalten würde, z. B. welche Spielfigur dort steht. Analog
läßt sich auch ein 3-dimensionaler Raum durch Felder F
darstellen. Es ist aber auch möglich, ein Bild in einzelne
Bildbereiche oder einen Text in einzelne Wörter oder Buch
staben(-folgen) zu unterteilen und einzelnen Feldern F
zuzuordnen. Der Inhalt der Felder F ist anwendungsspezi
fisch und spielt bei der vorliegenden Erfindung keine
Rolle.
Die einzelnen Felder F werden dann in nm Zellen Z gespei
chert, wobei jede Zelle Z ein entsprechendes Feld F, d. h.
die eigentlichen Daten, sowie weitere Informationen spei
chert, die vorzugsweise Verweise auf benachbarte Felder F
betreffen. Diese Informationen erlauben eine Datenredukti
on, da so "leere" Felder F nicht gespeichert werden müssen
und nicht jedem Feld F eine Zelle Z zugeordnet werden muß.
Mehrere Zellen Z werden danach zu einem Cluster C und alle
Cluster C wiederum zu einem Clusterverbund CV zusammenge
faßt. Ein wesentliches Merkmal der Erfindung ist es, daß
jede Zelle im Clusterverbund CV redundant vorhanden ist,
nämlich nm-mal in nm Clustern C. Somit wird jedes Feld F in
diesen Zellen Z nm-mal gespeichert und jede dieser Zellen Z
wird als Spiegel SP hinsichtlich des darin gespeicherten
Feldes F bezeichnet. Außerdem enthält jede Zelle Z auch
Informationen darüber, in welchen Clustern C und/oder in
welchen Zellen Z der entsprechenden Cluster C die anderen
nm-1 Zellen Z liegen.
Des weiteren enthält jede Zelle Z noch weitere Informatio
nen, die vorzugsweise Angaben über die Datenübertragungs
qualität in dem Clusterverbund CV und zu den Clients CL
umfassen, z. B. Übertragungsgüte, Übertragungsgeschwindig
keit, o. ä. Diese Informationen werden aktualisiert, wenn
auf die Zellen Z zugegriffen wird.
Um den Inhalt eines Feldes F zu erhalten, sendet ein Client
CL eine Anfrage über das Netzwerk N an alle Zellen Z
und/oder Cluster C, die das gewünschte Feld F beinhalten,
d. h. an alle Zellen Z, die Spiegel SP des gewünschten Felds
F sind. Von welcher Zelle Z oder welchem Cluster C der
anfragende Client CL eine Antwort erhält, hängt von den
Parametern der Datenübertragungen zu einzelnen Zellen Z
und/oder Clustern C sowie zurück zu den Clients CL ab.
Vorzugsweise erhält der anfragende Client CL von der Zelle
Z und/oder dem Cluster C eine Antwort, die zum jeweiligen
Zeitpunkt die schnellste Datenübertragung realisieren
und/oder eine Bearbeitung der Daten vor ihrem Versenden an
den anfragenden Client CL schneller durchführen können.
Alle Zellen Z und/oder Cluster C und/oder Clients CL über
prüfen regelmäßig die für sie gültigen Parameter für Daten
übertragungen. In regelmäßigen Abständen oder im Anschluß
an festgelegte Aktionen prüfen alle Zellen Z und/oder
Cluster C und/oder Clients CL regelmäßig die für die ver
wendeten Zellen Z gültigen Parameter für Datenübertragun
gen. Entsprechen die überprüften Parameter vorgegebenen
Grenzwerten nicht oder weisen andere Zellen Z und/oder
Cluster C bessere Datenübertragungensparameter auf, werden
die prüfenden Zellen Z versuchen, ihre Daten auf diese
anderen Zellen Z und/oder anderen Cluster C zu verlagern,
um die für diese Daten gültigen Parameter für Datenübertra
gungen zu verbessern. Auf diese Weise optimiert sich der
erfindungsgemäße Clusterverbund CV in Hinblick auf Daten
übertragungen während des Betriebs selbständig.
Bestimmte Anfragen eines Clients CL, wie z. B. eine unten
beschriebene Schreibanfrage WriteRQ, werden zwischen allen
Spiegeln SP des jeweiligen Felds F synchronisiert. Dadurch
werden ausgefallene Spiegel SP identifiziert. Zusätzlich
werden in regelmäßigen Abständen und/oder durch Clients CL
nach Erhalt von Antworten AK zusätzliche Prüfungen ausge
führt. Auch dadurch werden ausgefallene und/oder nicht mehr
aktuelle Spiegel SP identifiziert. Diese Spiegel SP werden
entweder von anderen Spiegeln SP ersetzt oder es werden von
einer Zelle Z oder einem Cluster CL oder einem Client CL
ersatzweise neue Spiegel SP erzeugt oder die vorliegenden
Fehler werden mit unten beschriebenen Methoden behoben.
Somit ist der Clusterverbund CV gegen den Ausfall einzelner
Zellen Z und/oder ganzer Cluster C fehlertolerant.
Außerdem können anfragende Clients CL einzelnen Zellen Z
und/oder Clustern C spezielle Datenbearbeitungsfunktionen
bzw. -aufgaben zuweisen, die unabhängig von der Wirkungs
weise der Clients CL ablaufen. Beispielsweise kann ein
Client CL eine Zelle Z oder einen Cluster C anweisen, die
Daten eines Feld F in bestimmten Intervallen zu ändern.
Dieses Merkmal ist von besonderer Bedeutung, wenn die
vorliegende Erfindung in Verbindung mit Computerspielen
verwendet wird, die über ein Netzwerk, z. B. das Internet,
in Echtzeit durchgeführt werden, um die zu übertragenden
Datenmengen zu reduzieren und die interaktiven Vorgänge bei
der Durchführung eines Computerspiels zu optimieren.
Daten zwischen den einzelnen Clients CL, Clustern C und
Zellen Z werden unter Verwendung eines vorbestimmten Proto
kolls übertragen. D. h. zusätzlich zu den übertragenden
Daten werden von den einzelnen Clients CL, Clustern C und
Zellen Z weitere vorbestimmte Daten ausgesendet und empfan
gen, um, wie unten beschrieben, gewünschte Vorgänge einzu
leiten und in gewünschter Weise zu reagieren. So führen
alle Clients CL, Cluster C und Zellen Z die notwendigen
Operationen durch, um die gewünschte Funktionalität des
entsprechenden Clusterverbund CV zu erreichen.
Wird die Erfindung verwendet, wie in Fig. 1 gezeigt, um
Computerspiele über das Internet zur Verfügung zu stellen,
ist das Netzwerk N das Internet und der Client CL das
Rechnersystem, das als Internet-Provider arbeitet. Die
einzelnen Cluster C umfassen hier Speichereinheiten des
Clients CL und Speichereinrichtungen anderer über das
Internet verteilter Rechnersysteme.
Da im allgemeinen nur eine einzige Verbindung zwischen
einem Client CL (Internet-Service-Provider) und einem
entsprechenden Benutzer B besteht, üblicherweise über eine
Telefonleitung, bilden zur Zeit der Benutzer B und der
Client CL (Internet-Provider) ein als einheitlich anzuse
hendes System. Daher ist in Fig. 4 der Benutzer B aus Fig. 1
nicht dargestellt. Eine erfindungsgemäße Optimierung der
Datenübertragung zu den Benutzern B wäre nur möglich, wenn
der Benutzer B zeitgleichen Zugriff auf verschiedene Inter
net-Provider hätte.
Bei dem derzeitigen Stand der Technik erlaubt die vorlie
gende Erfindung aber eine Optimierung der Datenverwaltung
und -übertragung für als Internet-Provider arbeitende
Clients CL, wenn diese auf die z. B. für ein interaktives
Computerspiel mit mehreren Spielern erforderlichen Daten
über das Internet auf andere als Cluster arbeitende Rech
nersysteme zugreifen.
Die Erfindung kann auch wie in Fig. 3 gezeigt in einer
einheitlichen Rechnerstruktur verwendet werden, wie zum
Beispiel in einem Personal-Computer PC. In diesem Fall
arbeitet die zentrale Recheneinheit CPU als Client und die
verschiedenen datenverwaltenden Einrichtungen MEM1, MEM2,
MEM3 als Cluster. Die datenverwaltenden Einrichtungen
MEM1, MEM2, MEM 3 können herkömmliche Speichereinheiten,
z. B. nicht flüchtige Speicher oder Speicher mit wahlfreien
Zugriff, aber auch spezielle Einrichtungen sein, die z. B.
Daten nicht nur speichern, sondern auch bearbeiten und
somit die Daten der zentralen Recheneinheit CPU nicht immer
uneingeschränkt zur Verfügung stellen können.
Eine Zelle Z kann fünf Zustände annehmen, wobei jeder
Zustand immer eintreten kann, da die Zellen Z nicht aus
fallsicher sind und das Netzwerk N keine Datenübertragungen
gewährleistet und überprüft:
Aktiver Zustand (active): Der Inhalt der Zelle Z ist gültig und die Zelle Z ist betriebsbereit.
Ungültiger Zustand (invalid): Die Zelle Z ist betriebsbe reit, hat aber einen nicht mehr aktuellen gültigen Inhalt. Dies kann z. B. auftreten, wenn die Zelle Z Datenoperationen aufgrund eines technischen Defekts oder nicht erhaltener Informationen nicht ausgeführt hat.
Inaktiver Zustand (inactive): Die Zelle Z ist nicht er reichbar, z. B. weil Datenübertragungen dorthin permanent verloren gehen oder die Zelle Z dauerhaft ausgefallen ist.
Blockierter Zustand (blocked): Die Zelle Z verarbeitet nur bestimmte Datenübertragungen, wie z. B. nur die unten be schriebenen Schreibanfragen WriteRQ oder Leseanfragen ReadRQ.
Leerlauf (idle): Die Zelle Z ist betriebsbereit, wird aber in dem Clusterverband CV zur Zeit nicht genutzt.
Aktiver Zustand (active): Der Inhalt der Zelle Z ist gültig und die Zelle Z ist betriebsbereit.
Ungültiger Zustand (invalid): Die Zelle Z ist betriebsbe reit, hat aber einen nicht mehr aktuellen gültigen Inhalt. Dies kann z. B. auftreten, wenn die Zelle Z Datenoperationen aufgrund eines technischen Defekts oder nicht erhaltener Informationen nicht ausgeführt hat.
Inaktiver Zustand (inactive): Die Zelle Z ist nicht er reichbar, z. B. weil Datenübertragungen dorthin permanent verloren gehen oder die Zelle Z dauerhaft ausgefallen ist.
Blockierter Zustand (blocked): Die Zelle Z verarbeitet nur bestimmte Datenübertragungen, wie z. B. nur die unten be schriebenen Schreibanfragen WriteRQ oder Leseanfragen ReadRQ.
Leerlauf (idle): Die Zelle Z ist betriebsbereit, wird aber in dem Clusterverband CV zur Zeit nicht genutzt.
Eine Zelle Z enthält ein bestimmtes Feld F, also ein Feld F
mit einer bestimmten Feldposition FeldID, und hat eine
eindeutige Position ZellID innerhalb des entsprechenden
Clusters C. Der Cluster C ist wiederum durch eine eindeuti
ge Kennung ClusterID gekennzeichnet. Somit wird eine Zelle
Z durch eine Kennung mit der Form ClusterID:ZellID eindeu
tig gekennzeichnet.
Jeder Cluster C und jeder Client CL ist im Clusterverbund
CV jeweils durch eine Kennung ClusterID, ClientID eindeutig
gekennzeichnet. Besondere Anforderungen werden an diese
Kennungen nicht gestellt, sie müssen die Cluster C und
Clients CL nur eindeutig kennzeichnen.
Im folgenden werden eine Reihe von Algorithmen beschrieben
näher erläutert, die von den weiter unten beschriebenen
funktionalen Operationen genutzt werden, die zur Durchfüh
rung der Erfindung dienen. Diese Erläuterung wird durch
entsprechende Pseudocodes ergänzt, die in der derzeit
bevorzugten Ausführungsform der Erfindung verwendet werden.
Damit Nachrichten MSG, d. h. Datenübertragungen, einzelnen
Vorgängen eindeutig zugeordnet werden können, enthält jede
Nachricht MSG eine Ticketnummer TNr, die beim Absenden
erzeugt wird. Solange der entsprechende Vorgang nicht
abgeschlossen ist, können alle beteiligten Clients CL,
Zellen Z und Cluster C die Nachricht MSG dem entsprechenden
Vorgang anhand der Ticketnummer TNr eindeutig zuordnen.
Um eindeutige Ticketnummern TNr zu erhalten, kann eine
Ticketnummer TNr beispielsweise aus der Absendezeit der
Nachricht (oder aus einem in der Zelle generierten fortlau
fenden Zähler) und der Absenderkennung kombiniert werden.
Da die Absenderkennung eindeutig ist und die Sendezeiten
von zwei Nachrichten MSG unterschiedlich sind, kann jede
Nachricht MSG eindeutig dem jeweiligen Vorgang zugeordnet
werden. Eindeutige Ticketnummern TNr können aber in Abhän
gigkeit der unterschiedlichsten Anwendungen der Erfindung
auf andere Weisen erzeugt werden.
Empfängt ein Cluster C eine Nachricht MSG, die an einen
anderen Cluster C gerichtet ist, d. h. die ClusterID der
Zieladresse der Nachricht MSG entspricht nicht der Adresse
des empfangenden Clusters C, so leitet der empfangende
Cluster C die Nachricht MSG an den Cluster C weiter, für
den die Nachricht MSG bestimmt ist. Wie die Nachricht MSG
weitergeleitet wird, hängt von der tatsächlichen Realisie
rung des Netzwerks N und/oder der Cluster C und/oder Cli
ents CL und/oder des Datenübertragungsprotokolls und/oder
von entsprechenden, in der Nachricht MSG enthaltenen Daten
ab.
Ebenso wird eine Nachricht MSG weitergeleitet, wenn eine
Zelle Z die Nachricht MSG erhält, die für eine andere Zelle
Z bestimmt ist.
Jede Zelle Z enthält Informationen über benachbarte Zellen
Z und prüft anhand dieser Informationen, ob sich eine
gewünschte Zelle Z innerhalb des aktuellen Clusters C
befindet. Wenn dies nicht der Fall ist, wird vorzugsweise
von allen benachbarten Zellen Z des aktuellen Clusters C
die Zelle Z ausgewählt, die der gewünschten Zelle Z am
benachbartesten liegt. Kommen hierfür mehrere Zellen Z in
Frage, kann eine Zelle Z zufällig ausgewählt werden.
Optional kann bei jedem Weiterreichen einer Nachricht MSG
ein Schrittzähler um einen Schritt erhöht werden. Bei jedem
Schritt sendet der jeweilige Cluster C eine Halteantwort
HalteAK an den Absender der Nachricht MSG, um diesem anzu
geben, daß seine Anfrage RQ noch bearbeitet wird. Empfängt
in diesem Fall der Absender eine derartige Halteantwort
HalteAK nicht, kann der Absender davon ausgehen, daß seine
Nachricht MSG verloren gegangen ist. Der Absender kann dann
seine Nachricht MSG zum Beispiel an den letzten Cluster C
richten, der die zuletzt empfangene Halteantwort HalteAK
gesendet hat.
Eine sichere Methode, Nachrichten MSG zu übermitteln und zu
garantieren, daß die Nachrichten MSG empfangen wurden, gibt
es nicht, da das Netzwerk N Datenübertragungen nicht garan
tieren muß und somit jederzeit Nachrichten MSG (z. B. Anfra
gen RQ und Antworten AK) verloren gehen können.
Um für bestimmte Daten deren Übertragung in höherem Maße zu
gewährleisten, kann eine pseudosichere Nachricht PSM ver
wendet werden. Hierbei wird die pseudosichere Nachricht PSM
so oft gesendet, bis ein Nachrichtenverlust unwahrschein
lich ist. Erst danach wird davon ausgegangen, daß die
Übertragung fehlgeschlagen ist.
Geht man von einer Wahrscheinlichkeit von 1/n aus, mit der
eine beliebige Nachricht MSG verloren gehen kann, so muß
eine pseudosichere Nachricht PSM so x-mal gesendet werden,
so daß die Wahrscheinlichkeit p = (2/n)ˆx hinreichend klein
ist, mit der die Nachricht verloren gegangen ist. Dann kann
man bei fehlender Antwort AK davon ausgehen, das der Emp
fänger ausgefallen ist.
Um zu prüfen, ob eine Zelle Z auf die Bestätigung einer
pseudosicheren Nachricht PSM wartet, wird folgender Pseu
docode verwendet:
Die entsprechende Zelle Z muß prüfen, ob alle Antworten AK
eingegangen sind, wenn sie ihre update-Prozedur durchführt.
Dort muß der entsprechende Status (cs_psm_waiting) behan
delt werden. Dabei ist zu entschieden, ob alle Antworten AK
eingegangen sind und, wenn nicht, ob noch länger gewartet
werden soll:
Der Selbsttest ist die zentrale Operation, um die Konsi
stenz aller Spiegel SP eines Verbundes für ein Feld F
sicherzustellen. Ein Selbsttest wird durch einen anfragen
den Dritten, z. B. einen Client CL oder Cluster C ausgelöst.
Ein Spiegel SP, der einen Selbsttest durchführt, bewirkt,
daß die anderen Spiegel SP des Verbundes ebenfalls einen
Selbsttest durchführen. Wenn ein Spiegel SP einen Selbst
test durchführt, kann dies dazu führen, daß dieser oder ein
anderer Spiegel SP eine Fehlerkorrektur durchführt. Je
nachdem wie unsicher das Netz tatsächlich ist (Verlust von
Nachrichten, Lags) kann es unpraktikabel sein, die PSM
tatsächlich sicher zu gestalten. Die einzelnen Operationen
(wie Hinzufügen eines neuen Mirrors usw.) sollten bis zu
einem gewissen Grad tolerant gegenüber Fehlern sein. Der
Fall, daß eine Nachricht zwar als nicht geliefert klassifi
ziert wird, aber trotzdem geliefert wurde, ist mit PSM zwar
sehr unwahrscheinlich, aber nicht unmöglich. Es muß daher
entsprechende Fehlerkorrekturen geben.
Erhält ein Spiegel SP eine Selbsttestanfrage SelbsttestRQ,
beginnt er unter derselben Ticketnummer TNr einen Selbst
test durchzuführen, sofern er nicht gerade einen Selbsttest
durchführt, der durch eine andere Selbsttestanfrage Selbst
testRQ initialisiert wurde, und wenn die Ticketnummer TNr
der aktuell erhaltenen Selbsttestanfrage SelbsttestRQ sich
von der letzten erhaltenen Selbsttestanfrage SelbsttestRQ
unterscheidet.
Sendet ein anfragender Dritter z. B. eine unten beschriebene
Leseanfrage LeseRQ aus, ist die Durchführung eines Selbst
test nur dann notwendig, wenn der anfragende Dritte inkon
sistente Antworten AK von den entsprechenden Spiegeln SP
eines Felds F erhält, das der anfragende Dritte zu lesen
beabsichtigt.
Der anfragende Dritte vergleicht die von den Spiegeln SP
erhaltenen Antworten AK und - geht man wie oben beschrieben
von drei Spiegeln SP für ein Feld F aus - akzeptiert bei
drei Antworten AK das Ergebnis. Bei zwei Antworten AK löst
er einen Selbsttest aus und akzeptiert das Ergebnis. Bei
nur einer Antwort AK löst er einen Selbsttest aus und
verwirft das Ergebnis.
Ist eine Selbsttestanfrage SelbsttestRQ empfangen worden
oder ist ein Selbsttest durch andere systembedingte Vorga
ben, z. B. eine Zeitüberschreitung, ausgelöst worden, muß
der entsprechende Spiegel SP seine eigene Gültigkeit prüfen
und ist entweder selbst für die Fehlerkorrektur zuständig
oder gibt den Auftrag zu Fehlerkorrektur an einen anderen
Spiegel SP. Bei der Auswahl eines Spiegels SP zur Fehler
korrektur ist anzustreben, daß immer nur ein Spiegel SP die
Fehlerkorrektur durchführt, auch wenn mehrere Spiegel SP
quasi gleichzeitig einen Selbsttest durchführen, um inkon
sistente Zustände zu vermeiden.
Hierbei sendet der Spiegel SP an alle anderen Spiegel SP
eine Validieranfrage ValidierRQ. Der Austausch der entspre
chende Daten findet unter Verwendung von pseudosicheren
Nachrichten PSM statt. Wird keine Antwort AK empfangen,
wird das Ziel als nicht erreichbar deklariert. Danach wird
der ausgefallene Spiegel SP durch einen neuen ersetzt.
Ein Spiegel beginnt mit einen Selbsttest, wenn er eine
entsprechende Nachricht dazu erhält.
Alternativ oder ergänzend dazu kann der Selbstest auch in
bestimmten Intervallen automatisch durchgeführt werden.
Dazu sendet der prüfende Spiegel SP an alle anderen Spiegel
SP eine entsprechende Anfrage:
Dabei muß jede Zelle Z in der Lage sein, auf Validieranfra
gen zu antworten:
Nachdem die prüfende Zelle Z entweder alle Antworten AK
erhalten hat oder die Zeit abgelaufen ist, überprüft sie
das Ergebnis des Selbsttests:
Ausgehend von einem Spiegelverbund mit drei Spiegeln SP
lassen sich für einen Eingang von keiner, einer oder zwei
Antworten AK bei dem Spiegel SP, der Validieranfragen
ValidierRQ an die anderen beiden Spiegel SP des Verbundes
sendet, folgende Fälle unterscheiden, die in der unten
stehenden Tabelle aufgeführt sind, wobei die eingehenden
Anworten AK wie folgt klassifiziert werden:
"V" (Valid): Der sendende Spiegel SP akzeptiert die empfangende Zelle Z als Spiegel SP, und die Lebensdauerzäh ler des Absenders und Empfängers haben den gleichen Wert.
"D" (Delayed): Der sendende Spiegel SP akzeptiert die empfangende Zelle Z als Spiegel SP, aber der Lebensdauer zähler des Absenders hat einen niedrigeren Wert als der Lebensdauerzähler des Empfängers.
"I" (Invalid): Der sendende Spiegel SP akzeptiert die empfangende Zelle Z nicht als Spiegel SP.
"V" (Valid): Der sendende Spiegel SP akzeptiert die empfangende Zelle Z als Spiegel SP, und die Lebensdauerzäh ler des Absenders und Empfängers haben den gleichen Wert.
"D" (Delayed): Der sendende Spiegel SP akzeptiert die empfangende Zelle Z als Spiegel SP, aber der Lebensdauer zähler des Absenders hat einen niedrigeren Wert als der Lebensdauerzähler des Empfängers.
"I" (Invalid): Der sendende Spiegel SP akzeptiert die empfangende Zelle Z nicht als Spiegel SP.
In den Fällen, in denen ein neuer Spiegel SP zu suchen ist,
wird ein neuer Spiegel SP von einem der verbleibenden
Spiegel SP gesucht, wobei nur einer der Spiegel diese
Aufgabe wahrnehmen darf. Hier muß ein Spiegel ausgewählt
werden, zum Beispiel der mit dem niedrigeren Index. Der
andere Spiegel SP mit dem höheren Index führt keine Opera
tionen aus, wird aber nach einiger Zeit Nachrichten MSG
erhalten, die die Eingliederung eines neuen Spiegels SP in
den Verbund anzeigen.
Ist ein Spiegel SP im physikalischen Sinn ausgefallen, so
ist es entweder möglich, daß in der Zwischenzeit keine
Anfragen RQ an den Spiegelverbund gestellt worden sind,
sein Ausfall also gar nicht bemerkt worden und auch ohne
weitere Auswirkungen geblieben ist, oder, daß die beiden
anderen Spiegel SP ihn zwischenzeitlich für ungültig er
klärt und einen Ersatzspiegel gesucht haben. Wird eine
Wiederanlaufoperation durchgeführt, kann ein derartiger
Zustand ermitteln werden. Hierzu führt der anlaufende
Spiegel SP wie zuvor beschrieben einen Selbsttest durch.
Bei der vorliegenden Erfindung ist der Lebensdauerzähler
ein Zähler, der um ganzzahlige Werte inkrementiert wird. Um
einen Überlauf des Lebensdauerzählers zu verhindern, wird
der Lebensdauerzähler aller Clients C, Zellen Z und Cluster
C in regelmäßigen Abständen abgeglichen, d. h. auf einen
niedrigeren gemeinsamen Wert gesetzt.
Hierzu wird der Abgleich von einem beliebigen Spiegel SP
angestoßen, z. B. von dem Spiegel SP mit dem niederwertig
sten Lebensdauerzähler. Alle nm Spiegel SP eines Felds F
warten jeweils auf den Empfang aller nm-1 Antworten AK
(PSM). Nur wenn alle nm-1 Antworten AK empfangen werden,
führt der jeweilige Spiegel SP einen Abgleich des Lebens
dauerzählers durch.
Beim Abgleich des Lebensdauerzählers ist zu beachten, daß
das Intervall zwischen zwei Abgleichen so gewählt wird, daß
zwischenzeitlich ausgetauschte Spiegel SP nicht durch einen
Wiederanlauf erneut gültig werden. Vorzugsweise wird hier
für ein zusätzlicher Speicher verwendet, in dem der Wert
des letzten Lebensdauerzählers gespeichert wird, bei dem
ein Spiegel SP ausgetauscht wurde.
Auch bei pseudosicheren Nachrichten PSM können Fehler
auftreten. Zwar können die Parameter für pseudosicheren
Nachrichten PSM so gewählt werden, daß Fehler so unwahr
scheinlich sind, das sie für die gewählte Anwendung prak
tisch nicht auftreten. Dies kann jedoch dazu führen, daß
die Anwendung tatsächlich nicht mehr praktikabel ist. Unter
Umständen müssen in Bezug auf die Parameter für pseudosi
cheren Nachrichten PSM Kompromisse eingegangen werden, so
daß durch fehlerhafte pseudosichere Nachrichten PSM Fehler
entstehen, die korrigiert werden müssen.
Daher muß die Kommunikation der Zellen Z bzw. Spiegel SP
untereinander so gestaltet sein, das diese Fehler ohne
Folgen bleiben oder korrigiert werden. Dies geschieht
beispielsweise durch die Verwendung eines Selbsttests
SelfCheck.
Die in diesem Abschnitt beschriebene Operation DoubleField-
Check dient zur Korrektur von Fehlern, die durch Kommunika
tionsfehler bei pseudosicheren Nachrichten PSM zustande
gekommen sind. Solche Fehler verursachen, daß Spiegelver
bände sich duplizieren, also mehr als nm Spiegel für ein
Feld existieren.
Die Operation DoubleFieldCheck kann in einem Intervall
t_DoubleFieldCheck von einem oder mehreren Spiegeln SP
durchgeführt werden. Jeder Client CL kann eine Operation
DoubleFieldCheck anstoßen, wenn er Antworten Ak von Spie
geln SP erhält, deren Verweise auf die anderen Spiegel SP
nicht konsistent sind.
Die Operation DoubleFieldCheck entfernt zusätzlich entstan
dene Spiegelverbände, um den gewünschten Zustand von je
weils nm Spiegeln SP für ein Feld F herzustellen.
Hierzu wird ein Manager für die Operation DoubleFieldCheck
ausgewählt. Dies kann eine beliebige Zelle Z (auch des
Mirrorverbundes) oder auch ein Client CL sein (zum Beispiel
der Client, der die Fehlersituation entdeckt hat). Optional
sendet der Manager eine Anfrage RQ ins Netz, auf die sich
alle Zellen Z melden, die für ein bestimmtes Feld F zu
ständig sind, wodurch auch weitere zusätzliche Spiegelver
bände entdeckt werden.
Der Manager entscheidet dann, welche Zellen Z dem gültigen
Mirrorverband angehören und sendet allen anderen Zellen Z
eine Löschanfrage DeleteRQ. Optional sendet der Manager
allen übrigen verbliebenen Spiegeln SP eine Anfrage
rq_updateTable, ihre Spiegeltabellen zu aktualisieren.
Sollten einzelne Zellen Z die Löschanfrage DeleteRQ nicht
erhalten, so werden sie beim nächsten Selbsttest SelfCheck
und/oder beim der nächsten Operation DoubleFieldCheck
deaktiviert.
Um zu entscheiden, welche Zellen Z dem gültigen Spiegelver
band angehören, können verschiedene Algorithmen verwendet
werden. Im folgenden sind Beispiele hierfür aufgeführt, die
auch kombiniert verwendet werden können.
Eine Möglichkeit ist, einen Generationenzähler einzuführen,
der jedesmal erhöht wird, wenn ein neuer Spiegel SP zu
einem Verbund hinzugefügt wird. Bei Spiegeln SP mit doppelt
vorhandenem Index wird der Spiegel Sp mit dem größe
ren/kleineren Generationenzähler entfernt. Es ist auch
möglich, den Spiegelverbund als gültig zu erklären, auf den
zuletzt ein Schreibzugriff stattgefunden hat. Des weiteren
kann über die Gültigkeit eines Spiegelverbundes auch Abhän
gigkeit von beliebigen anderen Eigenschaften (z. B. der
geographischen Lage von Spiegeln SP) entschieden werden.
Falls nur noch ein einzelner Spiegel SP als korrekt arbei
tend z. B. von einem Client CL erkannt wird, ist es möglich,
daß der Fehler bei diesem Spiegel SP und nicht bei den nm-1
anderen Spiegeln SP liegt. Um diese Möglichkeit auszu
schließen, sollte eine zusätzliche Sicherheitsprüfung
durchgeführt werden, um die korrekte Funktion des einzelnen
Spiegels SP zu gewährleisten, bevor dieser die anderen
Spiegel SP ersetzt. Hierdurch wird vermieden, daß der
einzelne arbeitende Spiegel SP irrtümlich zusätzliche
Spiegel SP aktiviert.
Arbeitet tatsächlich nur noch ein Spiegel SP, sind nm-1 neue
Spiegel SP hinzuzufügen. Zuerst muß der arbeitende Spiegel
SP die Funktion seiner eigenen Datenübertragungen überprü
fen bzw. sicherstellen. Dann werden mit einer Anfrage
rq_needNewCells nm-1 neue Spiegel SP angefordert. An alle
nm-1 neuen Spiegel SP wird die Aufforderung gesendet, zu
Spiegeln zu werden. Dabei ist es nicht notwendig, die
Antworten AK sofort auszuwerten, da etwaige Fehler durch
spätere Selbsttests SelfChecks korrigiert werden (dieser
Ablauf entspricht in etwa dem Hinzufügen eines neuen Felds
F, mit dem Unterschied, daß nur nm-1 Zellen Z gesucht
werden und der Spiegelmanager in diesem Fall identisch mit
einem Spiegel SP ist).
In den folgenden Abschnitten wird der Datenaustausch zwi
schen Clients CL, Zellen Z und Clustern C beschrieben, der
bevorzugt wird, um die erfindungsgemäßen "aktiven" Zellen
zur Verfügung stellen. Insbesondere werden hierfür folgende
Operationen verwendet, wobei nun auf Fig. 4 Bezug genommen
wird:
Findeoperation (find): Auffinden einer Zelle Z, die ein gewünschtes Feld F enthält.
Leseoperation (read): Ein Client CL liest den Inhalt eines Feldes F aus einem Spiegel SP.
Schreiboperation (write): Ein Client ändert den Inhalt eines Felds F in allen zugeordneten Spiegeln SP.
Hinzufügeoperation (add): Hinzufügen von Feldern F, die bisher noch nicht im Clusterverbund CV enthalten waren.
Löschoperation (delete): Löschen eines Felds F in dem Clusterverbund CV.
Findeoperation (find): Auffinden einer Zelle Z, die ein gewünschtes Feld F enthält.
Leseoperation (read): Ein Client CL liest den Inhalt eines Feldes F aus einem Spiegel SP.
Schreiboperation (write): Ein Client ändert den Inhalt eines Felds F in allen zugeordneten Spiegeln SP.
Hinzufügeoperation (add): Hinzufügen von Feldern F, die bisher noch nicht im Clusterverbund CV enthalten waren.
Löschoperation (delete): Löschen eines Felds F in dem Clusterverbund CV.
Durch Aussenden einer Findeanfrage FindRQ ermittelt ein
Client CL die Position der Zellen Z, die ein gewünschtes
Feld F enthalten und somit Spiegel SP für das gewünschte
Feld F sind. Die Adressen dieser Zellen Z enthalten sowohl
die Kennungen ClusterID der entsprechenden Cluster C als
auch die Kennungen ZellId der Zellen Z selbst.
Um die Adressen der Zellen Z zu erhalten, die Spiegel SP
für das gewünschte Feld F (z. B. Feld F8 aus Fig. 2) sind,
fragt der Client CL bei einem beliebigen Cluster C, z. B.
Cluster C6, an, ob eine seiner Zellen Z das gewünschte Feld
F8 beinhaltet. Ist dies der Fall, sendet der Cluster C6 die
entsprechende Zellkennung ZellID sowie die Clusterkennungen
ClusterID aller nm-1 Cluster C aus, die Spiegel SP des
gewünschten Felds F8 beinhalten. Wie in Fig. 4 gezeigt,
sind das hier die Zelle Z4 in Cluster C1 und die Zelle Z6
in Cluster C3, d. h. insgesamt die Zellen mit den Kennungen
ZellID C1Z4, C3Z6 und C6Z2.
Enthält der angefragte Cluster C, z. B. Cluster C4, das
gewünschte Feld F8 nicht, sucht der angefragte Cluster C4
von den in ihm enthaltenen Zellen Z die Zelle Z, deren
Feldposition FeldID der Feldposition FeldID des gewünschten
Felds F8 am nächsten liegt. Hierfür kann der Cluster C
beispielsweise die Summe der Absolutwerte der Differenz
zwischen der Zellposition ZellID und allen benachbarten
Zellpositionen ZellID ermitteln, um die Zellen Z auszuwäh
len, bei der der Absolutwert einer derartigen Differenz
minimal ist.
Da Zellen Z Angaben über benachbarte Zellen enthalten, kann
auf diese Weise ein Cluster C gefunden werden, der eine
Zelle Z mit dem gewünschten Feld F8 aufweist. Der vom
Client CL angefragte Cluster C4 reicht die Findeanfrage
FindRQ an den so gefundenen Cluster C weiter, z. B. Cluster
C6. Dieser Vorgang wiederholt sich entsprechend bis eine
gewünschte Zelle Z gefunden wurde oder keine einer ge
wünschten Zelle Z benachbarte Zellen Z mehr aufgefunden
werden.
Vorzugsweise wird beim Weiterleiten einer Findeanfrage
FindRQ ein Schrittzähler inkrementiert. Bei jeder Erhöhung
des Schrittzähler sendet der jeweilige aktuelle Cluster C
eine Halteanwort HalteAK an den Client CL, um diesem anzu
geben, daß seine Anfrage FindRQ noch bearbeitet wird.
Empfängt in diesem Fall der anfragende Client CL keine
derartige Halteanwort HalteAK, ist davon auszugehen, daß
seine Anfrage FindRQ verloren gegangen ist. In diesem Fall
ist zu bevorzugen, daß der anfragende Client CL die Anfrage
FindRQ erneut an den Cluster C richtet, von dem er die
zeitlich letzte Halteanwort HalteAK erhalten hat.
Ein Findeanfrage FindRQ wird erfolgreich abgeschlossen,
wenn der anfragende Client CL eine Zielkennung ZielID für
nm Spiegel SP des gewünschten Felds F8 erhält. Bei dem in
Fig. 4 gezeigten Beispiel würde die Zielkennung ZielID die
Zellen C1Z4, C3Z6 und C6Z2 umfassen. Erhält der Client CL
keine Anwort AK, ist die Findeoperation fehlgeschlagen.
Im folgenden wird der Ablauf beschrieben, der bei Lesean
fragen ReadRQ und Schreibanfragen WriteRQ durchgeführt
wird. Bei den unten dargestellten Lese- und Schreibanfragen
ReadRQ, WriteRQ ist es notwendig, daß der entsprechende
Client CL die Kennungen der Spiegel SP kennt, die das Feld
F enthalten, auf dessen Daten der Client CL zugreifen
möchte. Problematisch ist hierbei, daß die Kennungen der
gewünschten Spiegel SP sich durch Umlagern der Spiegel SP
jederzeit ändern können. Um dies zu vermeiden, wäre es
prinzipiell möglich, daß jede Findeanfrage FindRQ mit einer
Operation LockRQ verbunden wird, die Änderungen des jewei
ligen Verbunds der gewünschten Spiegel SP verhindert, bevor
die eigentliche Lese- und Schreibanfragen ReadRQ, WriteRQ
von den gewünschten Spiegeln SP empfangen wurde. Dies würde
aber die Effizienz von Datenübertragungen zwischen Clients
CL und Clustern C deutlich herabsetzen.
Daher wird bei der bevorzugten Ausführungsform der vorlie
genden Erfindung wie folgt verfahren. Ein Client CL führt
eine Findeoperation aus und merkt sich die empfangenen
Positionen der Spiegel SP, die das gewünschte Feld F ent
halten.
Erhält nun ein Spiegel SP Lese- und Schreibanfragen ReadRQ,
WriteRQ mit einer Feldposition FeldID für das gewünschte
Feld F, die nicht der Feldposition FeldID für das gewünsch
te Feld F in dem Spiegel SP entspricht, so teilt er dies
dem Client CL mit. Des weiteren sendet jeder Spiegel SP die
Positionen der anderen nm-1 Spiegel SP immer oder alterna
tiv auf Anfrage an den anfragenden Client CL zurück. Auf
diese Weise kann ein Spiegel SP die in ihm gespeicherten
Kennungen ID korrigieren und, falls notwendig, eine neue
Findeanfrage FindRQ aussenden.
Die Anfrage eines Clients CL wird immer an alle nm Spiegel
SP gerichtet:
Idealerweise puffert der Client CL seine eigenen Anfragen,
um zwischenzeitlich weitere Aktionen (z. B. andere Anfragen)
durchführen zu können, bis die 1 . . . nm entsprechenden Antwor
ten ak_read eintreffen oder ein Timeout eintrifft. Nach
Ablauf der Wartezeit TWLese muß der Client CL prüfen,
wieviele Antworten ak_read eingegangen sind und ob die
Spiegeltabellen mit diesen Antworten konistent sind:
Vorzugsweise werden die Leseanfragen ReadRQ und Schreiban
fragen WriteRQ über das Netzwerk N parallel an alle Cluster
C gesendet, aber in Abhängigkeit des verwendeten Netzwerks
N ist jede andere Art des Sendens möglich.
Jeder Spiegel SP, z. B. Zelle C1Z4, sendet optional eine von
einem Client CL eingehende Leseanfrage ReadRQ an alle
anderen Spiegel SP weiter, d. h. hier an die Zellen C3Z6 und.
C6Z2, und jeder Spiegel SP sendet darauf eine Antwort AK an
den Client CL. In diesem Fall erhält ein Spiegel SP eine
weitere Leseanfrage ReadRQ, die die gleiche Ticketnummer
TNr wie eine zuvor empfangene Leseanfrage ReadRQ hat, wird
diese ignoriert, da dieser Spiegel SP schon eine Antwort AK
an den anfragenden Clients CL gesendet hat.
Wird eine Leseoperation durchgeführt, benötigt der Client
CL die Daten eines bestimmten Felds F, z. B. F8. Um diese
Daten zu erhalten, muß der Client CL die Positionen der
Spiegel SP kennen, die für dieses Feld F8 zuständig sind.
Dies kann durch eine zuvor durchgeführte Findeoperation
ermöglicht werden, um die als Spiegel SP arbeitenden Zellen
C1Z4, C3Z6 und C6Z2 zu ermitteln.
Der Client CL sendet eine entsprechende Leseanfrage ReadRQ
mit einer eindeutigen Ticketnummer TNr an alle 3 Cluster
C1, C3 und C6, die die für das gewünschte Feld F8 zuständi
gen Spiegel SP enthalten.
Der Client CL wartet eine vorbestimmte anwendungsspezifi
sche Zeitspanne TWLese auf Antworten AK der angefragten
Spiegel SP, die die gewünschten Daten enthalten. Jeder
Spiegel SP beantwortet die Leseanfrage ReadRQ mit einer
Antwort AK, so daß nm (d. h. hier 3) Antworten AK beim
anfragenden Client CL eintreffen.
Der Client CL antwortet in Abhängigkeit von der Art
und/oder Anzahl der eingehenden Antworten AK. Werden drei
Spiegel SP vorausgesetzt, die für das Feld F der gewünsch
ten Daten zuständig sind, ergeben sich folgende unter
schiedliche Zustände. Erhält der Client CL zwei oder drei
gleiche Antworten AK, wird das Ergebnis verwendet. Erhält
er aber zwei unterschiedliche Antworten AK oder nur eine
Antwort AK, sendet der Client CL eine Aufforderung zum
Selbsttest an die entsprechenden Spiegel SP. Empfängt der
Client CL unterschiedliche Antworten AK, wird die Antwort
AK verwendet, deren Lebensdauerzähler den höchsten Wert
aufweist.
Eine Leseanfrage ReadRQ verläuft erfolgreich, wenn der
Client CL mindestens eine Antwort AK erhält, und kann nicht
erfolgreich abgeschlossen werden, wenn der Client CL inner
halb der vorbestimmten Zeitspanne TWLese keine Antwort AK
erhält oder einer oder mehrere Cluster CL melden, daß sie
die gewünschte Zelle Z nicht gefunden haben.
Um die oben genannten Probleme beim Senden einer Leseanfra
ge ReadRQ zu vermeiden, ist es zu bevorzugen Findeanfragen
FindRQ und Leseanfragen ReadRQ kombiniert auszuführen. In
diesem Fall richtet der Client CL eine Finde/Leseanfrage
Find/ReadRQ an einen beliebigen Cluster C und erhält von
diesem eine Antwort AK, wie bei einer Durchführung einer
einzelnen Findeanfrage FindRQ. Hier enthält die Antwort AK
nicht die Adresse ID des gewünschten Felds F, sondern die
Daten des gewünschten Felds F.
Es ist aber zu berücksichtigen, daß eine kombinierte Fin
de/Leseanfrage Find/ReadRQ im Vergleich mit einer anfängli
chen Findeanfrage FindRQ zum Auffinden der gewünschten
Spiegel SP und einer nachfolgenden Leseanfrage ReadRQ an
die gewünschten Spiegel SP mehr Zeit benötigt, da hier alle
Cluster C eines Clusterverbundes CV die kombinierte und
daher umfangreichere Finde/Leseanfrage Find/ReadRQ bearbei
ten müssen.
Um die Daten eines Felds F zu verändern, z. B. Feld F8,
sendet der Client CL eine Schreibanfrage WriteRQ aus. Wie
bei einer Leseanfrage ReadRQ muß der Client CL die Positio
nen der für das gewünschte Feld F8 zuständigen 3 Spiegel SP
kennen.
Der Client CL sendet an alle 3 Spiegel SP des gewünschten
Felds F8 eine Schreibanfrage WriteRQ. Darauf werden die
Daten des gewünschten Felds F8 bzw. der dazugehörigen als
Spiegel SP arbeitenden Zellen C1Z4, C3Z6 und C6Z2 verän
dert, indem alle Spiegel SP ihre Daten entsprechend aktua
lisieren. Danach sendet jeder der Spiegel SP dem
anfragenden Client CL eine Antwort AK zurück. Sobald alle
Antworten AK der Spiegel SP bei dem Client CL eingetroffen
sind, ist der Schreibvorgang erfolgreich abgeschlossen.
Wird zudem Zeitpunkt, zu dem der Client CL seine Schreib
anfrage WriteRQ aussendet, schon eine andere Schreibanfrage
WriteRQ auf die gewünschten Zellen C1Z4, C3Z6 und C6Z2
durchgeführt, erhält der Client CL eine entsprechende
Anwort AK, die angibt, daß die Schreibanfrage WriteRQ
fehlgeschlagen ist und die gewünschten Zellen C1Z4, C3Z6
und C6Z2 sich in einem blockierten Zustand (locked state)
befinden. Ein Schreibanfrage WriteRQ ist ebenfalls nicht
erfolgreich abgeschlossen worden, wenn der anfragende
Client CL weniger als nm Antworten AK erhält, d. h. hier
weniger als 3 Antworten AK.
Die für eine Schreibanfrage WriteRQ notwendige Synchronisa
tion wird von den beteiligten Spiegeln SP durchgeführt, um
zu gewährleisten, daß alle nm Spiegel SP mit den gleichen
Daten aktualisiert werden. Erhält ein Spiegel SP eine
Schreibanfrage WriteRQ, so sendet er diese Schreibanfrage
WriteRQ an alle nm-1 anderen Spiegel SP. Nur wenn der
aussendende Spiegel SP von allen nm-1 anderen Spiegeln SP
eine Antwort AR erhält, wird die Schreibanfrage WriteRQ
ausgeführt. Dabei kann die von dem Spiegel SP empfangene
Schreibanfrage WriteRQ entweder von einem Clients CL oder
von einem anderen Spiegel SP des gleichen Verbunds gesendet
werden.
Empfängt ein Spiegel SP eine andere Schreibanfrage WriteRQ
von einem Spiegel SP mit niedrigerem Index, so werden bei
allen Spiegeln SP vorher eingegangene Schreibanfragen
WriteRQ überschrieben. Außerdem akzeptiert ein Spiegel SP
keine weitere Schreibanfragen WriteRQ von einem Client CL,
wenn bereits eine noch nicht vollständig durchgeführte
Schreibanfrage WriteRQ von einem anderen Spiegel SP oder
Client CL eingegangen ist.
Es ist möglich Findeanfragen FindRQ und Schreibeanfragen
WriteRQ kombiniert als Finde/Schreibeanfrage Find/WriteRQ
auszuführen, aber es ist zu prüfen, ob der zusätzliche
Zeitbedarf vertretbar ist.
Eine Hinzufügeanfrage AddRQ dient dazu, ein Feld F, das
bisher noch nicht in dem Clusterverbund CV enthalten ist,
in den Clusterverbund CV aufzunehmen. Ein solche Hinzufüge
anfrage AddRQ kann von einem Cluster C oder einem Client CL
ausgesendet werden.
Eine einzelne Zelle Z, z. B. Zelle C2Z6 aus Fig. 4, erhält
von dem Client CL eine Hinzufügeanfrage AddRQ, um als
Spiegelmanager zu arbeiten und nm-1 (d. h. 2) neue Spiegel
SP in den Clusterverbund CV einzubinden. Bei der zur Zeit
bevorzugten Ausführungsform der Erfindung wird immer eine
Zelle Z als Spiegelmanager ausgewählt, die selbst kein
Spiegel SP ist. Es sind aber auch Ausführungsformen der
Erfindung möglich, bei denen der Spiegelmanager selbst auch
ein Spiegel ist. Die als Spiegelmanager arbeitende Zelle
C2Z6 sendet eine Hinzufügeanfrage AddRQ für 2 Spiegel in
das Netzwerk N. Die Hinzufügeanfrage AddRQ wird von Cluster
C zu Cluster C in dem Clusterverbund CV weitergereicht,
z. B. von Cluster C2 zu Cluster C3, wobei die Anzahl der
hinzuzufügenden Spiegel SP beim Weiterreichen der Hinzufü
geanfrage AddRQ erniedrigt wird, wenn der zuletzt angefrag
te Cluster C eine Zelle Z bereitgestellt hat.
Der zuletzt angefragte Cluster C sendet die Kennungen
ZellID der Zellen Z, die als Spiegel SP in Frage kommen,
der als Spiegelmanager arbeitende Zelle C2Z6. Die als
Spiegelmanager arbeitende Zelle C2Z6 sendet dann an alle
als Spiegel SP in Frage kommenden Zellen C3Z1 und ClZ2 eine
entsprechende Antwort AK, vorzugsweise eine pseudosichere
Nachricht PSM, die diese anweist zu Spiegeln SP zu werden.
Danach sendet die als Spiegelmanager arbeitende Zelle C2Z6
eine entsprechende Antwort AK an den anfragenden Client CL
zurück. Eine Hinzufügeanfrage AddRQ wird nicht erfolgreich
abgeschlossen, wenn keine Antwort AK oder eine negative
Anwort AK von der als Spiegelmanager arbeitende Zelle C2Z6
zurückgesendet wird.
Die Durchführung einer Hinzufügeanfrage AddRQ garantiert
nicht, daß nm Spiegel SP für ein gewünschtes Feld F zur
Verfügung stehen, sondern, daß entweder nm Spiegel SP zur
Verfügung stehen oder nach Ablauf einer vorbestimmten
Zeitdauer t überhaupt keine Spiegel SP für das gewünschte
Feld F zur Verfügung stehen.
Falls weniger als nm neue Spiegel SP nach Durchführung
einer Hinzufügeanfrage AddRQ existieren, kann nur dann
eintreten, wenn die bei der Hinzufügeanfrage AddRQ Verwen
dung findenden pseudosicheren Nachrichten PSM falsche
Ergebnisse liefern. Solche Fehler werden durch spätere
Selbsttests der Spiegel SP korrigiert.
Eine Spiegelanfrage SpiegelRQ stellt einen Spezialfall
einer Hinzufügeanfrage AddRQ dar, bei der eine Zelle Z, die
im folgenden als Manager bezeichnet wird, einen einzelnen
neuen Spiegel SP anfordert. Der Manager sendet dabei an die
ahs Spiegel SP in Frage kommenden Zellen Z die Aufforde
rung, zu neuen Spiegeln SP zu werden.
Sendet der Manager eine Spiegelanfrage SpiegelRQ ins Netz
werk N, wird ab diesem Zeitpunkt eine Wartezeit WT aufge
zeichnet bis Antworten AK der als Spiegel SP in Frage
kommenden Zellen Z beim Manager eintreffen. Jeder Cluster
C, der die Spiegelanfrage SpiegelRQ erhält und Speicher
platz zur Verfügung stellen kann, sendet eine entsprechende
Antwort AK an den Manager und stellt Speicherplatz zur
Verfügung, der freigehalten wird, um in Form einer Zelle Z
bzw. eines Spiegels SP in den Clusterverbund CV eingebunden
werden zu können. Kann ein Cluster C keinen Spiegel SP
bereitstellen, so reicht er die Spiegelanfrage SpiegelRQ an
andere Cluster C weiter.
Hat der Manager eine entsprechende Antwort AK eines neuen
Spiegels SP erhalten, verzeichnet er dies in einer Spiegel
tabelle. Erhält eine als Spiegel SP in Frage kommende Zelle
Z vor Ablauf der Zeitspanne wt vom Manager eine Nachricht
MSG, daß kein Spiegel SP mehr benötigt wird, wird sie
wieder freigegeben und die Spiegelanfrage SpiegelRQ wird
verworfen.
Tritt bei einer der angefragten Zellen Z eine Zeitüber
schreitung Timeout auf, d. h. die Zeitspanne wt der Spie
gelanfrage SpiegelRQ für diese Zelle Z ist abgelaufen, so
wird eine neue als Spiegel in Frage kommende Zelle Z ge
sucht. Dieser Vorgang wird mehrmals wiederholt oder bis
alle als Spiegel in Frage kommenden Zellen Z geantwortet
haben. Zellen Z, die sich als mögliche Spiegel SP zur
Verfügung gestellt haben und deren Antworten AK nach Ablauf
der ihr zugeordneten Zeitspanne wt beim Manager eintreffen,
werden von diesem ignoriert.
Entweder erhält der Spiegel SP eine Antwort AK oder die
Spiegelanfrage SpiegelRQ verfällt:
Der noch nicht verwendete Spiegel SP erhält also die Spie
gelanfrage SpiegelRQ, zum Spiegel zu werden, die mit fol
gendem Pseudocode bearbeitet:
Nun sendet dieser Spiegelkandidat an alle nm-1 alten Spie
gel SP die Aufforderung ihn als Spiegel aufzunehmen
(rq_addMirror). Da die alten Spiegel SP dies gegenseitig
ebenfalls noch verifizieren müssen, muß die Zelle an dieser
möglicherweise länger als gewöhnlich auf die Beantwortung
der Nachricht warten. Ein Spiegel SP, der diese Aufforde
rung bekommt, fragt bei allen anderen nm-2 Spiegeln SP
nach, ob diese ebenfalls diese Anfrage erhalten haben
(rq_certify). Nur wenn das der Fall ist, antwortet der
Spiegel SP mit einer entsprechenden Antwort ak_addMirror
und aktualisiert seine eigene Spiegeltabelle.
Abschließend aktualisiert der Spiegelkandidat seine Daten.
Um ein Feld F aus dem Clusterverbund CV zu entfernen wird
z. B. von einem Client CL oder einem Cluster C eine Löschan
frage DeleteRQ an alle dem Feld F zugeordneten nm Spiegel
SP gesendet. Eine Löschanfrage DeleteRQ stellt sicher, daß
entweder alle nm Spiegel SP entfernt werden oder im Falle
einer nicht erfolgreichen Durchführung der Löschanfrage
DeleteRQ kein Spiegel SP entfernt wird, um konsistente
Daten in dem Clusterverbund CV zu gewährleisten.
Optional reicht jeder Spiegel SP, der die Löschanfrage
DeleteRQ erhält, sie an alle anderen nm-1 Spiegel SP wei
ter. Ein Spiegel der eine Löschanfrage DeleteRQ erhält,
"löscht" sich, d. h. die jeweilige Zelle Z wechselt in einen
Leerlaufzustand (idle) und meldet dies mit einer entspre
chenden Antwort AK dem Absender der Löschanfrage DeleteRQ.
Eine Löschanfrage DeleteRQ verläuft erfolgreich, wenn der
Absender nm Antworten AK erhält, wonach sich die nm Spiegel
SP des Felds F gelöscht haben. Erhält der Absender nach
Ablauf einer vorbestimmten Zeitspanne keine Antwort AK,
wonach sich die nm Spiegel SP des Felds F gelöscht haben,
ist die Löschanfrage DeleteRQ fehlgeschlagen.
Verschiebeoperationen werden verwendet, einzelne Spiegel SP
eines Spiegelverbunds anderen Zellen Z zuzuweisen, die dann
die bisherigen Spiegel SP entsprechend ersetzen. Es gibt
verschiedene Gründe, die Verschiebeoperationen notwendig
machen:
- - Ausfall eines Clusters C oder einzelner Zellen Z
- - Entfernen eines Clusters C aus einem Clusterverband CV
- - Unzureichende Datenübertragungsleistung eines Clusters C
- - Anwendungsspezifische Ursachen/Gründe
Das Verschieben von Spiegeln SP beim Anfordern neuer Spie
gel SP ist oben schon beschrieben worden. Soll ein Cluster
C aus dem Clusterverbund CV entfernt werden, beispielsweise
wenn ein Cluster C heruntergefahren oder für andere Aufga
ben in dem Netzwerk N verwendet werden soll, müssen die
Daten seiner aktiven Zellen Z, d. h. der Zellen Z, die als
Spiegel SP arbeiten, auf andere Cluster C verschoben wer
den. In diesem Fall initiiert der zu entfernende Cluster C
das Verschieben der Daten bzw. der Spiegel SP der einzelnen
Spiegelverbände (wie oben beschrieben).
Um Verschiebeoperationen wegen unzureichender Datenübertra
gungsleistung einzuleiten, wird hier die Datenübertragungs
leistung der Cluster C und/oder Zellen Z während des
Betriebs überprüft. Hierfür verwendet die bevorzugte Aus
führungsform der vorliegenden Erfindung einen Zähler für
jeden Spiegel SP und/oder jede Zelle Z, der bei pseudosi
cheren Nachrichten PSM die Übertragungsdauer ermittelt.
Optional wird ein Zeitgeber (timer) implementiert, der
jeweils die durchschnittliche Datenübertragungsdauer ermit
telt, wobei hier eine gemeinsame Zeitbasis erforderlich
ist. Vorzugsweise ermittelt jeder Cluster C die Datenüber
tragungsleistungen seiner Zellen Z. Spiegel SP bzw. Zellen
Z, deren Datenübertragungenszeiten vorbestimmte Grenzwerte
überschreiten, werden verschoben.
Die Bewertung der Datenübertragungsleistung hinsichtlich
der Datenübertragungsdauer ist aber nur als Beispiel zu
verstehen und jeder gewünschte, für die jeweilige Anwendung
der Erfindung geeignete Parameter von Datenübertragungslei
stungen kann zu Einleitung von Verschiebeoperationen mit
bekannten Verfahren überprüft werden. Z. B. könnte die
Rechenleistung einzelner Zellen Z und/oder Cluster C, oder
die Leistung einzelner Bereiche des Netzwerks N überprüft
werden.
Ist für einen Spiegel SP, z. B. Zelle C6Z2 aus Fig. 4, eine
derartige unzureichende Datenübertragungsleistung festge
stellt worden, wird ein einzelner Spiegel SP aus dem ent
sprechenden Verbund zum Manager, z. B. Zelle C1Z4. Der
Manager C1Z4 sendet vorzugsweise mit einer pseudosicheren
Nachricht PSM eine Anfrage RQ an alle anderen 2, als Spie
gel SP arbeitenden Zellen C3Z6 und C6Z2 des Verbunds, den
betreffenden Spiegel SP (C6Z2) zu entfernen. Dieser macht
sich selbst ungültig oder wird von dem entsprechenden
Cluster C6 für ungültig erklärt.
Danach fordert der Manager C1Z4 einen neuen Spiegel SP in
dem Clusterverbund CV an, wobei im Gegensatz zum oben
beschriebenen Ersatz für einen Spiegel SP weitere Bedingun
gen an den neuen Spiegel SP gestellt werden können, vor
zugsweise Bedingungen hinsichtlich der Datenübertragungs
leistung. Der neue Spiegel SP wird in der oben beschriebe
nen Weise in den Spiegelverbund integriert.
Um zu gewährleisten, daß alle Spiegel SP Informationen über
die Verschiebeoperation erhalten haben, sendet der Manager
eine Anfrage RQ (vorzugsweise mit einer pseudosicheren
Nachricht PSM), die Verschiebeoperation wieder rückgängig
zu machen, wenn er nicht von allen nm-1 Spiegeln SP eine
entsprechende Antwort AK erhalten hat. In diesem Fall
konnte die Verschiebeoperation nicht erfolgreich durchge
führt werden.
Die im Zusammenhang mit Zellen Z und Spiegeln SP oben
beschriebenen Operationen, sind entsprechend auch für
Operationen hinsichtlich der erfindungsgemäßen Cluster C
anwendbar. Daher wird hier eine detaillierte Beschreibung
der Operationen zum Hinzufügen, Entfernen, Verschieben und
Deaktivieren einzelner Cluster C verzichtet.
Claims (55)
1. Datenzugriffs- und -verwaltungssystem für ein Rechnersy
stem, mit:
- - wenigstens zwei Datenspeichereinrichtungen (C1, C2, . . ., Cn),
- - wenigstens einer Rechnereinheit (CL), die auf Daten der Datenspeichereinrichtungen (C) zugreift,
- - Datenübertragungseinrichtungen (N) zur Datenübertragung zwischen den Datenspeichereinrichtungen (C) und der Rech nereinheit (CL), wobei die Daten in wenigstens zwei der wenigstens zwei Datenspeichereinrichtungen (C) redundant gespeichert sind, und
- - Einrichtungen zur Erfassung vorbestimmter Parameter der Datenübertragung zwischen den Datenspeichereinrichtungen (C) und der Rechnereinheit (CL), wobei Daten in Abhängig keit von den ermittelten vorbestimmten Parametern in den Datenspeichereinrichtungen (C) redundant gespeichert sind, und wobei die Rechnereinheit (CL) in Abhängigkeit von den ermittelten vorbestimmten Parametern auf eine der Daten speichereinrichtungen (C) zugreift.
2. System nach Anspruch 1, dadurch gekennzeichnet, daß
die Datenspeichereinrichtungen (C) jeweils Steuereinheiten
zur Steuerung des Datenzugriffs und der Datenverwaltung
umfassen.
3. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
die Datenspeichereinrichtungen (C) in dem System redundant
gespeicherte Daten in Abhängigkeit der ermittelten Parame
ter von Datenübertragungen zwischen den einzelnen Daten
speichereinrichtungen (C) und der Rechnereinheit (CL)
untereinander kopieren und in den Datenspeichereinrichtun
gen (C) löschen, in denen die kopierten Daten zuvor gespei
chert waren.
4. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
die Datenspeichereinrichtungen (C) die gespeicherten Daten
unabhängig von der Rechnereinheit (CL) bearbeiten.
5. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
- - die in dem System gespeicherten Daten in Datenteilmengen (F) unterteilt sind, und
- - die Datenspeichereinrichtungen (C) so in Zellen (Z) unterteilt sind, daß redundant zu speichernde der Daten teilmengen (F) in jeweils einer der Zellen (Z) der entspre chenden Datenspeichereinrichtungen (C) gespeichert sind.
6. System nach Anspruch 5, dadurch gekennzeichnet, daß
die Datenspeichereinrichtungen (C) in Abhängigkeit von den
Datenübertragungsparametern in Zellen (Z) unterteilt sind.
7. System nach einem der Ansprüche 5 oder 6, dadurch ge
kennzeichnet, daß
jede Zelle (Z) zusätzliche Daten zum Datenzugriff und zur
Datenverwaltung aufweist, die die Parameter von Datenüber
tragungen zwischen den einzelnen Datenspeichereinrichtungen
(C) und der Rechnereinheit (CL), und/oder benachbarte
Zellen (Z), und/oder Zellen (Z) betreffen, die die in dem
System redundant gespeicherten Daten umfassen.
8. System nach einem der Ansprüche 5 bis 7, dadurch gekenn
zeichnet, daß
die Zellen (Z) untereinander Daten austauschen, die zum
Datenzugriff und zur Datenverwaltung verwendet werden.
9. System nach einem der Ansprüche 5 bis 8, dadurch gekenn
zeichnet, daß
die Parameter von Datenübertragungen zwischen den einzelnen
Datenspeichereinrichtungen (C) und der Rechnereinheit (CL)
für Zellen (Z) einer Datenspeichereinrichtung (C) gleich
sind.
10. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
die Rechnereinheit (CL) Daten zur Speicherung in den Daten
speichereinrichtungen (C) ausgibt und/oder in den Daten
speichereinrichtungen (C) gespeicherte Daten bearbeitet.
11. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
die Rechnereinheit (CL) in Verbindung mit einem Benutzer
(B) steht, um die erhaltenen Daten weiterzuleiten und/oder
von dem Benutzer (B) gesteuert zu werden.
12. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
der Benutzer (B) ein Personal Computer und/oder eine zen
trale Recheneinheit eines Computers und/oder eine weitere
Datenspeichereinrichtung ist.
13. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
die Rechnereinheit (CL) ein System ist, das Internetdienste
zur Verfügung stellt.
14. System nach einem der Ansprüche 5 bis 13, dadurch
gekennzeichnet, daß
die Rechnereinheit (CL) direkt auf einzelne Zellen (Z) der
Datenspeichereinrichtungen (C) zugreift.
15. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
die vorbestimmten Parameter von Datenübertragungen zwischen
den einzelnen Datenspeichereinrichtungen (C) und der Rech
nereinheit (CL) die Übertragungsdauer und/oder die Fehler
rate und/oder die Dauer von Datenbearbeitungen der
einzelnen Datenspeichereinrichtungen (C) vor der Übertra
gung der Daten umfassen.
16. System nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
die Datenübertragungseinrichtungen (N) elektrisch leitende
Verbindungen und/oder Bussysteme und/oder Rechnernetzwerke
und/oder drahtgebundene oder drahtlose (mobile) Telefon
netzwerke und/oder das Internet umfassen.
17. Datenbanksystem oder Rechnerstruktur, das mit einem
System nach einem der Ansprüche 1 bis 16 Daten verwaltet.
18. System für ein Computerspiel, das über das Internet zur
Verfügung gestellt wird, das ein System nach einem der
Ansprüche 1 bis 17 umfaßt.
19. System nach Anspruch 18, dadurch gekennzeichnet, daß
wenigstens eine Rechnereinheit (CL) ein Internet-Service-
Provider ist.
20. System nach Anspruch 18 oder 19, dadurch gekennzeich
net, daß
das Computerspiel ein interaktives Computerspiel zur Benut
zung durch wenigstens zwei Benutzer (B) ist.
21. System nach Anspruch 20, dadurch gekennzeichnet, daß
jeder Benutzer (B) jeweils mit einer Rechnereinheit (CL)
verbunden ist.
22. System nach Anspruch 20 oder 21, dadurch gekennzeich
net, daß
die Rechnereinheiten (CL) Daten zur Durchführung des Compu
terspiels an die entsprechenden Benutzer (B) übertragen.
23. System nach Anspruch 22, dadurch gekennzeichnet, daß
die Benutzer (B) die erhaltenen Daten zur Durchführung des
Computerspiels bearbeiten und an die entsprechenden Rech
nereinheiten (CL) zurück übertragen.
24. System nach einem der Ansprüche 18 bis 23, dadurch
gekennzeichnet, daß
zusätzlich Einrichtungen zur Erfassung vorbestimmter Para
meter der Datenübertragung zwischen den Rechnereinheiten
(CL) und den jeweils damit verbundenen Benutzern (B) vor
handen sind.
25. System nach Anspruch 24, dadurch gekennzeichnet, daß
die vorbestimmten Parameter von Datenübertragungen zwischen
den Rechnereinheiten (CL) und den jeweils damit verbundenen
Benutzern (B) die Übertragungsdauer, und/oder die Fehlerra
te, und/oder die Dauer von Datenbearbeitungen der einzelnen
Rechnereinheiten (CL) und/oder der einzelnen Benutzern (B)
vor der Übertragung der Daten umfassen.
26. System nach Anspruch 24 oder 25, dadurch gekennzeich
net, daß
die Daten zur Durchführung des Computerspiels auch in
Abhängigkeit der ermittelten vorbestimmten Parameter der
Datenübertragung zwischen den Rechnereinheiten (CL) und den
jeweils damit verbundenen Benutzern (B) redundant gespei
chert sind.
27. System nach einem der Ansprüche 18 bis 26, dadurch
gekennzeichnet, daß
die Rechnereinheiten (CL) von den entsprechenden Benutzern
(B) Steuerdaten zur Durchführung des Computerspiels erhal
ten.
28. System nach Anspruch 27, dadurch gekennzeichnet, daß
die Rechnereinheiten (CL) die Steuerdaten oder entsprechen
de Daten an die Datenspeichereinrichtungen (C) ausgeben.
29. System nach einem der Ansprüche 27 oder 28, dadurch
gekennzeichnet, daß
- - die Rechnereinheiten (CL) in Abhängigkeit der Steuerdaten Daten zur Durchführung des Computerspiels bearbeiten, und/oder
- - die Datenspeichereinrichtungen (C) in Abhängigkeit der Steuerdaten oder der den Steuerdaten entsprechenden Daten Daten zur Durchführung des Computerspiels bearbeiten.
30. Verfahren zum Datenzugriff und zur Datenverwaltung für
ein Rechnersystem, das folgende Schritte umfaßt:
- - Speichern von Daten in wenigstens zwei Datenspeicherein richtungen (C),
- - Zugreifen auf die Daten der Datenspeichereinrichtungen (C) mittels wenigstens einer Rechnereinheit (CL) über Datenübertragungeinrichtungen (N), wobei
- - vorbestimmte Parameter der Datenübertragung zwischen den Datenspeichereinrichtungen (C) und der Rechnereinheit (CL) ermittelt werden,
- - die Daten in wenigstens zwei der wenigstens zwei Daten speichereinrichtungen (C) in Abhängigkeit von den ermittel ten Parametern der Datenübertragung redundant gespeichert werden, und
- - das Zugreifen auf die Daten in Abhängigkeit von den ermittelten Parametern der Datenübertragung erfolgt.
31. Verfahren nach Anspruch 30, dadurch gekennzeichnet, daß
der Datenzugriff und die Datenverwaltung von den Datenspei
chereinrichtungen (C) gesteuert wird.
32. Verfahren nach Anspruch 30 oder 31, dadurch gekenn
zeichnet, daß
mit dem Verfahren redundant gespeicherte Daten in Abhängig
keit von den ermittelten Parametern von Datenübertragungen
zwischen den einzelnen Datenspeichereinrichtungen (C) und
der Rechnereinheit (CL) von den Datenspeichereinrichtungen
(C) untereinander kopiert und in den Datenspeichereinrich
tungen (C) gelöscht werden, in denen die kopierten Daten
zuvor gespeichert wurden.
33. Verfahren nach einem der Ansprüche 30 bis 32, dadurch
gekennzeichnet, daß
die gespeicherten Daten von den Datenspeichereinrichtungen
(C) unabhängig von der Rechnereinheit (CL) bearbeitet
werden.
34. Verfahren nach einem der Ansprüche 30 bis 33, dadurch
gekennzeichnet, daß
- - die Daten in Datenteilmengen (F) unterteilt werden, und
- - redundant zu speichernde der Datenteilmengen (F) jeweils in Zellen (Z) der einzelnen Datenspeichereinrichtungen (C) gespeichert werden.
35. Verfahren nach einem der Ansprüche 30 bis 34, dadurch
gekennzeichnet, daß
das Unterteilen in Datenteilmengen (F) und das Speichern in
die Zellen (Z) in Abhängigkeit der Datenübertragungsparame
ter durchgeführt wird.
36. Verfahren nach einem der Ansprüche 34 bis 35, dadurch
gekennzeichnet, daß
zusätzliche Daten zum Datenzugriff und zur Datenverwaltung
in den Zellen (Z) gespeichert werden, die die Parameter von
Datenübertragungen zwischen den einzelnen Datenspeicherein
richtungen (C) und der Rechnereinheit (CL), und/oder be
nachbarte Zellen (Z), und/oder Zellen (Z) betreffen, die
die in dem System redundant gespeicherten Daten umfassen.
37. Verfahren nach einem der Ansprüche 34 bis 36, dadurch
gekennzeichnet, daß
zusätzliche Daten zum Datenzugriff und zur Datenverwaltung
zwischen den Zellen (Z) der Datenspeichereinrichtungen (C)
ausgetauscht werden.
38. Verfahren nach einem der Ansprüche 34 bis 37, dadurch
gekennzeichnet, daß
das Zugreifen auf Daten von Zellen (Z) einer Datenspei
chereinrichtung (C) die gleichen Datenübertragungsparameter
aufweist.
39. Verfahren nach einem der Ansprüche 30 bis 38, dadurch
gekennzeichnet, daß
Daten von der Rechnereinheit (CL) zur Speicherung in den
Datenspeichereinrichtungen (C) ausgegeben und/oder die in
den Datenspeichereinrichtungen (C) gespeicherten Daten von
der Rechnereinheit (CL) bearbeitet werden.
40. Verfahren nach einem der Ansprüche 30 bis 39, dadurch
gekennzeichnet, daß
die Daten von der Rechnereinheit (CL) an einen Benutzer (B)
übertragen werden und/oder die Rechnereinheit (CL) von dem
Benutzer (B) gesteuert wird.
41. Verfahren nach einem der Ansprüche 30 bis 40, dadurch
gekennzeichnet, daß
das Verfahren Internetdienste zur Verfügung stellt.
42. Verfahren nach einem der Ansprüche 34 bis 41, dadurch
gekennzeichnet, daß
der Zugriff direkt auf die Daten einzelner Zellen (Z) der
Datenspeichereinrichtungen (C) erfolgt.
43. Verfahren nach einem der Ansprüche 30 bis 42, dadurch
gekennzeichnet, daß
die Ermittlung der vorbestimmten Parameter von Datenüber
tragungen zwischen den einzelnen Datenspeichereinrichtungen
(C) und der Rechnereinheit (CL) die Ermittlung der Übertra
gungsdauer, und/oder der Fehlerrate, und/oder der Dauer von
Datenbearbeitungen der einzelnen Datenspeichereinrichtungen
(C) vor der Übertragung der Daten umfaßt.
44. Verfahren für ein Datenbanksystem oder eine Rechner
struktur, das mit einem Verfahren nach einem der Ansprüche
30 bis 43 Daten verwaltet.
45. Verfahren für ein Computerspiel, das über das Internet
zur Verfügung gestellt wird, das ein Verfahren nach einem
der Ansprüche 30 bis 44 umfaßt.
46. Verfahren nach Anspruch 45, dadurch gekennzeichnet, daß
das Zugreifen auf Daten in den Datenspeichereinrichtungen
(C) die Nutzung eines Internet-Service-Providers umfaßt,
der als Rechnereinheit (CL) arbeitet.
47. Verfahren nach Anspruch 45 oder 46, dadurch gekenn
zeichnet, daß
wenigstens zwei Benutzer (B) auf das Computerspiel zugrei
fen, wobei das Computerspiel ein interaktives Computerspiel
ist.
48. System nach Anspruch 47, dadurch gekennzeichnet, daß
die Daten zur Durchführung des Computerspiels von den
Rechnereinheiten (CL) an die entsprechenden Benutzer (B)
übertragen werden.
49. Verfahren nach Anspruch 48, dadurch gekennzeichnet, daß
die von den Benutzern (B) erhaltenen Daten von den Benut
zern (B) bearbeitet und an die entsprechenden Rechnerein
heiten (CL) zurück übertragen werden.
50. Verfahren nach einem der Ansprüche 45 bis 49, dadurch
gekennzeichnet, daß
zusätzlich vorbestimmte Parameter der Datenübertragung
zwischen den Rechnereinheiten (CL) und den jeweils damit
verbundenen Benutzern (B) ermittelt werden.
51. Verfahren nach Anspruch 50, dadurch gekennzeichnet, daß
die Ermittlung der vorbestimmten Parameter von Datenüber
tragungen zwischen den Rechnereinheiten (CL) und den je
weils damit verbundenen Benutzern (B) die Ermittlung der
Übertragungsdauer, und/oder der Fehlerrate, und/oder der
Dauer von Datenbearbeitungen der einzelnen Rechnereinheiten
(CL) und/oder der einzelnen Benutzern (B) vor der Übertra
gung der Daten umfaßt.
52. Verfahren nach Anspruch 50 oder 51, dadurch gekenn
zeichnet, daß
die redundante Speicherung der Daten zur Durchführung des
Computerspiels auch in Abhängigkeit der ermittelten vorbe
stimmten Parameter der Datenübertragung zwischen den Rech
nereinheiten (CL) und den jeweils damit verbundenen
Benutzern (B) durchgeführt wird.
53. Verfahren nach einem der Ansprüche 45 bis 52, dadurch
gekennzeichnet, daß
Steuerdaten zur Durchführung des Computerspiels von den
Benutzern (B) an die entsprechenden Rechnereinheiten (CL)
übertragen werden.
54. Verfahren nach Anspruch 53, dadurch gekennzeichnet, daß
die Steuerdaten oder entsprechende Daten von den Rech
nereinheiten (CL) an die Datenspeichereinrichtungen (C)
übertragen werden.
55. Verfahren nach einem der Ansprüche 53 oder 54, dadurch
gekennzeichnet, daß
- - die Daten zur Durchführung des Computerspiels in Abhän gigkeit der Steuerdaten von den Rechnereinheiten (CL) bearbeitet werden, und/oder
- - die Daten zur Durchführung des Computerspiels in Abhän gigkeit der Steuerdaten oder der den Steuerdaten entspre chenden Daten von den Datenspeichereinrichtungen (C) bearbeitet werden.
Priority Applications (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19900636A DE19900636B8 (de) | 1999-01-11 | 1999-01-11 | Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung |
DK00903572T DK1151591T3 (da) | 1999-01-11 | 2000-01-11 | Datatilgangs- og administrationssystem og datatilgangs- og administrationsmetode for et computersystem |
AT00903572T ATE277474T1 (de) | 1999-01-11 | 2000-01-11 | Datenzugriffs- und -verwaltungssystem sowie verfahren zum datenzugriff und zur datenverwaltung für ein rechnersystem |
EP00903572A EP1151591B1 (de) | 1999-01-11 | 2000-01-11 | Datenzugriffs- und -verwaltungssystem sowie verfahren zum datenzugriff und zur datenverwaltung für ein rechnersystem |
PCT/EP2000/000141 WO2000041471A2 (de) | 1999-01-11 | 2000-01-11 | Datenzugriffs- und -verwaltungssystem sowie verfahren zum datenzugriff und zur datenverwaltung für ein rechnersystem |
ES00903572T ES2230059T3 (es) | 1999-01-11 | 2000-01-11 | Sistema de acceso y de gestion de datos y procedimiento de acceso y de gestion de datos para un sistema informatico. |
DE50007896T DE50007896D1 (de) | 1999-01-11 | 2000-01-11 | Datenzugriffs- und -verwaltungssystem sowie verfahren zum datenzugriff und zur datenverwaltung für ein rechnersystem |
PT00903572T PT1151591E (pt) | 1999-01-11 | 2000-01-11 | Sistema de acesso a dados e de gestao de dados, bem como processo de acesso a dados e de gestao de dados para um sistema informatico |
US09/903,431 US7000084B2 (en) | 1999-01-11 | 2001-07-10 | Data access and management system as well as a method for data access and data management for a computer system |
US11/188,025 US7904680B2 (en) | 1999-01-11 | 2005-07-23 | Data access management system as well as a method for data access and data management for a computer system |
US11/515,507 USRE40521E1 (en) | 1999-01-11 | 2006-09-05 | Data access and management system as well as a method for data access and data management for a computer system |
US13/029,267 US8656125B2 (en) | 1999-01-11 | 2011-02-17 | Data access and management system as well as a method for data access and data management for a computer system |
US13/609,065 US20130067038A1 (en) | 1999-01-11 | 2012-09-10 | Data access and management system as well as a method for data access and data management for a computer system |
US14/106,636 US20140201484A1 (en) | 1999-01-11 | 2013-12-13 | Data access and management system as well as a method for data access and data management for a computer system |
US14/858,723 US9787771B2 (en) | 1999-01-11 | 2015-09-18 | Data access and management system as well as a method for data access and data management for a computer system |
US15/719,160 US20180034907A1 (en) | 1999-01-11 | 2017-09-28 | Data access and management system as well as a method for data access and data management for a computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19900636A DE19900636B8 (de) | 1999-01-11 | 1999-01-11 | Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung |
Publications (3)
Publication Number | Publication Date |
---|---|
DE19900636A1 true DE19900636A1 (de) | 2000-07-13 |
DE19900636B4 DE19900636B4 (de) | 2004-01-15 |
DE19900636B8 DE19900636B8 (de) | 2005-04-07 |
Family
ID=7893896
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19900636A Expired - Fee Related DE19900636B8 (de) | 1999-01-11 | 1999-01-11 | Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung |
DE50007896T Expired - Lifetime DE50007896D1 (de) | 1999-01-11 | 2000-01-11 | Datenzugriffs- und -verwaltungssystem sowie verfahren zum datenzugriff und zur datenverwaltung für ein rechnersystem |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE50007896T Expired - Lifetime DE50007896D1 (de) | 1999-01-11 | 2000-01-11 | Datenzugriffs- und -verwaltungssystem sowie verfahren zum datenzugriff und zur datenverwaltung für ein rechnersystem |
Country Status (8)
Country | Link |
---|---|
US (8) | US7000084B2 (de) |
EP (1) | EP1151591B1 (de) |
AT (1) | ATE277474T1 (de) |
DE (2) | DE19900636B8 (de) |
DK (1) | DK1151591T3 (de) |
ES (1) | ES2230059T3 (de) |
PT (1) | PT1151591E (de) |
WO (1) | WO2000041471A2 (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19900636B8 (de) | 1999-01-11 | 2005-04-07 | Gailer, Peter | Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung |
US8560691B2 (en) * | 2007-06-19 | 2013-10-15 | Microsoft Corporation | Relocating item in distributed storage system |
US8825743B2 (en) * | 2007-07-12 | 2014-09-02 | Cornell University | Semantic transactions in online applications |
US8380960B2 (en) * | 2008-11-04 | 2013-02-19 | Microsoft Corporation | Data allocation and replication across distributed storage system |
KR20130087810A (ko) * | 2012-01-30 | 2013-08-07 | 삼성전자주식회사 | 이동통신 시스템에서 협력적 캐슁 방법 및 장치 |
US9436842B2 (en) * | 2013-08-16 | 2016-09-06 | Vinay Purohit | Distributed fragments file system |
US10430217B2 (en) * | 2013-09-16 | 2019-10-01 | Vmware, Inc. | High availability using dynamic quorum-based arbitration |
US10146455B2 (en) * | 2014-07-08 | 2018-12-04 | Osr Enterprises Ag | Device, system and method for storing data |
US9785473B2 (en) | 2014-07-14 | 2017-10-10 | Nxp Usa, Inc. | Configurable per-task state counters for processing cores in multi-tasking processing systems |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5668986A (en) * | 1991-10-02 | 1997-09-16 | International Business Machines Corporation | Method and apparatus for handling data storage requests in a distributed data base environment |
US5548724A (en) | 1993-03-22 | 1996-08-20 | Hitachi, Ltd. | File server system and file access control method of the same |
US5459837A (en) * | 1993-04-21 | 1995-10-17 | Digital Equipment Corporation | System to facilitate efficient utilization of network resources in a computer network |
JPH06332623A (ja) * | 1993-05-24 | 1994-12-02 | Mitsubishi Electric Corp | アレイ型記録装置及び記録装置 |
US5634125A (en) * | 1993-09-02 | 1997-05-27 | International Business Machines Corporation | Selecting buckets for redistributing data between nodes in a parallel database in the quiescent mode |
US6185619B1 (en) | 1996-12-09 | 2001-02-06 | Genuity Inc. | Method and apparatus for balancing the process load on network servers according to network and serve based policies |
US5881051A (en) | 1995-07-10 | 1999-03-09 | International Business Machines | Management of route testing in packet communications networks |
US6047309A (en) * | 1995-10-02 | 2000-04-04 | International Business Machines Corporation | Recording observed and reported response characteristics at server and/or client nodes in a replicated data environment, and selecting a server to provide data based on the observed and/or reported response characteristics |
JPH09179820A (ja) | 1995-12-26 | 1997-07-11 | Mitsubishi Electric Corp | 負荷分散方式及び方法 |
EP0965084A1 (de) | 1996-03-21 | 1999-12-22 | MPATH Interactive Inc. | Netzwerkanpassungssystem zur auswahl von kunden basiert auf servereigenschaften und übertragungsverbindungen |
US5838909A (en) | 1996-05-23 | 1998-11-17 | Sandcastle, Inc. | Reducing latency when synchronizing access to a multi-user database over a network |
JPH1069358A (ja) * | 1996-08-28 | 1998-03-10 | Mitsubishi Electric Corp | データ配置装置 |
AU714865B2 (en) * | 1996-10-18 | 2000-01-13 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US5802106A (en) | 1996-12-06 | 1998-09-01 | Packeteer, Inc. | Method for rapid data rate detection in a packet communication environment without data rate supervision |
US6052718A (en) | 1997-01-07 | 2000-04-18 | Sightpath, Inc | Replica routing |
GB9702458D0 (en) | 1997-02-06 | 1997-03-26 | British Telecomm | Adaptive distributed information network |
US6152824A (en) | 1997-03-06 | 2000-11-28 | Mpath Interactive, Inc. | Online gaming architecture |
US6073209A (en) | 1997-03-31 | 2000-06-06 | Ark Research Corporation | Data storage controller providing multiple hosts with access to multiple storage subsystems |
US6038599A (en) | 1997-04-23 | 2000-03-14 | Mpath Interactive, Inc. | Latency server and matchmaker |
US6256675B1 (en) | 1997-05-06 | 2001-07-03 | At&T Corp. | System and method for allocating requests for objects and managing replicas of objects on a network |
JP4151991B2 (ja) * | 1997-05-26 | 2008-09-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ビデオサーバにおいてデータを取り出すシステム |
US6081907A (en) | 1997-06-09 | 2000-06-27 | Microsoft Corporation | Data delivery system and method for delivering data and redundant information over a unidirectional network |
US6189043B1 (en) * | 1997-06-09 | 2001-02-13 | At&T Corp | Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation |
US6112239A (en) | 1997-06-18 | 2000-08-29 | Intervu, Inc | System and method for server-side optimization of data delivery on a distributed computer network |
US6088766A (en) | 1997-10-06 | 2000-07-11 | Emc Corporation | Method for exchanging data blocks on disk storage devices utilizing disk access statistics and testing for the effect of a change |
US7301944B1 (en) | 1997-10-24 | 2007-11-27 | Tranz-Send Broadcasting Network, Inc. | Media file distribution with adaptive transmission protocols |
US6215772B1 (en) | 1997-11-26 | 2001-04-10 | International Business Machines Corporation | Dynamic parameter estimation for efficient transport of HPR data on IP |
US6178160B1 (en) | 1997-12-23 | 2001-01-23 | Cisco Technology, Inc. | Load balancing of client connections across a network using server based algorithms |
US6415373B1 (en) | 1997-12-24 | 2002-07-02 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6185598B1 (en) | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
US6085251A (en) | 1998-04-02 | 2000-07-04 | The United States Of America As Represented By The Secretary Of The Air Force | Implementing a parallel file transfer protocol |
US6115752A (en) | 1998-05-21 | 2000-09-05 | Sun Microsystems, Inc. | System and method for server selection for mirrored sites |
DE19900636B8 (de) | 1999-01-11 | 2005-04-07 | Gailer, Peter | Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung |
US6339785B1 (en) | 1999-11-24 | 2002-01-15 | Idan Feigenbaum | Multi-server file download |
-
1999
- 1999-01-11 DE DE19900636A patent/DE19900636B8/de not_active Expired - Fee Related
-
2000
- 2000-01-11 PT PT00903572T patent/PT1151591E/pt unknown
- 2000-01-11 DE DE50007896T patent/DE50007896D1/de not_active Expired - Lifetime
- 2000-01-11 DK DK00903572T patent/DK1151591T3/da active
- 2000-01-11 AT AT00903572T patent/ATE277474T1/de active
- 2000-01-11 WO PCT/EP2000/000141 patent/WO2000041471A2/de active Search and Examination
- 2000-01-11 ES ES00903572T patent/ES2230059T3/es not_active Expired - Lifetime
- 2000-01-11 EP EP00903572A patent/EP1151591B1/de not_active Expired - Lifetime
-
2001
- 2001-07-10 US US09/903,431 patent/US7000084B2/en not_active Ceased
-
2005
- 2005-07-23 US US11/188,025 patent/US7904680B2/en not_active Expired - Fee Related
-
2006
- 2006-09-05 US US11/515,507 patent/USRE40521E1/en not_active Expired - Lifetime
-
2011
- 2011-02-17 US US13/029,267 patent/US8656125B2/en not_active Expired - Lifetime
-
2012
- 2012-09-10 US US13/609,065 patent/US20130067038A1/en not_active Abandoned
-
2013
- 2013-12-13 US US14/106,636 patent/US20140201484A1/en not_active Abandoned
-
2015
- 2015-09-18 US US14/858,723 patent/US9787771B2/en not_active Expired - Fee Related
-
2017
- 2017-09-28 US US15/719,160 patent/US20180034907A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US8656125B2 (en) | 2014-02-18 |
WO2000041471A3 (de) | 2000-11-02 |
DK1151591T3 (da) | 2005-01-24 |
ES2230059T3 (es) | 2005-05-01 |
US20070244992A9 (en) | 2007-10-18 |
DE19900636B4 (de) | 2004-01-15 |
EP1151591B1 (de) | 2004-09-22 |
US20050273504A1 (en) | 2005-12-08 |
US7000084B2 (en) | 2006-02-14 |
US20130067038A1 (en) | 2013-03-14 |
US20110258396A1 (en) | 2011-10-20 |
US9787771B2 (en) | 2017-10-10 |
US7904680B2 (en) | 2011-03-08 |
DE19900636B8 (de) | 2005-04-07 |
WO2000041471A8 (de) | 2001-04-05 |
US20140201484A1 (en) | 2014-07-17 |
DE50007896D1 (de) | 2004-10-28 |
EP1151591A2 (de) | 2001-11-07 |
USRE40521E1 (en) | 2008-09-23 |
US20160248854A1 (en) | 2016-08-25 |
PT1151591E (pt) | 2005-02-28 |
WO2000041471A2 (de) | 2000-07-20 |
US20020152363A1 (en) | 2002-10-17 |
ATE277474T1 (de) | 2004-10-15 |
US20180034907A1 (en) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69729399T2 (de) | Datenverwaltungssystem und Verfahren für replizierte Daten | |
DE60317925T2 (de) | Steuerung von netzwerkverkehr in einer peer-to-peer umgebung | |
DE60130808T2 (de) | System und Verfahren zur Konfiguration von Netzwerkressourcen | |
EP1488611B1 (de) | Aaa serversystem zur effizienten zugangskontrolle und adresszuordnung | |
DE60108166T2 (de) | Untergruppen-multicasting in einem kommunikationsnetz | |
DE60008102T2 (de) | Verfahren und vorrichtung zur mehrfachsendung | |
DE69838506T2 (de) | Verfahren für transaktionen zwischen verteilten datenbanken | |
DE60122691T2 (de) | Verfahren und vorrichtung zum verteilten cachen | |
DE10123067B4 (de) | Synchrone Vervielfältigung von Transaktionen in einem verteilten System | |
DE60131047T2 (de) | Verwaltung von Protokollinformationen in hierarchischen PNNI-Netzen | |
DE69636993T2 (de) | Informationsverarbeitungssystem und Kommunikationsverfahren | |
EP1800457B1 (de) | Verfahren zur bestimmung eines leitenden teilnehmers in einem netzwerk | |
WO2006040139A1 (de) | Serverlose replikation von datenbanken | |
DE19900636A1 (de) | Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem | |
DE112018001561T5 (de) | Verteiltes speichernetzwerk | |
DE102016219854A1 (de) | Computersystem und Verfahren zum dynamischen Anpassen eines software-definierten Netzwerks | |
DE112020004353T5 (de) | Globale tabellenverwaltungsoperationen für replizierte tabellen mit mehreren regionen | |
DE202016107125U1 (de) | Systeme zum Erkennen der Topologie von Fernnetzwerken | |
DE102006052451B4 (de) | Verfahren zum Betrieb eines dezentralen Datennetzes | |
DE112011104020T5 (de) | Validierung des Zugriffs auf einen gemeinsam genutzen Datensatz bei Lese- und Schreibzugriff mehrerer Anforderer | |
DE112012000780T5 (de) | Verarbeiten von Berechtigungsprüfungsdaten | |
EP1524608B1 (de) | Kommunikationssystem zur Verwaltung und Bereitstellung von Daten | |
DE102020100870A1 (de) | Redundante Speicherung der Konfiguration von Netzwerkgeräten unter Einbeziehung von Nachbarschaftsbeziehungen | |
EP1415452B1 (de) | Kopplungsmittel für eine datenverarbeitungsvorrichtung | |
DE102008026373B4 (de) | Verfahren, Vorrichtung und System zum Bereitstellen von Daten in einem Peer-to-Peer-Netzwerk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8127 | New person/name/address of the applicant |
Owner name: GAILER, PETER, 85051 INGOLSTADT, DE BINZINGER, THO |
|
8181 | Inventor (new situation) |
Free format text: BINZINGER, THOMAS, 81827 MUENCHEN, DE GUENSTER, JOACHIM, 85591 VATERSTETTEN, DE |
|
8364 | No opposition during term of opposition | ||
8381 | Inventor (new situation) |
Inventor name: BINZINGER, THOMAS, 81827 MUENCHEN, DE |
|
8396 | Reprint of erroneous front page | ||
8339 | Ceased/non-payment of the annual fee |