-
Die
Erfindung betrifft ein Verfahren zur Speicherverwaltung in einem
dezentralen Datennetz, insbesondere einem Peer-to-Peer-Netz, sowie
ein entsprechendes dezentrales Datennetz.
-
Dezentrale
Datennetze umfassen eine Vielzahl von gleichberechtigten Knoten,
welche ohne Zwischenschaltung einer zentralen Instanz miteinander
kommunizieren. Die einzelnen Knoten stellen dabei Rechner dar, auf
denen verschiedene Programme ausgeführt werden. Obwohl
die Knoten untereinander kommunizieren können, arbeiten
sie bei der Ausführung eines Programms in der Regel nicht
zusammen, d. h. Programme werden lokal nur durch einen Knoten durchgeführt.
Die bei der Programmausführung verwendete Speicherverwaltung
ist somit ebenfalls lokal. Dies bedeutet, dass die verwendeten Paging-Mechanismen,
mit denen Speicherbereiche aus dem Hauptspeicher eines Knotens bei
der Programmausführung ausgelagert werden, auch lokal ablaufen
und somit nur auf lokale Speicherbereiche des Knotens zugegriffen
wird. Insbesondere wenn kleine Prozessoren mit eingeschränkter
Speicherkapazität in den Knoten verwendet werden, kann
es hierdurch zu Problemen bei der Programmausführung kommen,
da nicht genügend Speicherplatz zum Auslagern von Speicher
zur Verfügung steht.
-
Aus
dem Stand der Technik sind verschiedene Verfahren zur Speicherverwaltung
bekannt. Die Druckschrift
DE
694 33 016 T2 beschreibt eine Speicheradressierung in einem
Netzwerk mit einer Mehrzahl von Prozessoren, wobei ein Prozessor
auch den Speicher eines anderen Prozessors adressieren kann. Dabei
wird die Nummer eines Prozessors, auf dem eine Speicheradresse liegt,
mit Hilfe eines Index ermittelt.
-
In
dem Dokument
US
2005/0050292 A1 ist ein Verfahren beschrieben, bei dem
in einem verteilten Computersystem mit ei ner Mehrzahl von Rechnern
der nicht verwendete Speicher eines Rechners bei Bedarf von einem
anderen Rechner genutzt wird.
-
Das
Dokument
US 6,167,490
A beschreibt eine Speicherverwaltung in einem Netzwerk,
bei der basierend auf globalen Informationen über die Knoten
des Netzwerks ein jeweiliger Knoten Speicherseiten auf andere Knoten
auslagert.
-
Der
Erfindung liegt die Aufgabe zugrunde, eine Speicherverwaltung in
einem dezentralen Datennetz vorzustellen, mit der auf einfache Weise
verteilt über das Datennetz die Speicherbereiche von verschiedenen
Knoten adressiert werden können.
-
Diese
Aufgabe wird durch das Verfahren gemäß Patentanspruch
1 oder durch das Datennetz gemäß Patentanspruch
17 gelöst. Weitere vorteilhafte Ausbildungen der Erfindung
sind in den abhängigen Ansprüchen definiert.
-
Das
erfindungsgemäße Verfahren dient zur Speicherverwaltung
in einem dezentralen Datennetz mit einer Mehrzahl von Knoten, welche
jeweils einen Speicherbereich umfassen, auf dem andere Knoten bei
der Ausführung von Prozessoren zugreifen können.
Dabei adressiert ein adressierender erster Knoten Speicherabschnitte
in den Speicherbereichen von anderen zweiten Knoten über
logische Speicheradressen, wobei eine Zuordnung einer logischen Speicheradresse
zu einer physikalischen Speicheradresse innerhalb eines zweiten
Knotens unter Berücksichtigung einer in dem dezentralen
Datennetz eindeutigen Kennung des ersten Knotens erfolgt. Unter
eindeutiger Kennung ist dabei eine Kennung zu verstehen, welche
in dem Datennetz nur einem einzigen Knoten zugewiesen ist. Erfindungsgemäß wird aus
einem logischen Adressfeld der logischen Speicheradresse mit Hilfe
der eindeutigen Kennung des ersten Knotens der zweite Knoten identifiziert,
d. h. es wird eine Identifikation bzw. Identität des zweiten Knotens
basierend auf der eindeutigen Kennung ermittelt. Ein logisches Adressfeld
kann jeden beliebigen Abschnitt der logischen Speicheradresse umfassen.
Gegebenenfalls kann das Adressfeld auch der gesamten logischen Speicheradresse
entsprechen. Nach Identifikation des zweiten Knotens wird der logischen
Speicheradresse über das logische Adressfeld eine physikalische
Speicheradresse innerhalb des zweiten Knotens zugeordnet.
-
Das
erfindungsgemäße Verfahren zeichnet sich dadurch
aus, dass auf einfache Weise mit Hilfe einer eindeutigen Kennung
eines adressierenden lokalen Knotens eine Identifikation eines anderen
Knotens erreicht wird, auf dem die entsprechende physikalische Speicheradresse
liegt.
-
Als
eindeutige Kennung eines ersten Knotens wird in einer besonders
bevorzugten Ausführungsform eine dem ersten Knoten zugeordnete MAC-Adresse
(MAC = Media Access Control) verwendet. MAC-Adressen dienen zur
Datenübertragung auf der L2-Schicht des OSI-Referenzmodells und
haben den großen Vorteil, dass sie weltweit eindeutig vergeben
werden. Bei der Verwendung von MAC-Adressen als Kennungen der ersten
Knoten wird somit automatisch sichergestellt, dass diese Kennungen
im Netz eindeutig sind.
-
In
einer weiteren, besonders bevorzugten Ausführungsform der
Erfindung wird der zweite Knoten über eine Hash-Funktion
identifiziert, mit der eine Kombination aus der eindeutigen Kennung
des ersten Knotens und dem logischen Adressfeld auf einen Hash-Wert
eines Hash-Wertebereichs abgebildet wird, wobei jeder Hash-Wert
des Hash-Wertebereichs einer Identität eines zweiten Knotens
zugeordnet ist und jedem Hash-Wert vorzugsweise eine andere Identität
und somit ein anderer Knoten zugeordnet ist. Hash-Funktionen sind
hinlänglich aus dem Stand der Technik bekannt und bilden
Werte aus einer großen Datenmenge auf eine kleinere Datenmenge
ab. Sie werden insbesondere auch in Peer-to-Peer-Netzen eingesetzt,
beispielsweise in der Form sog. verteilter Hash-Tabellen. Dabei
ist jeder Peer in dem Netz für einen Wertebereich von Hash-Werten
zuständig, wobei Ressourcen über die Hash-Funktion
entsprechenden Hash-Werten zugewiesen werden. Derjenige Peer, der
für den Hash-Wert zuständig ist, hat auch die
Zuständigkeit für die Ressource. In einer bevorzugten
Variante wird bei der Verwendung des erfindungsgemäßen
Verfahrens in einem Peer-to-Peer-Datennetz mit verteilter Hash-Tabelle
bei der Identifikation des zweiten Knotens eine Hash-Funktion verwendet,
welche auf Hash-Werte aus der verteilten Hash-Tabelle abbildet. Vorzugsweise
wird die gleiche Hash-Funktion wie für die verteilte Hash-Tabelle
eingesetzt. Auf diese Weise wird sichergestellt, dass auch immer
ein als zweiter Knoten fungierender Peer gefunden wird.
-
In
einer weiteren Ausführungsform des erfindungsgemäßen
Verfahrens wird der zweite Knoten über eine Hash-Funktion
identifiziert, mit der eine Kombination aus der eindeutigen Kennung
des ersten Knotens und einem physikalischen Adressfeld, welches
eindeutig dem logischen Adressfeld zugeordnet ist, auf einen Hash-Wert
eines Hash-Wertebereichs abgebildet wird, wobei jeder Hash-Wert
des Hash-Wertebereichs einer Identität eines zweiten Knotens
zugeordnet ist und jedem Hash-Wert vorzugsweise eine andere Identität
und somit ein anderer Knoten zugeordnet ist. Diese Variante des
Verfahrens kann analog wie die oben beschriebene Variante derart
realisiert werden, dass in einem Peer-to-Peer-Netz mit verteilter
Hash-Tabelle zur Identifikation des zweiten Knotens eine Hash-Funktion
verwendet wird, welche auf Hash-Werte aus der verteilten Hash-Tabelle
abbildet.
-
In
einer weiteren Variante des erfindungsgemäßen
Verfahrens wird bei jeder Identifikation eines zweiten Knotens die
Berechnung des Hash-Werts über die Hash-Funktion durchgeführt.
Es ist jedoch gegebenenfalls auch möglich, dass auf dem
ersten Knoten eine Tabelle hinterlegt ist, in welcher logischen
Adressfeldern jeweils ein zweiter Knoten basierend auf dem jeweiligen
Hash-Wert der Hash-Funktion zugeordnet ist. Auf diese Weise wird Rechenzeit
gespart, da lediglich durch Nachschlagen in der Tabelle der zweite
Knoten identifiziert wird, ohne dass eine Berechnung mittels einer
Hash-Funktion durchgeführt werden muss.
-
In
einer weiteren Variante des erfindungsgemäßen
Verfahrens wird nach Identifikation des zweiten Knotens das logische
Adressfeld dem zweiten Knoten übermittelt, wobei auf dem
zweiten Knoten das logische Adressfeld der physikalischen Speicheradresse
innerhalb des zweiten Knotens über eine Tabelle zugeordnet
wird. Ebenso ist es möglich, dass auf dem ersten Knoten
das logische Adressfeld einem physikalischen Adressfeld über
eine Tabelle zugeordnet wird, wobei das physikalische Adressfeld an
den zweiten Knoten übermittelt wird und auf dem zweiten
Knoten basierend auf dem physikalischen Adressfeld die physikalische
Speicheradresse innerhalb des zweiten Knotens ermittelt wird. Ein
physikalisches Adressfeld kann dabei jeden beliebigen Abschnitt
einer physikalischen Speicheradresse umfassen. Insbesondere kann
das physikalische Adressfeld eine ganze physikalische Speicheradresse
sein.
-
Vorzugsweise
wird durch das erfindungsgemäße Verfahren eine
virtuelle Speicherverwaltung realisiert, bei der die logischen Speicheradressen
virtuelle Speicheradressen sind. Gegebenenfalls können
die logischen Speicheradressen jedoch auch physikalische Speicheradressen
sein, wobei zunächst nicht bekannt ist, auf welchem Rechner
sich die physikalischen Adressen befinden.
-
In
einer weiteren Ausgestaltung des erfindungsgemäßen
Verfahrens umfasst die logische Speicheradresse eine Segmentnummer
und/oder eine Seitennummer sowie einen Offset und das logische Adressfeld
enthält die Segmentnummer und/oder die Seitennummer. Die
Segmentnummer wird bei einer Segmentierung der Speicherverwaltung
verwendet, wobei eine solche Segmentierung an sich aus dem Stand
der Technik bekannt ist. Die Verwendung von Seitennummern zur Speicheradressierung
ist ebenfalls aus herkömmlichen Paging-Verfahren bekannt.
Gegebenenfalls kann dabei eine Segmentierung mit einem Paging über
Seitennummern kombiniert werden. Durch den Offset wird spezifiziert,
an welche Stelle innerhalb des Segments bzw. der Seite sich eine
Adresse befindet.
-
Vorzugsweise
wird aus der Segmentnummer und/oder der Seitennummer des logischen
Adressfelds ein Basisadressfeld ermittelt, aus dem in Kombination
mit dem Offset der logischen Speicheradresse, zu dem das logische
Adressfeld gehört, die physikalische Speicheradresse innerhalb
des zweiten Knotens bestimmt wird. Die Ermittlung des Basisadressfelds
erfolgt dabei vorzugsweise über eine Tabelle. Bei der Verwendung
einer auf assoziativem Mapping basierenden Speicherverwaltung ist
das Basisadressfeld eine Kachelnummer, welche den physikalischen
Speicherort einer entsprechenden Seitennummer spezifiziert. Demgegenüber
ist bei einer auf Direct Mapping basierenden Speicherverwaltung
das Basisadressfeld eine physikalische Adresse. Assoziatives Mapping
und Direct Mapping sind dabei hinlänglich aus dem Stand
der Technik bekannte Methoden zur Speicherzuweisung.
-
In
einer weiteren Ausführungsform des erfindungsgemäßen
Verfahrens sucht der erste Knoten zum Zugriff auf die physikalische
Speicheradresse innerhalb des zweiten Knotens über ein
Look-Up-Protokoll den zweiten Knoten. Look-Up-Protokolle sind für
dezentrale Datennetze zum Auffinden von Knoten hinlänglich
bekannt.
-
In
einer weiteren Ausgestaltung des erfindungsgemäßen
Verfahrens werden die jeweiligen Daten aus den durch den ersten
Knoten adressierten Speicherabschnitten der zweiten Knoten gemäß einem
oder mehreren Kriterien in einem Cache-Speicher des ersten Knotens
hinterlegt, wobei für die jeweiligen Daten in dem Cache-Speicher
eine Identifikation des zweiten Knotens hinterlegt ist, von dem die
Daten stammen. Durch die Nutzung eines Cache-Speichers wird der
Zugriff auf die Daten beschleunigt, wobei in dem Cache bekannt ist,
von welchem zweiten Knoten die jeweiligen Daten ursprünglich
stammen, so dass diese Daten auch wieder auf diesen Knoten zurückgespeichert
werden können.
-
In
einer besonders bevorzugten Variante werden in dem Cache-Speicher
die Daten aus dem zuletzt durch den ersten Knoten adressierten Speicherabschnitt
hinterlegt, und bei vollem Cache-Speicher werden gleichzeitig andere
Daten, insbesondere die Daten mit der geringsten Anzahl an Zugriffen
in dem Cache-Speicher, aus diesem Speicher gelöscht.
-
Neben
dem oben beschriebenen Verfahren umfasst die Erfindung ferner ein
dezentrales Datennetz, insbesondere ein Peer-to-Peer-Netz, welches derart
ausgestaltet ist, dass jede Variante des erfindungsgemäßen
Verfahrens in dem Datennetz durchführbar ist.
-
Ausführungsbeispiele
der Erfindung werden nachfolgend anhand der beigefügten
Figuren detailliert beschrieben.
-
Es
zeigen:
-
1 eine
schematische Darstellung eines Peer-to-Peer-Netzes, in dem eine
Ausführungsform der erfindungsgemäßen
Speicherverwaltung implementiert ist; und
-
2 eine
schematische Darstellung des Ablaufs der Adressierung gemäß einer
Ausführungsform des erfindungsgemäßen
Verfahrens.
-
1 zeigt
beispielhaft ein dezentrales Datennetz in der Form eines Peer-to-Peer-Netzes.
Das Netz umfasst zehn Knoten in der Form von Peers 0 bis 9,
welche dezentral über ein entsprechendes Peer-to-Peer-Protokoll
(beispielsweise Chord) miteinander kommunizieren. Jeder Peer umfasst
einen integrierten Prozessor, der Programme unter Verwendung des
ihm zugeordneten Hauptspeichers ausführen kann. Dabei werden
bei der Programmausführung regelmäßig
Daten in einen anderen Speicherbereich außerhalb des Hauptspeichers
ausgelagert. Diese Auslagerung tritt besonders häufig bei
der Ausführung von datenintensiven Programmen auf, bei
denen die Datenmenge die Größe des Hauptspeichers
des ausführenden Peers überschreitet.
-
Da
oftmals der für die Auslagerung von Daten vorgesehene Speicherbereich
in einem lokalen, ein Programm ausführenden Peer nicht
ausreichend ist, werden erfindungsgemäß auch Speicherbereiche von
anderen Peers zur Auslagerung von Daten genutzt. Hierfür
sind von jedem Peer entsprechende Speicherbereiche freigegeben,
welche von anderen Peers zur Auslagerung von Daten verwendet werden können.
Auf diese Weise wird ein verteilter Paging-Mechanismus zur Auslagerung
von Daten während der Prozessausführung auf einem
lokalen Peer geschaffen.
-
Im
Folgenden wird ein Beispiel eines erfindungsgemäßen
Verfahrens basierend auf einer virtuellen Speicherverwaltung beschrieben,
bei der virtuelle Adressen zur Adressierung von Speicherabschnitten
verwendet werden. Den virtuellen Adressen sind physikalische Adressen
zugeordnet, an denen die entsprechenden Daten in physikalischen Speicherabschnitten
hinterlegt sind. Es wird von einer Speicherverwaltung ohne Segmentierung
ausgegangen, bei der die virtuellen Adressen durch eine Seitennummer
und einen Offset charakterisiert sind. Die Erfindung lässt
sich aber auch auf eine Speicherverwaltung mit Segmentierung anwenden,
wobei in diesem Fall eine virtuelle Adresse ferner durch eine entsprechende
Segmentnummer charakterisiert ist, welche das Segment des Speicherraums
angibt, in dem die Speicheradresse liegt. Eine Speicherverwaltung
basierend auf virtuellen Adressen in der Form von Seiten mit Offsets
sowie die Segmentierung einer Speicherverwaltung, mit der mehrere
aktive Prozesse auf verschiedene Segmente des Speicherraums zugreifen,
sind an sich aus dem Stand der Technik bekannt und werden deshalb
nicht im Detail beschrieben.
-
In
dem Szenario der 1 wird ein Prozess auf dem Peer 0 lokal
ausgeführt und entsprechende Speicherseiten werden während
der Prozessausführung aus dem Arbeitsspeicher in Speicherbereiche sowohl
lokal in dem Peer 0 als auch in den anderen Peers 1 bis 9 ausgelagert.
Die ausgelagerten Speicherseiten sind in 1 schematisch
durch an den Peers positionierte Rechtecke wiedergegeben und mit
dem Bezugszeichen S bezeichnet. Alle ausgelagerten Speicherseiten
stammen dabei aus dem Peer 0 und die Auslagerung auf die
verschiedenen Peers ist durch entsprechende Pfeile angedeutet. Auf
diese Weise wird ein quasi-physikalischer Arbeitsspeicher geschaffen,
der auf eine Vielzahl von Peers verteilt ist. Dieser Arbeitsspeicher
wird schematisch durch überlagerte Speicherseiten unterhalb
des Peers 0 wiedergegeben und ist mit dem Bezugszeichen
PM bezeichnet. Die eigentliche Speicherverwaltung erfolgt dabei über
virtuelle Adressen, durch welche ein virtueller Speicher gebildet
wird, der in 1 mit dem Bezugszeichen VM bezeichnet
ist.
-
Der
virtuelle Speicher VM ist mit dem physikalischen Speicher PM durch
eine Speicherverwaltung geeignet verknüpft, wobei die Speicherverwaltung
in Bezug auf 2 detailliert beschrieben wird. Die
Verknüpfung zwischen virtuellem und physikalischem Speicher
ist in 2 durch entsprechende Doppelpfeile wiedergegeben.
Zwischen dem virtuellen und dem physikalischen Speicher sind ferner noch
weitere Speicherseiten wiedergegeben, welche mit dem Bezugszeichen
CS bezeichnet sind. Es handelt sich hierbei um Speicherseiten, welche
lokal in einem sog. Descriptor-Cache des Peers 0 zwischengespeichert
sind. Diese gecachten Seiten sind dabei Speicherseiten, auf welche
der durchgeführte Rechenprozess häufig zugreift.
Durch das Zwischenspeichern von ausgelagerten Speicherseiten in
einem lokalen Cache-Speicher des Peers 0 wird ein schnellerer
Zugriff auf diese Seiten gewährleistet, denn der entfernte
Zugriff auf die Speicherseiten in den anderen Peers ist wesentlich
langsamer als der lokale Zugriff im Cache.
-
Die
Verwaltung des lokalen Caches erfolgt in der Ausführungsform
der 1 derart, dass immer dann, wenn eine neue Speicherseite
S in dem Prozess adressiert wird, die am wenigsten genutzte der gecachten
Speicherseiten auf den Peer zurückgespeichert wird, von
dem sie stammt, und die neu adressierte Seite komplett in den Cache
an die frei gewordene Stelle geladen wird. Dabei kann gegebenenfalls
ein sog. Look-Ahead-Verfahren verwendet werden, welches das rechtzeitige
Laden von Speicherseiten von anderen Peers auslöst. Look-Ahead- Verfahren
sind hinlänglich aus dem Stand der Technik bekannt und
werden deshalb an dieser Stelle nicht weiter im Detail beschrieben.
-
2 zeigt
in schematischer Darstellung, wie die Adressierung von Speicherseiten
auf verschiedenen Peers in dem Netzwerk der 1 durchgeführt
wird. In 2 ist dabei allgemein ein lokaler Peer,
auf dem ein Prozess ausgeführt wird, mit LP bezeichnet.
Ferner ist allgemein ein anderer Peer, auf dem eine adressierte
Speicheradresse physikalisch hinterlegt ist, mit RP bezeichnet.
Gemäß 2 wird durch den lokalen Peer
LP eine virtuelle Speicheradresse VA adressiert, welche sich aus
einer Seitenummer SN und einem sog. Offset OF zusammensetzt.
-
Zur
Ermittlung der physikalischen Speicheradresse ist zunächst
die Identität desjenigen Peers zu bestimmen, auf dem die
entsprechende, der virtuellen Adresse VA zugeordnete physikalische
Adresse liegt. Dies erfolgt in der Ausführungsform der 2 mit
Hilfe einer eindeutigen, dem lokalen Peer LP zugeordneten Kennung,
welche mit dem Bezugszeichen K bezeichnet ist. Die Kennung K kann
dabei beliebig ausgestaltet sein, entscheidend ist lediglich, dass
die Kennung in dem Peer-to-Peer-Netz für jeden Peer eindeutig
ist. In einer bevorzugten Ausführungsform kann als Kennung
beispielsweise die MAC-Adresse des Peers verwendet werden, welche weltweit
eindeutig ist.
-
Die
eindeutige Kennung K wird zusammen mit der Seitennummer SN zu einem
String konkateniert, d. h. es erfolgt eine Verknüpfung
zwischen der Kennung K und der Seitennummer SN. Diese Verknüpfung
wird dann mittels einer Hash-Funktion H auf eine positive Zahl abgebildet.
Hash-Funktionen sind hinlänglich aus dem Stand der Technik
bekannt und werden insbesondere in Peer-to-Peer-Netzen in sog. verteilten
Hash-Tabellen eingesetzt, um Ressourcen auf Hash-Wert-Intervalle
abzubilden, wobei jeder Peer für ein Hash-Wert-Intervall
zuständig ist. Ein Beispiel einer häufig verwendeten
Hash-Funktion ist SHA-1. Mit Hash-Funktionen werden Elementen aus
einem großen Datenraum in eindeutiger Weise Werte in einem
verkleinerten Datenraum zugeordnet, wobei diese Zuordnung weitestgehend
eindeutig ist. Gute Hash-Funktionen zeichnen sich ferner dadurch aus,
dass sie eine gleichmäßige Verteilung auf die Hash-Werte
gewährleisten, ohne dass Ähnlichkeiten in der
ursprünglichen Datenmenge eine Rolle spielen.
-
Mittels
der Hash-Funktion H wird somit eine eindeutige positive Zahl ermittelt,
wobei in der hier beschriebenen Ausführungsform vorbestimmte
Zahlenbereiche von Hash-Werten entsprechenden Peer-Identitäten
PI zugewiesen sind. Gegebenenfalls ist es auch möglich,
dass jeder Hash-Wert genau einer Peer-Identität entspricht
bzw. zugeordnet ist. In diesem Fall kann aufgrund der Eindeutigkeit der
Hash-Funktion immer nur eine Speicherseite in einem Peer ausgelagert
werden. Demgegenüber kann bei einer Zuweisung von Hash-Wert-Intervallen zu
den jeweiligen Peers auch die Auslagerung von mehreren Speicherseiten
auf einem Peer gewährleistet werden, wobei jedoch sichergestellt
werden muss (beispielsweise durch eine geeignete Wahl der Hash-Funktion),
dass gleiche Seitennummern von unterschiedlichen lokalen Peers auch
auf unterschiedliche Peers ausgelagert werden.
-
Mit
Hilfe der ermittelten Peer-Identität PI kann dann der lokale
Peer LP auf den entsprechenden Peer RP zugreifen, welcher der Peer-Identität
PI entspricht. Hierzu wird ein herkömmliches Look-Up-Verfahren
zum Auffinden des Peers RP eingesetzt. Dem Peer RP wird dabei die
ursprüngliche virtuelle Adresse VA umfassend die Seitennummer SN
und den Offset OF übermittelt. Der Peer RP verwendet dann
eine lokal bei ihm gespeicherte Seitentabelle, welche in 2 mit
dem Bezugszeichen T bezeichnet ist. In dieser Seitentabelle ist
jeder Seitennummer SN ein entsprechendes Basisadressfeld BA zugewiesen,
welches in der hier beschriebenen Ausführungsform einer
physikalischen Kachelnummer entspricht.
-
In
dem Beispiel der 2 existieren insgesamt 2N Seitennummern und jeder Seitennummer ist eine
entsprechende Kachelnummer BA(0) für die Seitenummer 0,
BA(1) für die Seitennummer 1, usw. bis BA(2N – 1)
für die Seitennummer 2N – 1
zugeordnet. Mit Hilfe der Tabelle T wird somit ein an sich bekanntes
assoziatives Mapping zwischen virtueller Seitennummer und physikalischer
Kachelnummer erreicht. Gegebenenfalls kann die Tabelle T auch auf Direct
Mapping beruhen, bei dem die Seitennummer einer physikalischen Basisadresse
und keiner Kachelnummer zugeordnet ist.
-
Mit
Hilfe der aus der Tabelle T entnommenen Kachelnummer BA wird durch
Verwendung des Offsets OF der virtuellen Adresse VA die physikalische Adresse
PA ermittelt, die sich aus der Kachelnummer BA und dem Offset OF
zusammensetzt. Die Daten des hierdurch adressierten physikalischen
Speichers können dann dem Peer LP bereitgestellt werden
und in den Hauptspeicher dieses Peers zur Prozessausführung
geladen werden. Ebenso können temporär bei der
Prozessausführung nicht benötigte Daten basierend
auf der Adresse VA in den physikalischen Speicherbereich mit der
entsprechenden Adresse PA ausgelagert werden.
-
Die
anhand von 2 beschriebene Ausführungsform
berechnet bei jeder Adressierung mittels der Hash-Funktion H die
entsprechende Peer-Identität PI neu. Es ist gegebenenfalls
jedoch auch möglich, dass die Peer-Identität nicht
jedes Mal neu berechnet wird, sondern eine entsprechende Tabelle
im Knoten LP hinterlegt ist, in der jede Seitennummer SN basierend
auf der Hash-Funktion H der entsprechenden Peer-Identität
PI zugeordnet ist. Das Auslesen aus einer solchen Seitentabelle
ist schneller als die Neuberechnung der Peer-Identität.
Die Neuberechnung hat jedoch den Vorteil, dass Speicherplatz gespart
wird.
-
Die
im Vorangegangenen beschriebene Ausführungsform des erfindungsgemäßen
Verfahrens weist eine Reihe von Vorteilen auf. Insbesondere werden
Speicherbereiche nicht mehr lokal in eine einzelne Auslagerungsdatei
ausgelagert, sondern es wird eine Verteilung der Auslagerungsdatei
auf verschiedene Speicherbereiche der Peers im Netz erreicht. Es
können somit datenintensive Programme ausgeführt
werden, welche auf einem einzelnen Peer aufgrund unzureichender
Speicherkapazität nicht ablauffähig sind. Bei
der Verwendung von geeigneten Hash-Funktionen wird darüber
hinaus eine Gleichverteilung der ausgelagerten Speicherbereiche über die
Peers erreicht.
-
Ferner
werden die lokalen Speicherressourcen der Peers entlastet und es
besteht keine Abhängigkeit von zentralisierten Ressourcen.
Darüber hinaus werden die grundlegenden Charakterisitika
von Peer-to-Peer-Netzen wie Robustheit, Flexibilität und Skalierbarkeit
beibehalten. Durch ein Cachen von Speicherseiten kann darüber
hinaus der Zugriff auf häufig adressierte Daten beschleunigt
werden.
-
In
einer bevorzugten Variante basiert das verwendete Peer-to-Peer-Protokoll
auf einer verteilten Hash-Tabelle, wobei die im erfindungsgemäßen Verfahren
verwendete Hash-Funktion auf die Wertebereiche dieser Hash-Tabelle
abbildet. Hierdurch wird garantiert, dass bei der Abbildung mit
der Hash-Funktion auch immer ein Peer gefunden wird.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- - DE 69433016
T2 [0003]
- - US 2005/0050292 A1 [0004]
- - US 6167490 A [0005]