DE102008062259A1 - Verfahren zur Speicherverwaltung in einem dezentralen Datennetz und dezentrales Datennetz - Google Patents

Verfahren zur Speicherverwaltung in einem dezentralen Datennetz und dezentrales Datennetz Download PDF

Info

Publication number
DE102008062259A1
DE102008062259A1 DE102008062259A DE102008062259A DE102008062259A1 DE 102008062259 A1 DE102008062259 A1 DE 102008062259A1 DE 102008062259 A DE102008062259 A DE 102008062259A DE 102008062259 A DE102008062259 A DE 102008062259A DE 102008062259 A1 DE102008062259 A1 DE 102008062259A1
Authority
DE
Germany
Prior art keywords
node
memory
logical
address
address field
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.)
Withdrawn
Application number
DE102008062259A
Other languages
English (en)
Inventor
Martin Schneider
Gerd Dr. Völksen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102008062259A priority Critical patent/DE102008062259A1/de
Publication of DE102008062259A1 publication Critical patent/DE102008062259A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Speicherverwaltung in einem dezentralen Datennetz, insbesondere einem Peer-to-Peer-Netz, mit einer Mehrzahl von Knoten (0, ..., 9), welche jeweils einen Speicherbereich umfassen, auf dem andere Knoten bei der Ausführung von Prozessen zugreifen können. Dabei adressiert ein adressierender erster Knoten (LP) Speicherabschnitte in den Speicherbereichen von anderen zweiten Knoten (RP) über logische Speicheradressen (VA), wobei eine Zuordnung einer logischen Speicheradresse (VA) zu einer physikalischen Speicheradresse (PA) innerhalb eines anderen zweiten Knotens (RP) derart erfolgt, dass aus einem logischen Adressfeld (SN) der logischen Speicheradresse (VA) mit Hilfe einer in dem dezentralen Datennetz eindeutigen Kennung (K) des ersten Knotens (LP) der zweite Knoten (RP) identifiziert und der logischen Speicheradresse (VA) über das logische Adressfeld (SN) eine physikalische Speicheradresse (PA) innerhalb des zweiten Knotens (RP) zugeordnet wird. Das erfindungsgemäße Verfahren ermöglicht auf einfache Weise durch die Verwendung einer eindeutigen Kennung des adressierenden Knotens, beispielsweise in der Form einer MAC-Adresse, eine Zuweisung einer logischen Speicheradresse zu einer physikalischen Speicheradresse in einem anderen Knoten.

Description

  • 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]

