-
Die
Erfindung betrifft ein Verfahren zur Verteilung von Ressourcen auf
Netzknoten in einem dezentralen Datennetz sowie ein entsprechendes
Datennetz, einen Netzrechner und ein Computerprogrammprodukt.
-
Dezentrale
Datennetze werden heutzutage in einer Vielzahl von technischen Anwendungsgebieten
eingesetzt. Solche Datennetze umfassen eine Mehrzahl von Netzknoten,
welche untereinander kommunizieren können. Diese Netzknoten können beispielsweise
drahtlos oder drahtgebunden miteinander vernetzte Rechner in einem
Computernetz sein, es kann sich jedoch auch um beliebige andere Arten
von Einheiten, wie z. B. Messeinheiten bzw. Sensoren in technischen
Anlagen oder Einrichtungen, wie z. B. medizinischen Geräten, Kraftwerksanlagen,
Automobilen und dergleichen handeln. Hier und im Folgenden ist somit
der Begriff Netzknoten allgemein zu verstehen und kann eine beliebige
kommunizierende Einheit auf einem der oben genannten technischen
Gebiete und ggf. weiterer technischen Gebiete betreffen.
-
Dezentrale
Datennetze zeichnen sich dadurch aus, dass es keinen zentralen, übergeordneten Netzknoten
zur Organisation des Netzwerks gibt, sondern alle Netzknoten in
dem Datennetz gleichberechtigt sind. Hierdurch können Netze realisiert werden,
welche eine hohe Ausfallsicherheit, einfache Skalierbarkeit auf
große
Knotenanzahlen und eine Realisierbarkeit mit geringer Rechenkapazität gewährleisten.
-
In
dezentralen Datennetzen werden von den einzelnen Netzknoten Ressourcen
verwaltet, wobei die Ressourcen auf die einzelnen Netzknoten dadurch
verteilt werden, dass jeder Ressource ein Index zugeordnet wird,
wobei die Indizes wiederum in Wertebereiche aufgeteilt sind und
jeder Netzknoten für
ei nen bestimmten Wertebereich der Gesamtmenge an Indizes zuständig ist.
Um eine Suche nach Ressourcen in dem Datennetz durchzuführen, werden
die Ressourcen häufig
durch ein oder mehrere Schlüsselwörter charakterisiert,
wobei der Begriff Schlüsselwort
allgemein zu verstehen ist und insbesondere auch nur einen Kennzeichner
zur Spezifikation der Identität
der Ressource umfassen kann. Das Schlüsselwort muss somit nicht zwangsläufig ein Wort
sein, aus dem sich ein Bedeutungsinhalt erschließt.
-
Aus
dem Stand der Technik sind verschiedene Verfahren zur Verteilung
von Ressourcen auf die Netzknoten eines dezentralen Datennetzes
unter Verwendung von Schlüsselwörtern bekannt.
Im Bereich von Computernetzen in der Form sog. Peer-to-Peer-Netze werden
insbesondere Verfahren zur Verteilung der Ressourcen verwendet,
welche eine gleichmäßige Aufteilung
der Ressourcen auf die Netzknoten gewährleisten, wodurch eine Überlastung
einzelner Netzknoten vermieden wird. Dies wird beispielsweise durch
die Verwendung von Hash-Funktionen erreicht, welche eine lokalitätszerstörende Eigenschaft
dahingehend haben, dass sie lexikographisch eng benachbarten Schlüsselwörtern auch
sehr weit voneinander entfernte Indizes zuordnen können. Durch
solche Verfahren wird zwar eine gleichmäßige Lastverteilung erreicht,
jedoch ermöglichen
diese Verfahren keine effiziente Wildcard-Suche nach trunkierten
Schlüsselwörtern, denn
aufgrund der lokalitätszerstörenden Eigenschaft
wird durch die Trunkierung die Anzahl der zu durchsuchenden Peers
nicht beschränkt.
-
Neben
den Verfahren, bei denen zur Verteilung der Ressourcen lokalitätszerstörende Hash-Funktionen
eingesetzt werden, existieren im Stand der Technik ferner Verfahren,
bei denen lokalitätserhaltende
Funktionen zur Zuordnung von Indizes zu Schlüsselwörtern und zur entsprechenden Verteilung
von Ressourcen auf Netzknoten eingesetzt werden. Auf diese Weise
können
zwar schnelle und effiziente Wildcard-Suchen durchgeführt werden,
jedoch tritt häufig
eine Überlastung
von Netzknoten dadurch auf, dass häufig verwendete, ähnliche
Schlüs selwörter immer
den gleichen Peers aufgrund der teilweisen Erhaltung der lexikographischen Ordnung
der Schlüsselwörter zugewiesen
werden.
-
Ein
weiterer aus dem Stand der Technik bekannter Ansatz zur gleichmäßigen Lastverteilung
besteht darin, dass den einzelnen Netzknoten selbst die Möglichkeit
gegeben wird, die vorhandenen Ressourcen so zu verteilen, dass in
jedem Wertebereich von Indizes etwa gleich viele Ressourcen liegen. Dies
führt jedoch
in der Praxis zu Sicherheitsproblemen, weil diese Strategien voraussetzen,
dass die Netzknoten ihre Indizes selbst wählen können, und somit könnte sich
ein böswilliger
Netzknoten gezielt an die Stelle in dem Indexraum platzieren, an
dem ein bestimmter Datensatz gespeichert wird, um diesen Datensatz
zu manipulieren oder zu löschen.
-
Aus
dem Dokument
DE
10 2006 011 291 A1 ist ein Verfahren zum Betrieb eines
dezentralen Datennetzes bekannt, wobei Abfragewerte für Daten
in dem Datennetz mit Hilfe einer verteilten Wertetabelle auf die
Netzknoten des Datennetzes verteilt werden. Mit Hilfe der Abfragewerte
können
die Daten in dem Netz gesucht werden. In dem Verfahren wird dabei die
Häufigkeit überwacht,
mit der Anfragen nach Abfragewerten an die jeweiligen Netzknoten
gerichtet werden. Überschreitet
die Häufigkeit
der Anfragen für Abfragewerte
an einen Netzknoten einen vorbestimmten Schwellenwert, werden die
Abfragewerte wenigstens einem anderen Netzknoten zugewiesen.
-
In
der Druckschrift
DE
10 2004 050 348 B3 ist ein Verfahren zur Initialisierung
eines Datennetzes beschrieben, wobei Rechner des Datennetzes, in
denen für
ein vorgegebenes Schlüsselwort
gleiche oder ähnliche
Schlüsselwörter hinterlegt
sind, zu Übertragungsschichten
zusammengefasst werden. Jede Übertragungsschicht
ist somit durch ein Schlüsselwort
charakterisiert. Auf diese Weise können effektiv Suchanfragen
nach Schlüsselwörtern in
das Netz gesendet werden, wobei bei der Weiterleitung der Suchanfrage
nur Rechner berücksichtigt
werden, die in einer Übertragungsschicht
liegen, welche durch wenigstens ein Schlüsselwort der Suchanfrage charakterisiert
ist.
-
Aufgabe
der Erfindung ist es, ein Verfahren zur Verteilung von Ressourcen
auf Netzknoten in einem dezentralen Datennetz zu schaffen, welches
die oben beschriebenen Nachteile vermeidet und eine Wildcard-Suche
nach Schlüsselwörtern bei
möglichst gleichmäßiger Verteilung
der Ressourcen im Datennetz ermöglicht.
-
Diese
Aufgabe wird durch die unabhängigen Patentansprüche gelöst. Weiterbildungen
der Erfindung sind in den abhängigen
Ansprüchen
definiert.
-
Das
erfindungsgemäße Verfahren
wird in einem Datennetz eingesetzt, welches eine Mehrzahl von Netzknoten
umfasst, wobei jeder Netzknoten für einen Wertebereich von Indizes
zuständig
ist und jeder Ressource ein oder mehrere Schlüsselwörter zugeordnet sind. In dem
Verfahren werden das oder die Schlüsselwörter einer jeweiligen Ressource
jeweils in eine digitale Bitfolge codiert (Schritt a)). In einem Schritt
b) werden eine oder mehrere Modifikationen der digitalen Bitfolge(n)
einer jeweiligen Ressource dadurch erzeugt, dass aus der oder den
digitalen Bitfolgen jeweils eine modifizierte Bitfolge erzeugt wird, wobei
in einer modifizierten Bitfolge die Bits an vorbestimmten Bitstellen
der jeweiligen digitalen Bitfolge unabhängig von dem gemäß der digitalen
Bitfolge codierten Schlüsselwort
durch neue Bits ersetzt werden. Eine Ersetzung der Bits unabhängig von
dem Schlüsselwort
bedeutet dabei, dass nicht die Struktur des Schlüsselworts, beispielsweise eine
alphabetische Reihenfolge von Zeichen des Schlüsselworts, beim Ersetzen der
Bits berücksichtigt
wird.
-
In
einem Schritt c) wird die modifizierte Bitfolge bzw. die Gesamtheit
der modifizierten Bitfolgen einer jeweiligen Modifikation derart
auf die Indizes und somit auf die Wertebereiche der Netzknoten abgebildet,
dass bei einer Anfrage eines Netzknotens nach einer Ressource mittels
eines oder mehrerer trunkierter Schlüsselwörter nur in einem Teil des
dezentralen Datennetzes (d. h. nur für einen Teil der Netzknoten in
dem Netz) nach Indizes gesucht werden muss, welche dem oder den
trunkierten Schlüsselwörtern entsprechen.
In einem Schritt d) wird schließlich
die jeweilige Ressource, d. h. die Ressource, der die Schlüsselwörter zugeordnet
sind, aus denen in Schritt a) die digitalen Bitfolgen codiert wurden,
demjenigen Index zugewiesen, auf den die modifizierte Bitfolge oder
die Gesamtheit der modifizierten Bitfolgen der Modifikation oder
einer der Modifikationen abgebildet wird.
-
Das
erfindungsgemäße Verfahren
kombiniert die Möglichkeit
einer bekannten Wildcard-Suche mit einer gleichmäßigen Lastverteilung, wobei die
gleichmäßige Lastverteilung
dadurch erreicht wird, dass die Abbildung auf die Indizes zur Gewährleistung
einer Wildcard-Suche nicht mit der ursprünglich codierten digitalen
Bitfolge, sondern mit einer abgewandelten Bitfolge durchgeführt wird,
bei der die Bits an vorbestimmten Bitstellen der codierten Bitfolge
durch neue Bits ersetzt werden. Aufgrund der Unabhängigkeit
der Bitersetzung von den Schlüsselwörtern wird
hierdurch die Lokalitätserhaltung,
welche durch die eine Wildcard-Suche ermöglichende Abbildung gewährleistet
ist, vermindert, wodurch die Lastverteilung gleichmäßiger wird.
-
Wird
in einem Datennetz, in dem die Ressourcen mit dem erfindungsgemäßen Verfahren
verteilt sind, nunmehr nach einer Ressource gesucht, deren Schlüsselwörter vollständig bekannt
sind, wird eine entsprechende Anfrage analog durch eine Wildcard-Suchanfrage
ersetzt, wobei diese Wildcard-Suchanfrage für jedes Schlüsselwort
genau diejenigen Bits enthält,
welche nicht durch neue Bits ersetzt wurden. Das Ergebnis dieser
Wildcard-Suchanfrage beinhaltet dann die gesuchte Ressource und muss
nur noch lokal in vorbestimmten Netzknoten nach der Ressource durchsucht
werden. Entsprechend muss eine Wildcard-Suchanfrage durch eine Wildcard-Suchanfrage
ersetzt werden, bei der für
jedes Schlüsselwort
höchstens
die ersten nicht ersetzten Bits enthalten sind.
-
In
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden die Bits der jeweiligen digitalen Bitfolge ab einer vorbestimmten Bitstelle
durch neue Bits ersetzt. Es wird somit der Endbereich einer Bitfolge
modifiziert.
-
In
einer besonders bevorzugten Ausgestaltung des erfindungsgemäßen Verfahrens
werden in Schritt b) die Bits an vorbestimmten Bitstellen der jeweiligen
digitalen Bitfolge durch zufällig
ausgewählte Bits
ersetzt. Hierdurch wird auf sehr einfache Weise eine Unabhängigkeit
der Bitersetzung von dem jeweiligen Schlüsselwort erreicht.
-
Bei
der Abbildung der modifizierten Bitfolge bzw. Gesamtheit der modifizierten
Bitfolgen auf die Indizes der Wertebereiche der Netzknoten können beliebige,
aus dem Stand der Technik bekannte Abbildungen verwendet werden,
welche zumindest teilweise eine Lokalitätserhaltung und somit eine
Wildcard-Suche ermöglichen.
In einer bevorzugten Variante erfolgt die Abbildung durch eine flächenfüllende Kurve,
beispielsweise eine Hilbert-Kurve. Solche flächenfüllenden Kurven sind hinlänglich aus
dem Stand der Technik bekannt und insbesondere in den Druckschriften
[1] und [2] beschrieben. In einer bevorzugten Variante wird hierbei
jeder Ressource eine vorgegebene Anzahl an Schlüsselwörtern zugeordnet, und das oder
die Schlüsselwörter einer
jeweiligen Ressource werden in digitale Bitfolgen mit fester Bitlänge codiert,
wobei die flächenfüllende Kurve eine
Dimension aufweist, welche der vorgegebenen Anzahl an Schlüsselwörtern entspricht,
und wobei die flächenfüllende Kurve
eine Ordnung aufweist, welche der festen Bitlänge entspricht. In einer bevorzugten
Variante bildet die flächenfüllende Kurve
die modifizierten Bitfolgen auf Indizes in einem Bereich [0, ...,
2nb – 1]
ab, wobei n die vorgegebene Anzahl an Schlüsselwörtern und b die feste Bitlänge ist.
-
In
einer bevorzugten Variante des erfindungsgemäßen Verfahrens weisen die Schlüsselwörter jeweils
ein oder mehrere Zeichen aus einem vorbestimmten Alphabet auf, wobei
jedes Zeichen eines jeweiligen Schlüsselworts vorzugsweise als
digitale Bitfolge mit einer vorgegebenen Bitzahl codiert wird und
die codierten Zeichen des jeweiligen Schlüsselworts aneinandergereiht
werden, wodurch eine digitale Bitfolge gemäß Schritt a) des erfindungsgemäßen Verfahrens
erzeugt wird. Sollte zur Abbildung auf die Indizes eine flächenfüllende Kurve verwendet
werden, erhält
diese Kurve zum Teil die durch die lexikographische Ordnung des
vorbestimmten Alphabets gegebenen Abstände zwischen den Schlüsselwörtern.
-
In
einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens werden in Schritt
b) mehrere Modifikationen erzeugt und in Schritt c) auf Indizes
abgebildet, wobei in Schritt d) demjenigen Index die Ressource gemäß einer
der Modifikationen zugewiesen wird, der in dem Wertebereich desjenigen Netzknotens
liegt, der gemäß einem
Optimalitätskriterium
der am besten geeignete Netzknoten ist, wobei das Optimalitätskriterium
derart gewählt
ist, dass eine gleichmäßige Lastverteilung
im dezentralen Datennetz erreicht wird. Vorzugsweise wird hierbei
in Schritt d) demjenigen Index die Ressource zugewiesen, der in
dem Wertebereich desjenigen Netzknotens liegt, der die momentan
geringste Last aller oder zumindest eines Teils der sich durch die
mehreren Modifikationen ergebenden Netzknoten aufweist. Der Index,
dem in Schritt d) die Ressource zugewie sen wird, wird somit hierbei
mittels eines Greedy-Algorithmus ermittelt.
-
In
einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens sind die Ressourcen
Daten, insbesondere Datensätze.
Das erfindungsgemäße Verfahren
wird ferner vorzugsweise in einem Peer-to-Peer-Netz, insbesondere
in einem Chord-Ring, eingesetzt. In einer weiteren Variante des
erfindungsgemäßen Verfahrens
werden die Wertebereiche von Indizes, die den Netzknoten zugeordnet
sind, über
eine Hash-Funktion, beispielsweise SHA-1, bestimmt.
-
Neben
dem oben beschriebenen Verfahren betrifft die Erfindung ferner ein
dezentrales Datennetz umfassend eine Mehrzahl von Netzknoten, wobei
jeder Netzknoten für
einen Wertebereich von Indizes zuständig ist und Ressourcen in
dem Datennetz ein oder mehrere Schlüsselwörter zugeordnet sind, wobei
das Datennetz derart ausgestaltet ist, dass die Ressourcen in dem
Datennetz mit einem Verfahren verteilt werden, bei dem:
- a) das oder die Schlüsselwörter einer
jeweiligen Ressource jeweils in eine digitale Bitfolge codiert werden;
- b) eine oder mehrere Modifikationen der digitalen Bitfolge(n)
einer jeweiligen Ressource dadurch erzeugt werden, dass aus der
oder den digitalen Bitfolgen jeweils eine modifizierte Bitfolge
erzeugt wird, wobei in einer modifizierten Bitfolge die Bits an
vorbestimmten Bitstellen der jeweiligen digitalen Bitfolge unabhängig von
dem gemäß der digitalen
Bitfolge codierten Schlüsselwort
durch neue Bits ersetzt werden;
- c) die modifizierte Bitfolge oder die Gesamtheit der modifizierten
Bitfolgen einer jeweiligen digitalen Modifikation derart auf die
Indizes der Wertebereiche der Netzknoten abgebildet wird, dass bei einer
Anfrage eines Netzknotens nach einer Ressource mittels eines oder
mehrerer trunkierter Schlüsselwörter nur
in einem Teil des dezentralen Datennetzes nach Indizes, welche dem
oder den trunkierten Schlüsselwörtern entsprechen,
gesucht werden muss;
- d) die jeweilige Ressource dem Index zugewiesen wird, auf den
die modifizierte Bitfolge oder die Gesamtheit der modifizierten
Bitfolgen der Modifikation oder einer der Modifikationen abgebildet
wird.
-
Das
Datennetz ist dabei derart ausgestaltet, dass jede Variante des
oben beschriebenen erfindungsgemäßen Verfahrens
in dem Datennetz durchführbar
ist. Das Verfahren kann beispielsweise durch einen vorbestimmten
Netzrechner im Datennetz durchgeführt werden. Die Erfindung betrifft
insbesondere auch einen Netzrechner zur Verwendung in dem Datennetz,
wobei der Netzrechner dieser vorbestimmte Netzrechner ist.
-
Die
Erfindung umfasst ferner ein Computerprogrammprodukt mit einem auf
einem maschinenlesbaren Träger
gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn
das Programm auf einem Rechner abläuft.
-
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 der Form eines Chord-Rings, in
dem das erfindungsgemäße Verfahren
durchgeführt
werden kann;
-
2 ein
Diagramm, welches die Verteilung von Ressourcen in einer Ausführungsform
gemäß dem Stand
der Technik wiedergibt; und
-
3 ein
Diagramm, welches die Verteilung von Ressourcen in einer Ausführungsform
des erfindungsgemäßen Verfahrens
wiedergibt.
-
1 zeigt
in schematischer Darstellung ein Peer-to-Peer-Netz in der Form eines Chord-Rings R, wobei
der Ring 18 Netz knoten in der Form von Peers P1, P2, ..., P18 umfasst.
Der Chord-Ring R stellt hierbei ein Overlay-Netz dar, in dem die
einzelnen Peers auf einer ringförmigen
Struktur nacheinander angeordnet sind. Jedem der Peers P1 bis P18
ist hierbei ein entsprechendes Intervall I1, I2, ..., I18 an Indizes zugeordnet,
wobei diese Indexintervalle die Wertbereiche von Indizes im Sinne
der Ansprüche
darstellen. Die Zuweisung der Indexintervalle zu den einzelnen Peers
erfolgt vorzugsweise durch die Anwendung einer Hash-Funktion, beispielsweise
mit der hinlänglich
aus dem Stand der Technik bekannten SHA-1-Funktion, auf bestimmte Identitätswerte
der Peers, etwa ihre IP-Adressen. Hierbei wird das Gesamtintervall
der möglichen
Indizes durch den Umfang des Rings R repräsentiert und jedem Peer wird mit
der Hash-Funktion ein Index auf dem Ring zugeordnet. Ein jeweiliger
Peer ist dann für
das Intervall der Indizes zuständig,
welches sich vom Indexwert des Peers mit der nächst niedrigen Nummer bis zu seinem
eigenen Indexwert erstreckt. Die Hash-Funktion ist dabei lokalitätszerstörend, d.
h. es besteht kein Zusammenhang zwischen der Struktur des Identitätswerts
des Peers und dem dadurch erzeugten Index auf dem Ring R. Auf diese
Weise wird eine gleichmäßige Verteilung
der Peers auf dem Ring gewährleistet.
-
In
dem Netz der 1 sind eine Vielzahl von Ressourcen
unter den Peers verteilt, wobei die Ressourcen beispielsweise Datenelemente
bzw. Datensätze
sind. Die Ressourcen können
dabei beliebige Arten von Datenelementen sein, beispielsweise Multimedia-Dateien
oder Einträge
in Telefonbüchern.
Um es den Peers zu ermöglichen,
nach Ressourcen in dem Peer-to-Peer-Netz zu suchen, sind jeder Ressource
ein oder mehrere Schlüsselwörter zugeordnet,
nach denen durch Abfragen in der Form sog. Lookups gesucht werden
kann.
-
Um
eine Ressource in dem Netz der 1 zu veröffentlichen,
muss einem Index auf dem Ring R die Ressource zugeordnet werden.
Der Peer, der für den
Wertebereich zuständig
ist, in dem der Index liegt, dem die Ressource zugeordnet ist, ist
dann für diese
Ressource zuständig.
Insbesondere wird die Ressour ce auf diesem Peer gespeichert. Die
Zuordnung der Ressource zu einem Index erfolgt in dem nachfolgend
beschriebenen erfindungsgemäßen Verfahren über eine
Codierung des entsprechenden Schlüsselworts bzw. der Schlüsselwörter der
Ressource in digitale Bitfolgen. Die Bitfolgen werden anschließend modifiziert,
indem ab einer vorgegebenen Bitstelle die Bits der jeweiligen Bitfolge
durch zufällig gewählte Bits
ersetzt werden. Anschließend
erfolgt mit einer lokalitätserhaltenden,
flächenfüllenden
Kurve eine Abbildung der modifizierten Bitfolgen auf einen Index.
In 1 ist beispielhaft auf dem Ring R ein Index zwischen
Peer P1 und P2 markiert, wobei diesem Index eine Ressource mit einem
einzelnen Schlüsselwort
S sowie die entsprechende digitale Bitfolge B und modifizierte Bitfolge
B' zugeordnet sind.
-
Die
Schlüsselwörter S sind
durch eine Vielzahl von Zeichen gemäß einem vorbestimmten Alphabet,
insbesondere dem lateinischen Alphabet, gegeben. Die lokalitätserhaltende
Kurve erhält
hierbei zum Teil die durch die lexikographische Ordnung des vorbestimmten
Alphabets gegebenen Abstände zwischen
den Schlüsselwörtern. Dies
führt in
herkömmlichen
Verfahren, in denen keine zufällige
Ersetzung von Bits der codierten Bitfolgen B erfolgt, dazu, dass
häufig
gesuchte, ähnliche
Schlüsselwörter, beispielsweise
bei der Suche nach häufig
verwendeten, ähnlichen
Nachnamen in einem Telefonbuch, im Wesentlichen immer dem oder den
gleichen Peers zugewiesen werden, was zu einer ungleichmäßigen Lastverteilung
führt.
Die Verfahren nach dem Stand der Technik haben jedoch den Vorteil,
dass durch die Lokalitätserhaltung
eine schnelle Wildcard-Suche nach trunkierten Schlüsselwörtern mit
wenig Netzverkehr ermöglicht
wird, da durch die Lokalitätserhaltung
eine trunkierte Suche auf eine bestimmte Anzahl an Peers bereits
vorab eingeschränkt
wird.
-
Um
gemäß einer
Ausführungsform
der Erfindung zum einen eine gleichmäßige Lastverteilung und zum
anderen auch eine Wildcard-Suche zu ermöglichen, wird ein gewisser
Anteil einer codierten Bitfolge des Schlüsselworts durch zufällige Bits
er setzt. Hierdurch wird eine gleichmäßige Verteilung der Schlüsselwörter erreicht,
wobei jedoch weiterhin die Möglichkeit
einer Wildcard-Suche in Teilbereichen des Netzes gewährleistet
wird. Je größer hierbei
die Anzahl an zufällig
gewählten
Bits ist, desto gleichmäßiger ist
die Lastverteilung, jedoch geht dies auf Kosten der Schnelligkeit
der Wildcard-Suche. Durch
das erfindungsgemäße Verfahren
wird somit ein Ausgleich zwischen einer gleichmäßigen Verteilung der Ressourcen
und einer schnellen Wildcard-Suche geschaffen.
-
Nachfolgend
wird eine Ausführungsform
eines Verfahrens zur Verteilung von Ressourcen gemäß dem Stand
der Technik mit einer Ausführungsform
gemäß der Erfindung
verglichen.
-
Gemäß dem nachfolgend
betrachteten Veröffentlichungsprozess
nach dem Stand der Technik wird eine Ressource durch ein Schlüsselwort-Tupel mit
n Schlüsselwörtern beschrieben,
wobei alle Schlüsselwörter aus
Strings bestehen, welche aus Unicode-Zeichen gebildet sind. Für die Zuweisung der
Schlüsselwörter zu
Indizes auf einem Chord-Ring werden lokalitätserhaltende Hilbert-Kurven
der Ordnung m = ceil(160/n) verwendet, welche eine Funktion h: [0,
2m–1]n → [0,
2mn – 1]
definieren. Diese Funktion ist das Inverse der Funktion, welche
durch die Hilbert-Kurve gegeben ist. Die Zahl 160 resultiert daher, dass
in der hier beschriebenen Ausführungsform
die Standard SHA-1 Hash-Funktion verwendet wird, welche 160-Bit-Indizes
zur Ermittlung der Position eines Peers auf dem Ring verwendet.
Die Funktion ceil(x) entspricht hierbei der kleinsten ganzen Zahl,
die größer oder
gleich x ist.
-
In
dem Verfahren nach dem Stand der Technik wird jedes Zeichen eines
Schlüsselworts
in fünf Bits
codiert, indem die letzten fünf
Bits des Unicode-Werts des Zeichens verwendet werden. Diese Bitsequenzen
für alle
Zeichen des Schlüsselworts werden
dann aneinander gehängt
und auf m Bits trunkiert bzw. mit Nullen aufgefüllt, um exakt m Bits zu erhalten.
Durch die Codierung von jedem Schlüsselwort eines Schlüsselwort-Tupels
auf die oben beschriebene Art und Weise und durch die Anwendung der
lokalitätserhaltenden
Funktion h auf das Tupel der resultierenden Bitsequenzen mit jeweils
m Bits, wird ein Schlüsselwort-Tupel
auf eine Zahl mit mit Bits abgebildet. Durch die Trunkierung dieser
Zahl auf 160 Bits, sofern mit > 160,
wird eine Abbildung der Bitsequenz-Tupel direkt auf einen Index
des Rings erreicht. Die Ressource wird schließlich demjenigen Peer zugewiesen,
der für
den Wertebereich zuständig
ist, in welchem der entsprechende Index liegt.
-
Das
oben beschriebene Verfahren nach dem Stand der Technik wurde von
den Erfindern für
Daten aus einem Telefonbuch getestet. Es wurden hierbei 32.000 Telefonbucheinträge als Testdatensatz
verwendet, wobei diese 32.000 Einträge auf ein Peer-to-Peer-Netz
mit ebenfalls 32.000 Peers verteilt wurden. Die Peer-Indizes wurden
hierbei äquidistant verteilt,
so dass die Peers für
gleichgroße
Wertebereiche der Indizes zuständig
sind. Als Schlüsselwort-Tupel
wurden hierbei der Nachname und der Vorname einer im Telefonbuch
eingetragenen Person betrachtet. 2 zeigt
die Verteilung der Telefonbucheinträge auf die 32.000 Peers gemäß dem oben
dargelegten Verfahren nach dem Stand der Technik. In dem Diagramm
der 2 sind hierbei entlang der Abszisse die Nummern
P der Peers aufgetragen, und die Ordinate gibt die Anzahl E der
Telefonbucheinträge
für jeden
Peer wieder. Man erkennt, dass Peers vorhanden sind, welche für eine große Anzahl
an Einträgen
zuständig
sind, insbesondere existiert bei einem Peer mit einer Nummer zwischen
27.000 und 28.000 das Maximum von 306 Einträgen. Dies liegt daran, dass
in der Verteilung der Schlüsselwörter auf
die Indizes die flächenfüllende Hilbert-Kurve
zum Teil durch die lexikographische Ordnung des vorbestimmten Alphabets
gegebenen Abstände
zwischen den Schlüsselwörtern erhält, was dazu
führt,
dass sehr häufig
verwendete Namen, wie z. B. „Müller" oder „Schmitt", immer den gleichen Peers
zugewiesen werden.
-
Gemäß der nachfolgend
beschriebenen Ausführungsform
des erfindungsgemäßen Verfahrens
werden nunmehr die ursprünglich erzeugten Bitsequenzen
aus m Bits derart modifiziert, dass ab einer bestimmten Bitstelle
die Bits durch zufällig
gewählte
Bits ersetzt werden, wobei die modifizierte Bitfolge anschließend durch
die Hilbert-Kurve auf den Index analog zum obigen Verfahren abgebildet
wird. Der Abschnitt, der durch solche zufälligen Bits ersetzt wird, kann
dabei einer Anzahl von vollständigen
Zeichen entsprechen, es kann jedoch auch eine beliebige Bitstelle
ohne Berücksichtigung
der Zeichenlänge gewählt werden.
Auf diese Weise wird der lokalitätserhaltende
Effekt der Hilbert-Kurve abgeschwächt und die Ressourcen, d.
h. die Telefonbucheinträge, verteilen
sich über
einen größeren Bereich
auf den Chord-Ring, so dass eine bessere Lastverteilung erreicht
wird.
-
3 zeigt
in analoger Darstellung zu 2 die Verteilung
der 32.000 Telefonbucheinträge
E über das
Netz aus 32.000 Peers gemäß einer
Ausführungsform
der Erfindung. Es wurden hierbei die letzten fünf Bits der Bitfolge des Nachnamens
und des Vornamens durch zufällig
gewählte
Bits ersetzt. Es ergibt sich eine im Wesentlichen gleichmäßige Lastverteilung,
wobei das Maximum der Einträge,
für welche
ein Peer zuständig
ist, nunmehr lediglich bei 28 liegt.
-
Das
oben beschriebene erfindungsgemäße Verfahren
kann derart erweitert werden, dass anstelle der zufälligen Wahl
der Bits auch alle möglichen Kombinationen
von durch Variation der zu ersetzenden Bits erzeugbaren modifizierten
Bitfolgen bei der Veröffentlichung
der Ressourcen bestimmt werden, wobei für jede Kombination mit der
flächenfüllenden Kurve
der entsprechende Index auf den Ring und somit der zuständige Peer
ermittelt wird. Schließlich wird
diejenige Kombination von modifizierten Bitfolgen zur Veröffentlichung
der Ressourcen verwendet, welche zu einer Minimierung der Anzahl
an Ressourcen führt,
die momentan auf den Peers gespeichert sind. Dieser Ansatz kann
als ein Online-Optimierungs-Problem angesehen werden, da die Ressourcen
nur teilweise bekannt sind, wenn die Optimierung stattfindet, wobei
dieses Problem durch einen einfachen Greedy-Algorithmus gelöst werden
kann. In einer weiteren Variante besteht die Möglichkeit, dass nicht alle
möglichen
Kombinationen von erzeugbaren modifizierten Bitfolgen betrachtet
werden, sondern lediglich eine vorbestimmte Anzahl an Kombinationen,
wobei jede Kombination immer zufällig
erzeugt wird. Auf diese Weise wird der Netzverkehr im Vergleich
zu der zuvor beschriebenen Variante vermindert.
-
Literaturverzeichnis
-
- [1] Cristina Schmidt and Manish Parashar. Enabling flexible
queries with guarantees in p2p systems. IEEE. Internet Computing,
8(3): 19–26,
2004
- [2] Cristina Schmidt and Manish Parashar. Flexible Information
Discovery in Decentralized Distributed Systems. In Proceedings of
The Twelfth IEEE International Symposium an High Performance Distributed
Computing (HPDC-12), June 2003, 226–235.