-
Die Erfindung betrifft ein Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten gemäß dem Anspruch 1. Die Erfindung betrifft ferner ein Computersystem mit Programmcodemitteln, die zur Ausführung eines solchen Verfahrens eingerichtet sind, gemäß dem Anspruch 9. Die Erfindung betrifft ferner eine Maschine für ein solches Computersystem gemäß dem Anspruch 10.
-
Generell betrifft die Erfindung das Gebiet der Deduplizierung von auf einem Speichermedium gespeicherten Daten, wobei das Verfahren zur Ausführung auf einem Computersystem eingerichtet ist, das aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht. Als Maschine sei hierbei z. B. ein Computer verstanden, z. B. in der Ausführung als Dateiserver.
-
Die grundlegende Technik der Datendeplizierung besteht darin, in neu zu speichernden Dateien bzw. Datenblöcken bereits auf dem Speichermedium vorhandene Datenblöcke zu finden, um diese bei einem erneuten Schreibvorgang nicht erneut abzuspeichern und damit zu duplizieren. Bei der Deduplizierung sollen auch dann Identitäten zwischen Daten erkannt werden, wenn diese nicht den gleichen Namen oder einen komplett identischen Inhalt haben. Dadurch werden deutlich mehr Duplikate erkannt als bei einem reinen Dateivergleich.
-
Ein vollständiger Vergleich einer Datei mit allen bereits vorher auf dem Speichermedium gespeicherten Daten wäre in der Praxis zu aufwendig und würde zu lange dauern. Es gibt daher bereits Vorschläge, jede Datei in Datenblöcke gleicher oder unterschiedlicher Größe aufzuspalten und für jeden dieser Datenblöcke eine eindeutige Signatur zu bestimmen. Die Menge aller bestimmten Signaturen wird als Index bezeichnet. Wird die Signatur eines neu auf dem Speichermedium zu speichernden Datenblocks in dem Index gefunden, so handelt es sich um ein Duplikat und der Datenblock muss nicht noch einmal gespeichert werden.
-
Vorteilhaft wird in einem Deduplizierungssystem ein Garbage Collection-Prozess vorgesehen. Darunter versteht man einen Prozess, bei dem Signaturen, auf die keine Referenz eines gespeicherten Datenblocks mehr verweist und die dadurch überflüssig geworden ist, und ggf. Daten, auf die sich die Signaturen beziehen, aus dem System entfernt.
-
In einem verteilten Deduplizierungssystem ergeben sich hierbei jedoch besondere Konstellationen. Ein verteiltes Deduplizierungssystem ist ein Computersystem, das aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht. Das Computersystem wird z. B. aus einer Gruppe von Maschinen gebildet, die zusammen und/oder arbeitsteilig die Deduplizierungsfunktion ausführen. Hierbei speichert z. B. eine Untermenge der Maschinen jeweils einen Anteil des Indexes. Der Index kann z. B. pseudo-zufällig auf die Maschinen verteilt werden.
-
Aufgrund der Partitionierung des Index auf mehrere Maschinen gibt es keine globale Sicht auf das System bzw. auf den Index. Bisher waren für den Garbage Collection-Prozess in einem verteilten Deduplizierungssystem daher entweder systemweite Prüfpunkte (Checkpoints) vorgesehen, zu denen eine Synchronisation der Maschinen erfolgt, oder das Deduplizierungssystem wurde komplett gestoppt. Beide Verfahren haben Nachteile hinsichtlich der gesamten Verarbeitungsleistung des Computersystems und der Ausführungszeit.
-
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten, das zur Ausführung auf einem Computersystem mit wenigstens zwei separaten, asynchron laufenden Maschinen vorgesehen ist, anzugeben, dass effizienter und schneller abläuft als bekannte Verfahren.
-
Diese Aufgabe wird durch die in den Ansprüchen 1, 9 und 10 gelöst.
-
Vorgeschlagen wird ein Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten, wobei das Verfahren zur Ausführung auf einem Computersystem eingerichtet ist, das aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei die Durchführung der Deduplizierung auf die Maschinen verteilt ausgeführt wird, wobei bei einer Schreib-Anforderung, die die Anforderung aufweist, einen Datenblock auf einem der Speichermedien zu speichern, anhand von in einem Index gespeicherten Signaturen der bereits auf den Speichermedien gespeicherten Datenblöcke geprüft wird, ob der Datenblock der Schreib-Anforderung ein Duplikat eines bereits auf dem Speichermedium gespeicherten Datenblocks ist und bei Erkennung eines Duplikats der Datenblock der Schreib-Anforderung nicht erneut gespeichert wird, sondern eine Referenz auf den bereits gespeicherten Datenblock der zugehörigen Signatur zugeordnet wird, wobei der Index auf die Maschinen in Form lokaler Indices verteilt ist, wobei das Verfahren Schritte aufweist, um nicht mehr benötigte Signaturen zu erkennen und aus den verteilten Indices zu entfernen, wobei die Schritte zum Entfernen nicht mehr benötigter Signaturen während der Laufzeit des Computersystems ohne Schritte zur Synchronisation der Maschinen durchgeführt werden, wobei geprüft wird, ob im Computersystem noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf bereits als nicht mehr benötigt erkannte Signaturen erzeugt werden können.
-
Die Erfindung hat den Vorteil, dass ein verteilter Garbage Collection-Prozess wesentlich effizienter und schneller durchgeführt werden kann, ohne dass das Computersystem mit Prüfpunkten versehen werden muss oder komplett gestoppt werden muss. Das erfindungsgemäße Verfahren erlaubt ein Entfernen nicht mehr benötigter Signaturen und damit verbundener Daten sozusagen „nebenbei” bei laufendem Computersystem, ohne dass unerwünschte Datenverluste auftreten. Auch die Qualität der Deduplizierung, d. h. der Vermeidung der Speicherung doppelter Daten, kann vollständig beibehalten werden.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird für die Erkennung, ob Signaturen nicht mehr benötigt werden, für jede Signatur im jeweiligen Index die Anzahl der dieser Signatur zugeordneten Referenzen geprüft. Es werden solche Signaturen, deren Anzahl von Referenzen gleich Null ist, als nicht mehr benötigte Signaturen erkannt. Dies hat den Vorteil, dass nicht mehr benötigte Signaturen auf einfache Weise schnell erkannt werden können, ohne dass großer Rechenaufwand erforderlich ist.
-
Hierzu kann für jede Signatur im Index die Anzahl der Referenzen, die sich auf diese Signatur beziehen, gezählt werden. Allerdings kann sich die tatsächliche Anzahl an Referenzen auf eine Signatur aufgrund der Parallelverarbeitung auf mehreren Maschinen von der im Index gespeicherten Anzahl unterscheiden.
-
Die tatsächliche Anzahl der Referenzen auf eine Signatur wird nachfolgend als Referenzzahl bezeichnet. Der im Index gespeicherte Wert der Anzahl der Referenzen wird nachfolgend als Verwendungswert bezeichnet.
-
Aufgrund der Partitionierung des Index auf mehrere Maschinen gibt es keine globale Sicht auf das System bzw. auf den Index. Daher kann sich die Referenzzahl von der Verwendungszahl unterscheiden.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung ist vorgesehen, dass für die Erkennung, ob Signaturen nicht mehr benötigt werden, für jede Signatur im jeweiligen Index eine in diesem Index gespeicherte Anzahl der dieser Signatur zugeordneten Referenzen als Verwendungswert bestimmt wird, wobei sich der Verwendungswert von der tatsächlichen Anzahl von Referenzen im gesamten Computersystem, die dieser Signatur zugeordnet sind, unterscheiden kann, wobei geprüft wird, ob der Verwendungswert einer Signatur gleich null ist, und, wenn der Verwendungswert gleich null ist, die Signatur als Löschkandidat markiert wird, und für einen Löschkandidaten zu einem beliebigen Zeitpunkt geprüft wird, ob im Computersystem noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf den Löschkandidaten erzeugt werden können, und sofern keine neuen Referenzen auf den Löschkandidaten erzeugt werden können, der Löschkandidat aus dem jeweiligen Index entfernt wird. Dies hat den Vorteil, dass Signaturen nicht sofort gelöscht werden, sondern zunächst als Löschkandidat behandelt werden und nur dann, wenn systemweit geklärt ist, ob die Signatur nicht mehr benötigt ist, diese aus dem jeweiligen Index entfernt wird.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung ist vorgesehen, dass für die Prüfung, ob im Computersystem noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf einen Löschkandidaten erzeugt werden können, auf jeder Maschine Überwachungszeiträume in Form von Episoden gestartet werden, wobei pro Episode für jeden Löschkandidaten ein Suchfilter ausgeführt wird, wobei einem Suchfilter alle Signaturen hinzugefügt werden, die durch Schreib-Anforderungen verändert wurden, wobei für jeden Löschkandidaten alle Suchfilter jeder Episode auf jeder Maschine geprüft werden, ob eine als Löschkandidat markierte Signatur in einem der Suchfilter existiert, und wenn dies nicht der Fall ist, der Löschkandidat aus dem jeweiligen Index entfernt wird. Dies hat den Vorteil, dass durch die Einführung von Episoden eine Art flexible Synchronisation des verteilten Garbage Collection-Prozesses realisiert werden kann, ohne die Maschinen des Computersystems starr miteinander zu synchronisieren oder stoppen zu müssen.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung ist vorgesehen, dass eine Episode deaktiviert wird, wenn alle Schreib-Anforderungen der Maschine aus dieser Episode geprüft wurden. Gemäß einer weiteren vorteilhaften Weiterbildung ist vorgesehen, dass eine Episode auf jeder Maschine asynchron zu anderen Maschinen gestartet wird, z. B. mit einem vorgegebenen Zeittakt. Dies erlaubt eine hohe Flexibilität beim Starten und Deaktivieren von Episoden, die insbesondere keine Synchronisation zwischen den Maschinen des Computersystems erfordert. Es kann eine Mehrzahl von Episoden je nach den entsprechenden Anforderungen des Systems parallel ablaufen.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung sind eines, mehrere oder alle Suchfilter als Bloom-Filter und/oder als Mengendatenstrukturimplementierung ausgebildet. Dies erlaubt eine hoch effiziente Durchführung der Suche durch das Suchfilter, d. h. eine schnelle Detektierung von Löschkandidaten, die aus dem jeweiligen Index zu entfernen sind, mit wenig Rechenaufwand. Als Mengendatenstrukturimplementierung kann z. B. ein Hashing-Algorithmus oder ein Verfahren mit balancierten Bäumen verwendet werden. Vorteilhaft ist insbesondere die Verwendung von Bloom-Filtern, wie beschrieben in der Veröffentlichung von B. H. Bloom, Space/time trade-offs in hashing coding with allowable errors. Communications of the ACM, 13(7): Seiten 422–426, 1970. Bloom-Filter haben die Eigenschaft, eine sehr kompakte Darstellung mit einer sehr geringen Wahrscheinlichkeit von Fehldetektionen (sog. false positives) zu liefern. Allerdings können auch solche Fehldetektionen nicht das Löschen einer nicht mehr verwendeten Signatur verhindern, sondern höchstens etwas verzögern.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung werden Datenblöcke, auf die sich nicht mehr benötigte Signaturen beziehen, vom Speichermedium entfernt. Dies hat den Vorteil, dass in größtmöglichem Umfang belegter Speicherplatz auf dem Speichermedium wieder freigegeben werden kann.
-
Die Erfindung betrifft außerdem ein Computersystem, das aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei das Computersystem Programmcodemittel aufweist, die zur Ausführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet sind.
-
Ferner betrifft die Erfindung eine Maschine für ein Computersystem, dass aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei die Maschine Programmcodemittel aufweist, die zur Ausführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet sind.
-
Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Verwendung von Zeichnungen näher erläutert.
-
Es zeigen
-
1 einen deduplizierenden Dateiserver und
-
2 ein Computersystem mit zwei Maschinen und
-
3 einen Episoden-Zeitablauf der zwei Maschinen und
-
4 einen beispielhaften Garbage Collection-Prozess auf einer Maschine.
-
Die 1 zeigt den logischen Aufbau eines deduplizierenden Dateiservers unter Verwendung eines Metadaten-Erkennungsmoduls. Der Dateiserver ist dabei hinsichtlich seiner logischen Funktion dargestellt, die durch Hardwarekomponenten und diese Hardwarekomponenten verwaltende Softwarekomponenten realisiert ist. Die beschriebenen Schnittstellen sind logische Schnittstellen, die softwaremäßig realisiert sind.
-
Ein Dateiserver 2 weist eine Dateischnittstelle 1 auf, die die Verbindung mit anderen Systemen, wie z. B. Client-Computern, herstellt. Die Dateischnittstelle 1 kann z. B. eine NFS- oder CIFS-Schnittstelle oder eine ähnliche Schnittstelle sein. Über die Dateischnittstelle 1 empfängt der Dateiserver 2 Anforderungen, Dateien bzw. Datenblöcke auf einem Speichermedium zu speichern. Über die Dateischnittstelle 1 werden zudem vom Speichermedium gelesene Daten von dem Dateiserver 2 an andere angeschlossene Einrichtungen zurück übertragen. Der Dateiserver 2 weist ein Dateiserver-Frontendmodul 3 auf, das über die Dateischnittstelle 1 eingehende Anforderungen bearbeitet. Dem Dateiserver-Frontendmodul 3 ist ein Dateiserver-Dateisystem 4 nachgeordnet. Als Dateisystem 4 sind z. B. EXT3 oder BTRFS vorteilhaft verwendbar.
-
Dem Dateiserver-Dateisystem 4 ist ein Deduplizierungsmodul 6 nachgeordnet, das über eine Blockschnittstelle 5 mit dem Dateiserver-Dateisystem 4 in Verbindung steht. Dem Deduplizierungsmodul 6 ist, verbunden über eine Blockschnittstelle 7, ein Blockgerät 8 nachgeordnet. Das Blockgerät 8 ist ein logisches Blockgerät, das physikalisch z. B. bestimmte Bereiche eines Speichermediums sein können, z. B. Bereiche einer Festplatte oder einer Partition einer Festplatte. Möglich ist auch, dass anstelle eines nachgeschalteten Blockgerätes der Zugriff auf das Speichermedium über eine Dateisystem-Schnittstelle realisiert wird. Die Blockschnittstellen 5, 7 können z. B. SCSI-, ATA-, NFS- oder CIFS- Schnittstellen oder ähnliche Schnittstellen sein. Ebenso kann die Dateischnittstelle 1 als Blockgerät-Schnittstelle ausgebildet sein.
-
In dem Deduplizierungsmodul 6 wird eine Deduplizierung nach einem der eingangs beschriebenen Verfahren durchgeführt. Nach der Deduplizierung werden über die Blockschnittstelle 7 entweder die Daten des zu speichernden Datenblocks oder ein Zeiger, der auf einen schon gespeicherten Datenblock mit identischem Inhalt verweist, an das Blockgerät 8 abgegeben und dort gespeichert.
-
Der anhand der 1 beispielhaft beschriebene Dateiserver 2 ist optional. In der Praxis sind sowohl Installationen mit einem solchen Dateiserver 2 als auch ohne diesen Dateiserver realisierbar. Im letztgenannten Fall ist es z. B. möglich, dass sich ein Client über die Blockschnittstelle 5 direkt mit dem Deduplizierungsmodul 6 verbindet. Ebenso ist es möglich, dass das in der 1 angegebene Dateiserver-Dateisystem 4 direkt Daten von einem Client, d. h. von angeschlossenen Einrichtungen, empfängt und verarbeitet.
-
Statt des Blockgeräts 8 in 1 kann auch ein Dateisystem vorgesehen sein.
-
Gemäß 2 weist ein Computersystem 100 eine Eingangsschnittstelle 101 auf, über die dem Computersystem 100 auf einem Speichermedium zu speichernde Daten in Form von Schreib-Anforderungen übersandt werden. Die an der Eingangsschnittstelle 101 empfangenen Schreib-Anforderungen werden einem Speicherklienten 102 zugeführt, in dem diese vorverarbeitet werden und über Datenpfade 103, 104 einer entsprechend für die Speicherung der Daten vorgesehenen Maschine 10, 20 zugeführt werden. Der Speicherklient 101 kann z. B. als Block-Device-Layer, als Dateisystem oder als OSD (Object Storage Device – Objektspeichergerät) eines Computersystems ausgebildet sein.
-
Die Maschinen 10, 20 können grundsätzlich gleichartig ausgebildet sein, was im nachfolgenden Beispiel angenommen sei. Unter gleichzeitiger Bezugnahme auf beide Maschinen 10, 20 werden daher nachfolgend deren einzelne Funktionen beschrieben. Eingangsseitig weist eine Maschine 10, 20 ein Request-Verarbeitungsmodul 11, 21 auf, das dazu dient, eingehende Anforderungen zum Speichern von Daten auf dem Speichermedium weiter zu verarbeiten. Die Request-Verarbeitungsmodule 11, 21 können z. B. als deduplizierende Dateiserver gemäß 1 ausgebildet sein. Das Request-Verarbeitungsmodul 11, 21 kommuniziert mit einem pysikalisch in einem persistenten Speicher vorgehenen Speichermodul 12, 22 und einer jeweiligen Partition 13, 23 des Indexes der Signaturen, die ebenfalls in einem persistenten Speicher vorgesehen ist. Als persistenter Speicher kommen alle nicht flüchtigen Speichermedien in Frage, wie z. B. eine Festplatte oder ein SSD (Solid State Drive – Halbleiterlaufwerk). Die jeweilige Partition 13, 23 gibt Daten an einen maschinenlokalen Episoden-Bloom-Filter 14, 24 ab. Die Episoden-Bloom-Filter 14, 24 können vorteilhaft in einem flüchtigen Speicher vorgesehen werden, z. B. einem DRAM.
-
Hierbei kann auch das Request-Verarbeitungsmodul 11 der Maschine 10 auch mit der Partition 23 des Index in der Maschine 20 und umgekehrt kommunizieren.
-
Es sei darauf hingewiesen, dass die konkrete Realisierung des Computersystems 100 gemäß 2 in diversen unterschiedlichen Varianten möglich ist. So kann eine Maschine 10, 20 bzw. Teile davon z. B. als Blockgerät oder als integrierte Dateisystemschicht ausgebildet sein.
-
Im Beispiel gemäß 2 hat jede Maschine 10, 20 eine Partition des Signatur-Indexes und ein Request-Verarbeitungsmodul 11, 21. Alternativ kann auch vorgesehen sein, dass nur eine Teilmenge der Maschinen eine Partition des Signaturindexes aufweist. Maschinen ohne eine Partition des Signaturindex weisen natürlich ebenfalls einen Speicher für maschinenlokale Schreib-Anforderungen entsprechend den Speichermodulen 12, 22 auf. Ebenfalls kann vorgesehen sein, dass eine Maschine kein Request-Verarbeitungsmodul aufweist, aber eine Partition des Signatur-Index und/oder ein maschinenlokales Episoden-Bloom-Filter.
-
Die 3 zeigt jeweils über die Zeit t aufgetragene Abläufe von Schreib-Anforderungen und zur Prüfung der Schreib-Anforderungen vorgesehenen Episoden für die Maschinen 10, 20. Gemäß 2a ist der Zeitablauf für die Maschine 10 dargestellt, gemäß 2b für die Maschine 20. Beispielhaft dargestellt sind für die Maschine 10 Episoden 30, 31, 32, 33, und für die Maschine 20 Episoden 34, 35, 36, 37. Der bei jeder Episode E angegebene Index i, i-1, i-2 bzw. i-3 gibt die Reihenfolge der Episoden wieder, wobei die Episode mit dem Index i die aktuelle Episode ist und die Episoden mit den Indices i-1, i-2 und i-3 jeweilige Vorgängerepisoden sind. Der Pfeil 38 symbolisiert aktuelle Schreib-Anforderungen zum Speichern von Daten auf dem Speichermedium. Die aktuellen Schreib-Anforderungen gemäß Pfeil 38 werden dem jeweiligen Bloom-Filter der jeweils neusten Episode i auf der jeweiligen Maschine 10, 20 zugeführt. Die Episoden i, i-1 und i-2 weisen noch auszuführende Schreib-Anforderungen auf, die noch nicht vollständig verarbeitet sind. Durch die Zeitmarke t1 wird der Verarbeitungsstand der Schreib-Anforderungen auf der Maschine 10 dargestellt, durch die Zeitmarke t2 der Verarbeitungszustand auf der Maschine 20. Wie erkennbar ist, können die Episoden i, i-1 und i-2 noch nicht deaktiviert werden, da noch nicht alle möglichen Änderungen an der Referenzzahl im Verwendungswert berücksichtigt wurden. Es kann daher Situationen geben, in denen die aktuelle Referenzzahl größer als Null ist, der Verwendungswert aber den Wert Null aufweist.
-
Für die Episode i-3 gilt für beide Maschinen 10, 20, dass alle Schreibanforderungen verarbeitet sind. Daher kann die Episode i-3 auf beiden Maschinen 10, 20 deaktiviert werden. Es sind hier bereits alle Änderungen an der Referenz zahl, die aufgrund von Schreib-Anforderungen in der Episode i-3 entstanden sind, im Verwendungswert berücksichtigt worden.
-
Das erfindungsgemäße Verfahren kann daher z. B. wie folgt implementiert werden.
-
Grundsätzlich werden durch Schreibvorgänge die Datenblöcke des Deduplizierungssystems verändert. Daher verändert sich in der Regel auch die Referenzzahl von verschiedenen Signaturen. Vorteilhaft wird bei dem hier vorgeschlagenen Verfahren vermieden, den Verwendungswert direkt zu verändern. Hierdurch kann eine dafür notwendige, relativ aufwendige Netzwerkkommunikation sowie persistente I/O-Operationen vermieden werden. Stattdessen werden die Verwendungswerte in einem Hintergrundprozess gebündelt aktualisiert, in dem alle Schreibvorgänge gesichtet werden. Alle zu sichtenden Schreibvorgänge werden in einer Warteschlange pro Maschine 10, 20 vorgehalten.
-
Wenn der Verwendungswert einer Signatur Null ist, wird die Signatur als Löschkandidat markiert. Aufgrund der Eigenschaft, dass die Referenzzahl nicht ständig mit dem Verwendungswert übereinstimmt, muss vor dem Löschen sichergestellt werden, dass der Verwendungswert mit der Referenzzahl übereinstimmt.
-
Bei bekannten Verfahren wäre hierfür das gesamte verteilte System zu einem bestimmten Zeitpunkt einzufrieren, so dass ohne nebenläufige Schreib-Anforderungen diese Bedingung geprüft werden kann (sog. Stop-the-World).
-
Stattdessen wird gemäß dem hier vorgeschlagenen Verfahren für einen Löschkandidaten zu einem beliebigen Zeitpunkt geprüft, ob es irgendwo im System noch nicht verarbeitete Schreib-Anforderungen gibt, durch die neue Referenzen auf die Signatur erzeugt werden.
-
Dazu wird die Zeit in die anhand der 3 erläuterten Episoden unterteilt. Jede Maschine 10, 20 verwaltet pro Episode, die für ein bestimmtes Zeitintervall gilt, einen Bloom-Filter, dem alle Signaturen hinzugefügt werden, die durch Schreibvorgänge verändert wurden.
-
Wenn bei einer Prüfung der Verwendungswert größer als Null ist, wurden nach Markierung der Signatur als Löschkandidat neue Referenzen auf diese Signatur erstellt, und die Signatur darf nicht gelöscht werden.
-
Wenn bei einer Prüfung der Verwendungswert Null ist, werden alle Episoden-Bloom-Filter der Maschine, der die Signatur zugeordnet wurde, geprüft, ob die Signatur in der Bloom-Filter-Menge existiert. Wenn die Prüfung fehlschlägt, kann mit Sicherheit gesagt werden, dass die Signatur keine neuen, noch nicht verarbeiteten Referenzen hat, und sie kann gelöscht werden. Wenn die Prüfung positiv ist, dann gibt es entweder neue Referenzen oder mit einer geringen Wahrscheinlichkeit eine Fehldetektion. Daher kann noch keine Entscheidung getroffen werden, und die Prüfung des Löschkandidaten wird für einen späteren Zeitpunkt zur Wiederholung markiert. Eine Fehldetektion verzögert die Garbage Collection dieser Signatur für einige Zeit, aber sie wird in der Zukunft durchgeführt werden (Wiedervorlage/Recheck).
-
Alle durch neue Schreib-Anforderungen betroffenen Signaturen, deren zugeordneter Index auf einer bestimmten Maschine liegt, werden dem Bloom-Filter der aktuellen Episode auf dieser Maschine hinzugefügt.
-
Eine Episode wird deaktiviert, wenn alle Schreib-Anforderungen der Maschine aus der Episode gesichtet wurden.
-
Der Teilprozess der Untersuchung von Löschkandidaten sei nachfolgend anhand des in 4 dargestellten Flussdiagramms näher erläutert. Die 4 zeigt die Durchführung des Teilprozesses auf einer Maschine 10 oder 20. Das Verfahren beginnt mit einem Block 40. Sodann wird in einem Verzweigungsblock 41 geprüft, ob der Verwendungswert einer Signatur den Wert Null aufweist. Wenn dies nicht der Fall ist, wird eine ggf. vorliegende Wiedervorlage-Markierung für die Signatur in einem Block 42 gelöscht und der Teilprozess für diese Signatur in einem Block 46 gestoppt. Es erfolgt dann ggf. eine neue Durchführung des Teilprozesses gemäß 4 für eine weitere Signatur des Index.
-
Sofern im Verzweigungsblock 41 festgestellt wird, dass der Verwendungswert der Signatur gleich Null ist, wird zu einem Verzweigungsblock 43 verzweigt. Dort erfolgt eine Prüfung einer lokalen Bloom-Filter. Sofern hierbei festgestellt wird, dass eine Signatur nicht in einem Bloom-Filter vorhanden ist, wird zu einem Block 45 verzweigt. Dort wird die Signatur und die damit verbundenen Daten gelöscht. Schließlich stoppt der Teilprozess in dem Block 46.
-
Sofern im Verzweigungsblock 43 nicht festgestellt wird, dass die Signatur nicht in einem Bloom-Filter vorhanden ist, wird zu einem Block 44 verzweigt. Dies kann entweder dadurch hervorgerufen werden, dass eine Signatur durch eine noch nicht verarbeitete Schreib-Anforderung referenziert wird, oder durch eine Fehldetektion des Bloom-Filters. In dem Block 44 wird die Signatur zur Wiedervorlage in einer späteren Episode markiert. In einer späteren Episode wird die zur Wiedervorlage markierte Signatur dann gemäß dem Teilprozess von 4 behandelt. Schließlich stoppt der Teilprozess in dem Block 46.
-
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 Nicht-Patentliteratur
-
- B. H. Bloom, Space/time trade-offs in hashing coding with allowable errors. Communications of the ACM, 13(7): Seiten 422–426, 1970. [0019]