Claims (18)

  1. Verfahren zur Speicherverwaltung in einem dezentralen Datennetz, insbesondere einem Peer-to-Peer-Netz, mit einer Mehrzahl von Knoten (0, ..., 9), welche jeweils einen Speicherbereich umfassen, auf dem andere Knoten (0, ..., 9) bei der Ausführung von Prozessen zugreifen können, wobei ein adressierender erster Knoten (LP) Speicherabschnitte in den Speicherbereichen von anderen zweiten Knoten (RP) über logische Speicheradressen (VA) adressiert und eine Zuordnung einer logischen Speicheradresse (VA) zu einer physikalischen Speicheradresse (PA) innerhalb eines zweiten Knotens (RP) derart erfolgt, dass i) aus einem logischen Adressfeld (SN) der logischen Speicheradresse (VA) mit Hilfe einer in dem dezentralen Datennetz eindeutigen Kennung (K) des ersten Knotens (LP) der zweite Knoten (RP) identifiziert wird; ii) der logischen Speicheradresse (VA) über das logische Adressfeld (SN) eine physikalische Speicheradresse (PA) innerhalb des zweiten Knotens (RP) zugeordnet wird.
  2. Verfahren nach Anspruch 1, bei dem die eindeutige Kennung (K) eine dem ersten Knoten (LP) zugeordnete MAC-Adresse umfasst.
  3. Verfahren nach Anspruch 1 oder 2, bei dem der zweite Knoten (RP) in Schritt i) über eine Hash-Funktion (H) identifiziert wird, mit der eine Kombination aus der eindeutigen Kennung (K) des ersten Knotens (LP) und dem logischen Adressfeld (SN) auf einen Hash-Wert eines Hash-Wertebereichs abgebildet wird, wobei jeder Hash-Wert des Hash-Wertebereichs einer Identität eines zweiten Knotens (RP) zugeordnet ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der zweite Knoten (RP) in Schritt i) über eine Hash-Funktion (H) identifiziert wird, mit der eine Kombination aus der eindeutigen Kennung (K) des ersten Knotens (LP) und einem physikalischen Adressfeld, welches eindeutig dem logischen Adress feld (SN) zugeordnet ist, auf einen Hash-Wert eines Hash-Wertebereichs abgebildet wird, wobei jeder Hash-Wert des Hash-Wertebereichs einer Identität eines zweiten Knotens (RP) zugeordnet ist.
  5. Verfahren nach Anspruch 3 oder 4, bei dem in Schritt i) der Hash-Wert mittels der Hash-Funktion (H) berechnet wird.
  6. Verfahren nach einem der Ansprüche 3 bis 5, bei dem der Hash-Wert mittels einer Tabelle auf dem ersten Knoten (LP) ermittelt wird, wobei die Tabelle logischen Adressfeldern (SN) jeweils einen zweiten Knoten (RP) basierend auf dem jeweiligen Hash-Wert der Hash-Funktion (H) zuordnet.
  7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem in Schritt ii) das logische Adressfeld (SN) dem zweiten Knoten (RP) übermittelt wird, wobei auf dem zweiten Knoten (RP) das logische Adressfeld (SN) der physikalischen Speicheradresse (PA) innerhalb des zweiten Knotens (RP) über eine Tabelle zugeordnet wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem in Schritt ii) auf dem ersten Knoten (LP) das logische Adressfeld (SN) einem physikalischen Adressfeld über eine Tabelle zugeordnet wird, wobei das physikalische Adressfeld an den zweiten Knoten (RP) übermittelt wird und auf dem zweiten Knoten (RP) basierend auf dem physikalischen Adressfeld die physikalische Speicheradresse (PA) innerhalb des zweiten Knotens (RP) ermittelt wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die logischen Speicheradressen (VA) virtuelle und/oder physikalische Speicheradressen sind.
  10. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die logische Speicheradresse (VA) eine Segmentnummer und/oder eine Seitennummer sowie einen Offset (OF) umfasst und das logische Adressfeld (SN) der logischen Speicheradresse (VA) die Segmentnummer und/oder die Seitennummer enthält.
  11. Verfahren nach Anspruch 10, bei dem in Schritt ii) aus der Segmentnummer und/oder Seitennummer des logischen Adressfelds (SN) ein Basisadressfeld ermittelt wird, aus dem in Kombination mit dem Offset der logischen Speicheradresse (VA), zu dem das logische Adressfeld (SN) gehört, die physikalische Speicheradresse (PA) innerhalb des zweiten Knotens (RP) bestimmt wird.
  12. Verfahren nach Anspruch 11, bei dem das Basisadressfeld (BA) über eine Tabelle (T) ermittelt wird.
  13. Verfahren nach Anspruch 11 oder 12, bei dem die Basisadressnummer (BA) eine Kachelnummer oder eine physikalische Adresse ist.
  14. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der erste Knoten (LP) zum Zugriff auf die physikalische Speicheradresse (PA) innerhalb des zweiten Knotens (RP) über ein Look-Up-Protokoll den zweiten Knoten sucht.
  15. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die jeweiligen Daten aus den durch den ersten Knoten (LP) adressierten Speicherabschnitten der zweiten Knoten (RP) gemäß einem oder mehreren Kriterien in einem Cache-Speicher des ersten Knotens (LP) hinterlegt werden, wobei für die jeweiligen Daten in dem Cache-Speicher eine Identifikation des zweiten Knotens (RP) hinterlegt ist, von dem die Daten stammen.
  16. Verfahren nach Anspruch 15, bei dem in dem Cache-Speicher die Daten aus dem zuletzt durch den ersten Knoten (LP) adressierten Speicherabschnitt hinterlegt werden und bei vollem Cache-Speicher gleichzeitig andere Daten, insbesondere die Daten mit der geringsten Anzahl an Zugriffen in dem Cache-Speicher, aus dem Cache-Speicher gelöscht werden.
  17. Dezentrales Datennetz, insbesondere Peer-to-Peer-Netz, mit einer Mehrzahl von Knoten (0, ..., 9), welche jeweils einen Speicherbereich umfassen, auf dem andere Knoten (0, ..., 9) bei der Ausführung von Prozessen zugreifen können, wobei das Datennetz derart ausgestaltet ist, dass im Betrieb des Datennetzes ein adressierender erster Knoten (LP) Speicherabschnitte in den Speicherbereichen von anderen zweiten Knoten (RP) über logische Speicheradressen (VA) adressiert und eine Zuordnung einer logischen Speicheradresse (VA) zu einer physikalischen Speicheradresse (PA) innerhalb eines zweiten Knotens (RP) derart erfolgt, dass i) aus einem logischen Adressfeld (SN) der logischen Speicheradresse (VA) mit Hilfe einer in dem dezentralen Datennetz eindeutigen Kennung (K) des ersten Knotens (LP) der zweite Knoten (RP) identifiziert wird; ii) der logischen Speicheradresse (VA) über das logische Adressfeld eine physikalische Speicheradresse (PA) innerhalb des zweiten Knotens (RP) zugeordnet wird.
  18. Datennetz nach Anspruch 17, welches derart ausgestaltet ist, dass in dem Datennetz ein Verfahren nach einem der Ansprüche 2 bis 16 durchführbar ist.
DE102008062259A 2008-12-15 2008-12-15 Verfahren zur Speicherverwaltung in einem dezentralen Datennetz und dezentrales Datennetz Withdrawn DE102008062259A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102008062259A DE102008062259A1 (de) 2008-12-15 2008-12-15 Verfahren zur Speicherverwaltung in einem dezentralen Datennetz und dezentrales Datennetz

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008062259A DE102008062259A1 (de) 2008-12-15 2008-12-15 Verfahren zur Speicherverwaltung in einem dezentralen Datennetz und dezentrales Datennetz

Publications (1)

Publication Number Publication Date
DE102008062259A1 true DE102008062259A1 (de) 2010-06-17

Family

ID=42168712

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008062259A Withdrawn DE102008062259A1 (de) 2008-12-15 2008-12-15 Verfahren zur Speicherverwaltung in einem dezentralen Datennetz und dezentrales Datennetz

Country Status (1)

Country Link
DE (1) DE102008062259A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367461A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种存储空间管理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167490A (en) 1996-09-20 2000-12-26 University Of Washington Using global memory information to manage memory in a computer network
DE69433016T2 (de) 1993-12-10 2004-06-17 Silicon Graphics, Inc., Mountain View Speicheradressierung für ein massivparalleles verarbeitungsystem
US20050050292A1 (en) 2003-05-23 2005-03-03 Oh Jae C. Method and apparatus for per-process based virtual memory hierarchy and disk storage for distributed systems enabled as middleware for main memory and disk blocks on demand

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69433016T2 (de) 1993-12-10 2004-06-17 Silicon Graphics, Inc., Mountain View Speicheradressierung für ein massivparalleles verarbeitungsystem
US6167490A (en) 1996-09-20 2000-12-26 University Of Washington Using global memory information to manage memory in a computer network
US20050050292A1 (en) 2003-05-23 2005-03-03 Oh Jae C. Method and apparatus for per-process based virtual memory hierarchy and disk storage for distributed systems enabled as middleware for main memory and disk blocks on demand

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367461A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种存储空间管理方法及装置
CN111367461B (zh) * 2018-12-25 2024-02-20 兆易创新科技集团股份有限公司 一种存储空间管理方法及装置

Similar Documents

Publication Publication Date Title
DE112018005869T5 (de) Strukturanpassung einer namensraumzuordnung in nicht flüchtigen speichervorrichtungen
DE112016001075B4 (de) Verteiltes speichern und abrufen von datensätzen
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE2725718C2 (de) Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen
DE2455047C2 (de) Datenverarbeitungssystem mit einem Informationsspeicher
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE102016013577B4 (de) Systeme und Verfahren zum adaptiven Partitionieren in verteilten Cache-Speichern
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE102005029852A1 (de) Multiprozessorsystem mit mehreren Speicherpositionen zum jeweiligen Speichern von TLB-Abschussdaten für mehrere Prozessorknoten
DE102019102276A1 (de) Speichervorrichtung, die auf einer netzwerkstruktur vorgesehen ist, und verfahren zur warteschlangenverwaltung hierfür
DE112018004222T5 (de) Datenbankaufteilung
DE102013114214A1 (de) POSIX-kompatibles Dateisystem, Verfahren zum Erzeugen einer Dateiliste und Speichervorrichtung
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE112016003466T5 (de) Vorinstallieren von Seitentabellen-Cachezeilen einer virtuellen Maschine
DE102020104652A1 (de) Programmupdatesystem, Steuerungssystem, mobiler Körper, Programmupdateverfahren und Programm
DE102016204030B4 (de) Controller, Maschine, System und Verfahren zum Migrieren von RDMA-Arbeitsspeicherzuordnungen einer virtuellen Maschine
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache
DE102018107860A1 (de) System und Verfahren zum Zugriff auf Daten in einem Mehrkern-Verarbeitungssystem, um Zugriffe auf externe Speicher zu verringern
DE112017007323T5 (de) Cache-speicher und verfahren zur steuerung desselben
DE102005048729B4 (de) Verfahren und Systeme zum Defragmentieren eines Teilnetzraums innerhalb einer adaptiven Infrastruktur
EP3475819B1 (de) Verfahren zur automatischen und dynamischen zuteilung der zuständigkeit für aufgaben an die verfügbaren rechenkomponenten in einem hochverteilten datenverarbeitungssystem
DE102008062259A1 (de) Verfahren zur Speicherverwaltung in einem dezentralen Datennetz und dezentrales Datennetz
DE10227255A1 (de) Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120703