DE112012005037B4 - Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds - Google Patents

Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds Download PDF

Info

Publication number
DE112012005037B4
DE112012005037B4 DE112012005037.1T DE112012005037T DE112012005037B4 DE 112012005037 B4 DE112012005037 B4 DE 112012005037B4 DE 112012005037 T DE112012005037 T DE 112012005037T DE 112012005037 B4 DE112012005037 B4 DE 112012005037B4
Authority
DE
Germany
Prior art keywords
file
expiration date
files
master copy
computer
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.)
Active
Application number
DE112012005037.1T
Other languages
English (en)
Other versions
DE112012005037T5 (de
Inventor
Gaurav Chhaunker
Bhushan Pradip Jain
Sandeep Ramesh Patil
Sri Ramanathan
Matthew B. TREVATHAN
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012005037T5 publication Critical patent/DE112012005037T5/de
Application granted granted Critical
Publication of DE112012005037B4 publication Critical patent/DE112012005037B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

Verfahren zum Deduplizieren von Dateien, das in einer Computer-Infrastruktur implementiert ist, die eine Kombination von Hardware und Software aufweist, wobei das Verfahren aufweist:Empfangen einer Anforderung zum Speichern einer ersten Datei als unveränderliche Datei;Suchen nach einer zweiten Datei, die gespeichert und in Bezug auf die erste Datei redundant ist;Ermitteln, ob die zweite Datei veränderlich oder unveränderlich ist;Speichern der ersten Datei als Masterkopie, wenn die zweite Datei veränderlich ist, und Ersetzen der zweiten Datei durch einen bedingten Link, der auf die Masterkopie verweist; undErmitteln, welche Datei der ersten und zweiten Datei einen späteren Ablauftermin und welche Datei einen früheren Ablauftermin aufweist, wenn die zweite Datei unveränderlich ist, Speichern der einen Datei der ersten und zweiten Datei mit dem späteren Ablauftermin als Masterkopie und Ersetzen der einen Datei der ersten und zweiten Datei mit dem früheren Ablauftermin durch einen bedingten Link, der auf die Masterkopie verweist,.wobei der bedingte Link Daten enthält, die den früheren Ablauftermin definieren,die zweite Datei einen früheren Ablauftermin aufweist; unddas Ersetzen ein Löschen einer gespeicherten Kopie der zweiten Datei aufweist.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein Cloud-Computing und insbesondere Verfahren und Systeme zum Verwalten von redundanten, unveränderlichen Dateien unter Verwendung von Deduplizierungstechniken in Speicher-Clouds.
  • Hintergrund
  • Die Informationstechnologie verändert sich rasant und bildet jetzt eine unsichtbare Sphäre, die in zunehmendem Maße nahezu jeden Aspekt der Geschäftswelt und des Alltagslebens berührt. Ein neueres Computermodell unter der Bezeichnung Cloud-Computing geht auf die explosive Zunahme mit dem Internet verbundener Einheiten ein und stellt eine Ergänzung der zunehmenden Technologisierung in der modernen Welt dar. Cloud-Computing ist ein Servicemodell, um auf Anforderung einen komfortablen Netzwerkzugriff auf einen gemeinsam genutzten Pool konfigurierbarer Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitungseinheiten, Arbeitsspeicher, Massenspeicher, Anwendungen, virtuelle Maschinen und Dienste) anzubieten, die mit geringem Verwaltungsaufwand oder geringem Zusammenwirken mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können.
  • Cloud-Computing ist außerordentlich skalierbar, stellt eine exzellente Benutzererfahrung bereit und ist durch ein neues, Intemet-gestütztes Geschäftsmodell gekennzeichnet. Ein Aspekt des Cloud-Computing besteht darin, dass Speichern und das Verarbeiten von Unternehmensdaten innerhalb einer Cloud bereitgestellt werden, bei der es sich um ein Geflecht miteinander verbundener Rechenzentren, Datenverarbeitungseinheiten und Speichersysteme handelt, die weltweit verteilt sind.
  • Mit dem Aufkommen des Cloud-Computing sind Konzepte wie Speicher-Clouds entstanden. Bei den Speicher-Clouds handelt es sich um ein riesiges Speichernetzwerk, das durch die Benutzer gemeinsam genutzt werden kann, ohne dass der Benutzer sich um die Speicherinfrastruktur zu kümmern braucht. Der Anbieter einer Speicher-Cloud verfügt für gewöhnlich über ein einziges großes Speichervolumen und bewahrt Daten von allen seinen Kunden an ein und demselben Ort auf, was zu dem Konzept der Multi-Tenant-Funktionalität und einer Multi-Tenant-Umgebung führt. Üblicherweise wird dieses Speichervolumen durch die gesamte Kundschaft auf dieser Cloud gemeinsam genutzt.
  • Datendeduplizierung weist Prozesse zum Entfernen redundanter Daten auf. In einem Deduplizierungsprozess werden doppelt vorkommende Daten gelöscht, sodass nur noch ein Exemplar der zu speichernden Daten übrig bleibt. In bestimmten Fällen werden alle Daten weiterhin indexiert, falls diese Daten noch einmal benötigt werden sollten. Durch Deduplizierung kann die tatsächlich genutzte Speicherkapazität verringert werden, da nur einmal vorkommende Daten gespeichert werden. Datendeduplizierung kann generell auf Dateiebene oder auf Datenblockebene durchgeführt werden. Durch Deduplizierung auf Dateiebene werden doppelt vorkommende Dateien entfernt, jedoch stellt dies kein sehr wirksames Deduplizierungsmittel dar. Bei Blockdeduplizierung wird eine Datei durchsucht, und nur einmalige Vorkommen jedes Blocks oder Bits werden gespeichert. Jeder Datenblock wird unter Verwendung eines Hash-Algorithmus wie beispielsweise MD5 (Message-Digest Algorithm) oder SHA-1 (secure hash algorithm) verarbeitet. Durch diesen Prozess wird für jeden Datenblock eine eindeutige Zahl erzeugt, die dann in einem Index gespeichert wird. Wenn eine Datei aktualisiert wird, werden nur die geänderten Daten gespeichert. Das heißt, wenn nur einige wenige Bytes eines Dokuments oder einer Darstellung geändert werden, werden nur die geänderten Blöcke oder Bytes gespeichert, und die Änderungen stellen keine vollständig neue Datei dar. Deshalb wird durch Blockdeduplizierung mehr Speichervolumen als durch Dateideduplizierung eingespart.
  • Viele Dateisysteme und Speichersysteme stellen Einrichtungen bereit, Dokumente und Dateien als unveränderbar zu kennzeichnen, d.h., der Inhalt der Dateien und/oder die Datei selbst kann während eines bestimmten Zeitraums nicht gelöscht oder geändert werden, bis ein anderes Kriterium erfüllt ist. Solche Anforderungen stammen in der Regel von gesetzlich regulierten Einrichtungen und Unternehmen wie beispielsweise Regierungseinrichtungen und dem Gesundheitswesen. Solche Einrichtungen und Unternehmen sind von der Telekommunikationsindustrie abhängig, um Vorschriften wie das Sarbanes-Oxley-Gesetz (SOX), das Gesetz für den Datenschutz im Gesundheitswesen (Health Insurance Portability and Accountability Act, HIPAA), die Standards des Bundesausschusses für Bankenaufsicht (Federal Financial Institutions Examination Council, FFIEC) usw. einzuhalten, die fordern, dass bestimmte Dateien unveränderlich bleiben müssen.
  • Zum Beispiel müssen gemäß der HIPAA-Sicherheitsregel (z.B. dem Bereich technische Sicherheitsmaßnahmen) Sicherheitsprotokolle, in denen Vorfälle aufgezeichnet sind, sechs Jahre unverändert aufbewahrt werden. Das zeigt, dass jede als unveränderlich gekennzeichnete Datei (zumindest während des vorgegebenen Zeitraums) von hoher Bedeutung oder von entscheidendem Wert ist und deshalb unbedingt erhalten bleiben muss. Die Telekommunikationsunternehmen müssen die Einhaltung dieser Vorschriften garantieren, indem sie die Regeln zur Aufbewahrung der Verbindungsdaten wie beispielsweise Telefongespräche und gesendete Textnachrichten einhalten. Die Telekommunikationsunternehmen wiederum nutzen das ihrer Infrastruktur eigene Merkmal der unveränderlichen Dateien, um die Anforderungen an die Unveränderlichkeit der Verbindungsdaten für diese Vorschriften zu erfüllen. Dieses Merkmal wird auch in dem IBM® General Parallel File System™ (GPFS™) unterstützt, bei dem es sich um ein strategisch strukturiertes Dateisystem handelt, das in vielen Speicherangeboten und -lösungen angewendet wird. (IBM, General Parallel File System und GPFS sind Warenzeichen von International Business Machines Corporation, die in vielen Rechtssystemen weltweit eingetragen sind).
  • Wenn Datendeduplizierungen auf der Dateiebene durchgeführt werden, werden die doppelt vorkommenden Kopien der Datei gelöscht und nur eine einzige Kopie aufbewahrt, und alle anderen Verweise sind auf diese einzige Kopie gerichtet. Dies steht jedoch im Widerspruch zur Grundvoraussetzung der Unveränderlichkeit, dass die Dateien nicht bearbeitet oder gelöscht werden können. Somit vermag der Deduplizierungsprozess keine redundanten Kopien unveränderlicher Dateien zu löschen. Wenn zum Beispiel unveränderliche Verbindungsdaten von Anrufen und Textnachrichten aufbewahrt werden müssen, an denen üblicherweise mehr als ein Teilnehmer beteiligt ist, bewahren die Telekommunikationsunternehmen in der Regel mehrere Kopien ein und derselben Datei auf, um die Anforderungen bezüglich der Unveränderlichkeit zu erfüllen, obwohl dadurch mehr Datenspeichervolumen in Anspruch genommen wird und der Verwaltungs- und Datenschutzaufwand steigen. Bei einem konkreten Beispiel einer Konferenzschaltung mit zehn Teilnehmern, deren Protokoll ein Speichervolumen von 1 GB in Anspruch nimmt, speichert das Telekommunikationsunternehmen dieselben Daten für jeden Teilnehmer und hält die Unveränderlichkeit für alle Dateien aufrecht, sodass insgesamt 10 GB Speichervolumen in Anspruch genommen werden. Wären die Dateien nicht unveränderlich, könnten mittels des Deduplizierungsprozesses neun Kopien der Datei gelöscht und nur eine einzige Kopie aufbewahrt werden, die ein Speichervolumen von lediglich 1 GB in Anspruch nimmt, sodass das tatsächlich genutzte Speichervolumen um 9 GB verringert wird. In bestimmten Fällen wird eine solche Deduplizierung durch das Merkmal der Unveränderlichkeit der Dateien verhindert.
  • Folgende Dokumente sind aus dem Stand der Technik bekannt: das Dokument US 2010/0332401 A1 beschreibt ein System und Verfahren zur Ausführung von Datenspeicheroperationen inklusive Inhaltindizierung, Container-basierende Deduplizierung, und eine Richtlinien-gerechte Speicherung in einer Cloud-Computing-Umgebung. Das Dokument US 2010/0064166 A1 beschreibt eine Mehrzahl von Datenservices durch Anwendung von verbindbaren, gesplitteten, und übertragbaren redundanten Ketten von Daten-Containern. Das Dokument US 2011/0138144 A1 beschreibt ein Daten-Management-Programm. Dabei wird ein Detektionsmodul zum Feststellen von Daten eingesetzt, das feststellt, ob Daten vorhanden sind, die dedupliziert werden können, dessen Schonfrist abgelaufen ist.
  • Somit besteht eine Aufgabe darin, ein Konzept vorzustellen, welches den bisherigen Widerspruch in dem bekannten System hinsichtlich einer Deduplizierung im Zusammenhang mit einer Löschung und Unveränderlichkeit von Dateien zu lösen.
  • Kurzdarstellung
  • Die oben genannte Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausführungsbeispiele sind unter anderem durch die jeweils abhängigen Ansprüche gegeben.
  • Figurenliste
  • Die vorliegende Erfindung wird in der folgenden detaillierten Beschreibung unter Bezugnahme auf die folgenden Zeichnungen anhand von Beispielen beispielhafter Ausführungsformen der vorliegenden Erfindung beschrieben, die nicht als Einschränkung zu verstehen sind.
    • 1 zeigt einen Cloud-Computing-Knoten gemäß Aspekten der vorliegenden Erfindung;
    • 2 zeigt eine Cloud-Computing-Umgebung gemäß Aspekten der vorliegenden Erfindung;
    • 3 zeigt Abstraktionsmodellschichten gemäß Aspekten der vorliegenden Erfindung;
    • 4 zeigt ein Blockschaltbild für die Datendeduplizierung;
    • die 5A und 5B zeigen beispielhafte Deduplizierungsprozesse gemäß Aspekten der Erfindung; und
    • 6 zeigt einen beispielhaften Ablaufplan gemäß Aspekten der Erfindung.
  • Detaillierte Beschreibung
  • Die vorliegende Erfindung betrifft allgemein Cloud-Computing und insbesondere Verfahren und Systeme zum Verwalten redundanter unveränderlicher Dateien unter Verwendung von Deduplizierungstechniken in Speicher-Clouds. Gemäß Aspekten der Erfindung werden Deduplizierungstechniken auf unveränderliche Dateien angewendet, um Einsparungen an Datenspeicherplatz zu erzielen und gleichzeitig die Vorgaben der Unveränderlichkeit einzuhalten. Gemäß Ausführungsformen wird in Fällen, in denen es mehrere redundante unveränderliche Dateien gibt, die Datei mit einem am weitesten in der Zukunft gelegenen Ablauftermin als Masterkopie festgelegt und gespeichert, während alle anderen redundanten Kopien auf die Masterkopie verwiesen und die Kopien selbst gelöscht werden. Auf diese Weise werden gemäß Ausführungsformen der Erfindung Einsparungen an Datenspeicherplatz infolge Deduplizierung durch Löschen redundanter Kopien von Dateien erreicht sowie Benutzern der Zugriff auf eine Kopie einer unveränderlichen Datei ermöglicht, die die Unveränderlichkeit einhalten müssen.
  • Gemäß Aspekten der Erfindung sucht ein Deduplizierungsagent, wenn eine bestimmte Datei als unveränderlich gekennzeichnet ist, aktiv nach anderen Dateien, die in Bezug auf die unveränderliche Datei redundant sind. Wenn eine veränderliche (z.B. nicht unveränderliche) redundante Datei gefunden wird, löscht der Deduplizierungsagent die veränderliche Datei und erzeugt einen Verweis auf die unveränderliche Datei, die als Masterkopie gespeichert wird. Wenn eine unveränderliche redundante Datei gefunden wird, vergleicht der Deduplizierungsagent die Ablauftermine für die Unveränderlichkeit der mehreren unveränderlichen Dateien (z.B. der Originaldatei und der einen oder der mehreren durch den Deduplizierungsagenten gefundenen Dateien) und speichert die unveränderliche Datei mit dem spätesten Ablauftermin als Masterkopie. Der Deduplizierungsagent löscht alle anderen unveränderlichen redundanten Dateien und erzeugt einen Verweis dieser Dateien auf die Masterkopie.
  • Gemäß Ausführungsformen behält der Deduplizierungsagent die Unveränderlichkeitsattribute (z.B. den Ablauftermin) jeder unveränderlichen Datei mittels eines bedingten Links bei. Zum Beispiel beinhaltet für eine bestimmte Datei, die gelöscht wurde und nun auf eine Masterkopie verweist, der bedingte Link der betreffenden Datei den Pfad (z.B. einen Zeiger) auf die Masterkopie sowie die Unveränderlichkeitsattribute (z.B. den Ablauftermin) der betreffenden Datei. Auf diese Weise bleiben die Unveränderlichkeitsattribute (z.B. der Ablauftermin) der gelöschten Datei erhalten, und der Eigentümer der gelöschten Kopie kann auf die Masterkopie zugreifen, obwohl die redundante Kopie der unveränderlichen Datei gelöscht ist. Demgemäß werden redundante Kopien der Masterkopie entfernt, ohne die Vorgaben der Unveränderlichkeit zu verletzen. Wenn die Unveränderlichkeitsdauer einer Masterkopie abläuft (z.B. wenn der Ablauftermin erreicht wird) und ein auf die Masterkopie verweisender bedingter Link einen späteren Ablauftermin aufweist, erhebt der Deduplizierungsagent darüber hinaus den bedingten Link in den Rang der Masterkopie und ändert die vorliegende Masterkopie in einen bedingten Link, der nun nicht mehr unveränderlich ist.
  • Cloud-Computing
  • Von vornherein sollte klar sein, dass diese Offenbarung zwar eine detaillierte Beschreibung über das Cloud-Computing enthält, die Umsetzung der hierin aufgeführten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt sind. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einem beliebigen anderen Typ von Datenverarbeitungsumgebung umgesetzt werden, der bereits bekannt ist oder in Zukunft entwickelt wird.
  • Aus Gründen der Zweckmäßigkeit enthält die detaillierte Beschreibung die folgenden Definitionen, die dem Dokument „Draft NIST Working Definition of Cloud Computing“ von Peter Mell und Tim Grance, 7. Oktober 2009, entnommen wurden, das in einem gleichzeitig eingereichten Datenblatt zitiert wird und als Kopie beigefügt ist.
  • Beim Cloud-Computing handelt es sich um ein Modell zur Lieferung von Diensten bei Bedarf, um einen unkomplizierten Netzwerkzugriff auf einen gemeinsam genutzten Pool konfigurierbarer Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitungseinheiten, Arbeitsspeicher, Massenspeicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die mit geringem Verwaltungsaufwand oder ohne mit dem Anbieter eines Dienstes in Verbindung zu treten schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Servicemodelle und mindestens vier Implementierungsmodelle beinhalten.
  • Bei den Merkmalen handelt es sich um die folgenden:
  • Selbstbedienung bei Bedarf: ein Benutzer der Cloud kann automatisch einseitig Datenverarbeitungsressourcen nach Bedarf zur Verfügung stellen, beispielsweise Serverzeit und Netzwerkspeicher, ohne selbst mit dem Dienstanbieter in Verbindung treten zu müssen.
  • Umfassender Netzwerkzugriff: über ein Netzwerk sind Leistungsmerkmale verfügbar, auf die durch Standardmechanismen zugegriffen werden kann, welche die Verwendung durch heterogene Thin-Client- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptop-Computer und PDAs) unterstützen.
  • Zusammenfassung von Ressourcen: die Datenverarbeitungsressourcen des Anbieters werden zusammengefasst, um mehrere Benutzer unter Verwendung eines Multi-Tenant-Modells mit verschiedenen physischen und virtuellen Ressourcen zu versorgen, die nach Bedarf dynamisch zugewiesen und erneut zugewiesen werden. Die Idee der Standortunabhängigkeit besteht darin, dass der Benutzer im Allgemeinen den genauen Standort der bereitgestellten Ressourcen weder kennt noch beeinflussen, aber auf einer höheren Abstraktionsschicht einen bestimmten Standort (z.B. Land, Staat oder Rechenzentrum) angeben kann.
  • Rasche Elastizität: Leistungsmerkmale können rasch und elastisch, in bestimmten Fällen auch automatisch, zur Verfügung gestellt werden, um sie schnell zu erweitern, und sie können rasch freigegeben werden, um sie rasch zu nutzen. Für den Benutzer scheinen die zur Verfügung vorhandenen Leistungsmerkmale oft unbegrenzt zu sein und können zu jedem Zeitpunkt und in jeder Menge käuflich erworben werden.
  • Abrechenbare Dienstleistung: Cloud-Systeme steuern und optimieren die Nutzung von Ressourcen automatisch durch den Einsatz einer Abrechnungsfunktion auf einer bestimmten Abstraktionsschicht, die dem Typ der Dienstleistung (z.B. Speicherung, Verarbeitung, Bandbreite und aktive Benutzerkonten) angemessen ist. Die Nutzung der Ressourcen kann überwacht, gesteuert und dokumentiert werden, sodass sowohl für den Anbieter als auch für den Benutzer der genutzten Dienstleistung Transparenz herrscht.
  • Bei den Servicemodellen handelt es sich um die folgenden:
  • Software als Dienstleistung (Software as a Service, SaaS): das dem Benutzer bereitgestellte Leistungsmerkmal dient dazu, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Auf die Anwendungen kann von verschiedenen Client-Einheiten über eine Thin-Client-Schnittstelle wie beispielsweise einen Web-Browser (z.B. Web-eMail) zugegriffen werden. Der Benutzer befasst sich nicht mit der Verwaltung oder der Steuerung der zugrunde liegenden Cloud-Infrastruktur, zu der ein Netzwerk, Server, Betriebssysteme, Speicher oder auch Leistungsmerkmale einzelner Anwendungen gehören, ausgenommen gegebenenfalls begrenzte benutzerspezifische Konfigurationseinstellungen von Anwendungen.
  • Plattform als Dienstleistung (Platform as a Service, PaaS): das dem Benutzer bereitgestellte Leistungsmerkmal dient dazu, durch den Benutzer erstellte oder erworbene Anwendungen unter Verwendung von Programmiersprachen und Hilfsprogrammen, die durch den Anbieter unterstützt werden, auf der Infrastruktur bereitzustellen. Der Benutzer befasst sich nicht mit der Verwaltung oder der Steuerung der zugrunde liegenden Cloud-Infrastruktur, zu der Netzwerke, Server, Betriebssysteme oder Speicher gehören, kann aber die implementierten Anwendungen und gegebenenfalls Konfigurationen von Umgebungen steuern, in denen die Anwendungen ausgeführt werden.
  • Infrastruktur als Dienstleistung (Infrastructure as a Service, laaS): das dem Benutzer bereitgestellte Leistungsmerkmal dient dazu, Verarbeitungskapazität, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen zur Verfügung zustellen, mittels derer der Benutzer in der Lage ist, beliebige Software zu implementieren und auszuführen, wozu Betriebssysteme und Anwendungen gehören können. Der Benutzer befasst sich nicht mit der Verwaltung oder der Steuerung der zugrunde liegenden Cloud-Infrastruktur, kann jedoch Betriebssysteme, Speicher, installierte Anwendungen und gegebenenfalls in begrenztem Maße ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls) steuern.
  • Bei den Installationsmodellen handelt es sich um die folgenden:
  • Private Cloud: die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann durch die Organisation oder Dritte verwaltet werden und sich innerhalb oder außerhalb ihrer Räumlichkeiten befinden.
  • Gemeinschafts-Cloud (Community Cloud): die Cloud-Infrastruktur wird durch mehrere Organisationen gemeinsam genutzt und unterstützt eine bestimmte Gemeinschaft mit gemeinsamen Interessen (z.B. Zielstellung, Sicherheitsanforderungen, Richtlinien und Konformitätsgrundsätze). Sie kann durch die Organisationen oder Dritte verwaltet werden und sich innerhalb oder außerhalb ihrer Räumlichkeiten befinden.
  • Öffentliche Cloud: die Cloud-Infrastruktur wird der breiten Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienstleistungen kommerziell anbietet.
  • Hybride Cloud: die Cloud-Infrastruktur besteht aus zwei oder mehr Clouds (privat, gemeinschaftlich oder öffentlich), die als individuelle Einheiten erhalten bleiben, aber durch eine standardisierte oder unternehmenseigene Technologie miteinander verbunden sind, die die Portabilität von Daten und Anwendungen gewährleistet (z.B. Blockbetrieb zwischen Clouds zum Lastausgleich zwischen Clouds).
  • Eine Cloud-Datenverarbeitungsumgebung ist dienstleistungsorientiert unter besonderer Berücksichtigung der Statusunabhängigkeit, loser Kopplung, Modularität und semantischen Zusammenwirkens. Das Kernstück des Cloud-Computing stellt eine Infrastruktur dar, die ein Netzwerk miteinander verbundener Knoten aufweist.
  • 1 zeigt nunmehr ein Schema eines Beispiels eines Cloud-Computing-Knotens. Der Cloud-Computing-Knoten 10 stellt lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten dar und ist nicht als Einschränkung des Schutzumfangs der Anwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung zu verstehen. Dennoch kann der Cloud-Computing-Knoten 10 implementiert werden und/oder jede der oben dargelegten Funktionalitäten ausführen. 1 kann auch eine Datenverarbeitungs-Infrastruktur zum Ausführen und/oder Umsetzen von Tasks und/oder Funktionen der hierin beschriebenen Verfahren darstellen.
  • In dem Cloud-Computing-Knoten 10 gibt es ein Computersystem/einen Server 12, der mit Umgebungen oder Konfigurationen zahlreicher anderer Universal- oder Spezial-Datenverarbeitungssysteme zusammenarbeiten kann. Zu Beispielen von allgemein bekannten Datenverarbeitungssystemen, Umgebungen und/oder Konfigurationen, die zur Verwendung mit dem Computersystem/Server 12 geeignet sein können, gehören, ohne darauf beschränkt zu sein, Personal Computer-Systeme, Server-Computersysteme, Thin-Clients, Thick-Clients, tragbare oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Heimelektronik, Netzwerk-PCs, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die eines der obigen Systeme oder Einheiten enthalten, und dergleichen.
  • Das Computersystem/der Server 12 kann allgemein in Verbindung mit durch das Computersystem ausführbaren Anweisungen wie beispielsweise durch ein Computersystem ausgeführte Programmmodule beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, die bestimmte Tasks ausführen oder bestimmte abstrakte Datentypen darstellen. Das Computersystem/der Server 12 können in verteilten Cloud-Computing-Umgebungen eingesetzt werden, wo Tasks auf fernen Verarbeitungseinheiten ausgeführt werden, die durch ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Speichermedien, darunter auch flüchtige Speichereinheiten, befinden.
  • 1 zeigt ein Computersystem/einen Server 12 in einem Cloud-Computing-Knoten 10 in der Form einer Universal-Datenverarbeitungseinheit. Als Komponenten des Computersystems/des Servers 12 kommen infrage, ohne darauf beschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18, der verschiedene Systemkomponenten, darunter den Systemspeicher 28, mit dem Prozessor 16 verbindet. Gemäß Ausführungsformen weist das Computersystem/der Server 12 einen Deduplizierungsagenten 80 auf oder tauscht Daten mit diesem aus, was hierin ausführlich beschrieben wird.
  • Der Bus 18 stellt einen oder mehrere von verschiedenen Typen von Busstrukturen dar, darunter ein Speicherbus oder eine Speichersteuereinheit, ein peripherer Bus, ein beschleunigter Grafikanschluss und ein Prozessor- oder lokaler Bus unter Verwendung einer Vielfalt von Busarchitekturen. Als Beispiele, die jedoch nicht als Einschränkung zu verstehen sind, kommen für solche Architekturen der ISA- (Industry Standard Architecture) Bus, der MCA- (Micro Channel Architecture) Bus, der EISA- (Enhanced ISA) Bus, der lokale VESA- (Video Electronics Standards Association) Bus und der PCI- (Peripheral Component Interconnects) Bus infrage.
  • Das Computersystem/der Server 12 enthält üblicherweise eine Vielfalt durch das Computersystem lesbarer Medien. Bei solchen Medien kann es sich um beliebige verfügbare Medien handeln, auf die das Computersystem/der Server 12 zugreifen kann, darunter sowohl flüchtige als auch nichtflüchtige Medien sowie austauschbare und nichtaustauschbare Medien.
  • Der Systemspeicher 28 kann durch das Computersystem lesbare Medien in der Form eines flüchtigen Speichers wie beispielsweise eines Direktzugriffsspeichers (RAM) 30 und/oder eines Cachespeichers 32 enthalten. Das Computersystem/der Server 12 kann ferner weitere austauschbare/nichtaustauschbare, flüchtige/nichtflüchtige Speichermedien des Computersystems enthalten. Lediglich als Beispiel kann ein Speichersystem 34 zum Lesen von und zum Schreiben auf ein (nicht gezeigtes und üblicherweise als „Festplattenlaufwerk“ bezeichnetes) nichtaustauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden. Ferner können ein nicht gezeigtes magnetisches Plattenlaufwerk zum Lesen von einer und zum Schreiben auf eine austauschbare, nichtflüchtige magnetische Platte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Lesen von oder zum Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie beispielsweise eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. In solchen Fällen kann jedes Medium durch eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Im Folgenden wird ein Speicher 28 genauer gezeigt und beschrieben, der zumindest ein Programmprodukt mit einer Reihe von Programmmodulen (z.B. mindestens einem Programmmodul) enthalten kann, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Beispielsweise können ein Programm/Dienstprogramm 40 mit einer Reihe von Programmmodulen (mindestens einem Programmmodul) 40 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Speicher 28 gespeichert sein, ohne auf diese beschränkt zu sein. Sowohl das Betriebssystem als auch das eine oder die mehreren Anwendungsprogramme, anderen Programmmodule und Programmdaten oder eine Kombination derselben können eine Implementierung einer Netzwerkumgebung beinhalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Verfahrensweisen von Ausführungsformen der hierin beschriebenen Erfindung aus. Zum Beispiel können einige oder alle Funktionen des Deduplizierungsagenten 80 als ein oder mehrere Programmmodule 42 implementiert werden. Außerdem kann der Deduplizierungsagent 80 in Form gesonderter spezialisierter Prozessoren oder eines einzelnen oder mehrerer Prozessoren implementiert werden, um die hierin beschriebene Funktionalität bereitzustellen. Gemäß Ausführungsformen führt der Deduplizierungsagent 80 einen oder mehrere der hierin beschriebenen Prozesse aus, darunter, ohne darauf beschränkt zu sein: Empfangen einer Datei, die in einem gemeinsam genutzten Speicher als unveränderliche Datei gespeichert werden soll, oder Empfangen einer Meldung, dass die gegenwärtig in dem gemeinsam genutzten Speicher gespeicherte Datei als unveränderlich festgelegt werden soll; Suchen nach redundanten Kopien der Datei in dem Dateisystem; Löschen redundanter veränderlicher Kopien, die in dem Dateisystem gefunden wurden, und Verweisen dieser redundanten veränderlichen Kopien auf die unveränderliche Datei als Masterkopie; Vergleichen von in dem Dateisystem gefundenen unveränderlichen Kopien mit der unveränderlichen Datei, Speichern einer der Dateien als Masterkopie, Verweisen der anderen Dateien mittels eines bedingten Links auf die Masterkopie und Löschen der anderen Dateien.
  • Das Computersystem/der Server 12 kann auch Daten austauschen mit einer oder mehreren externen Einheiten 14 wie beispielsweise einer Tastatur, einer Zeigereinheit, einem Bildschirm 24 usw.; einer oder mehreren Einheiten, die einem Benutzer die Zusammenarbeit mit dem Computersystem/dem Server 12 ermöglichen; und/oder beliebigen Einheiten (z.B. einer Netzwerkkarte, einem Modem usw.), die dem Computersystem/dem Server 12 den Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen. Eine solche Datenübertragung kann über Eingabe/Ausgabe- (E/A-) Schnittstellen 22 erfolgen. Darüber hinaus kann das Computersystem/der Server 12 Daten mit einem oder mehreren Netzwerken wie beispielsweise einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über einen Netzwerkadapter 20 austauschen. Der gezeigte Netzwerkadapter 20 tauscht über den Bus 18 Daten mit den anderen Komponenten des Computersystems/des Servers 12 aus. Es sollte klar sein, dass in Verbindung mit dem Computersystem/dem Server 12 auch noch weitere Hardware- und/oder Software-Komponenten verwendet werden können, obwohl dies nicht gezeigt ist. Als Beispiele kommen infrage, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerkstapel, RAID- (redundante Reihe preisgünstiger Platten oder redundante Reihe unabhängiger Platten) Systeme, Bandlaufwerke und Speichersysteme für die Datenarchivierung usw.
  • 9 zeigt nunmehr eine anschauliche Cloud-Computing-Umgebung 50. Die gezeigte Cloud-Computing-Umgebung 50 weist einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen durch Cloud-Benutzer genutzte lokale Datenverarbeitungseinheiten wie beispielsweise ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 54A, ein Arbeitsplatz-Computer 54B, ein Laptop-Computer 54C und/oder ein Fahrzeug-Computersystem 54N Daten austauschen können. Die Knoten 10 können Daten untereinander austauschen. Sie können (auf eine nicht gezeigte Weise) physisch oder virtuell in einem oder mehreren Netzwerken, beispielsweise privaten, öffentlichen oder hybriden Clouds, die oben beschrieben wurden, oder einer Kombination derselben zusammengefasst sein. Dadurch kann die Cloud-Computing-Umgebung 50 Infrastrukturen, Plattformen und/oder Software als Dienstleistung anbieten, für die ein Cloud-Benutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorzuhalten zu braucht. Es ist klar, dass die in 9 gezeigten Typen von Datenverarbeitungseinheiten 54A bis 54N nur der Veranschaulichung dienen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit einem beliebigen Typ von computergestützten Einheiten über einen beliebigen Typ von Netzwerk und/oder einer im Netzwerk adressierbaren Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können
  • 3 zeigt eine Reihe von funktionellen Abstraktionsschichten, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Von vornherein sollte klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen nur zur Veranschaulichung dienen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Die Figur zeigt, dass die folgenden Schichten und entsprechenden Funktionen bereitgestellt werden:
  • Die Hardware- und Softwareschicht 60 enthält Hardware- und Softwarekomponenten. Als Beispiele von Hardwarekomponenten kommen Großrechner infrage, gemäß einem Beispiel Systeme vom Typ IBM® zSeries®; Server auf der Grundlage der RISC- (Reduced Instruction Set Computer) Architektur, gemäß einem Beispiel Systeme vom Typ IBM pSeries®; Systeme vom Typ IBM xSeries®; Systeme vom Typ IBM BladeCenter®; Speichereinheiten; Netzwerke und Netzwerkkomponenten. Als Beispiele von Softwarekomponenten kommt Netzwerk-Software für Anwendungs-Server infrage, bei einem Beispiel Software für Anwendungs-Server vom Typ IBM WebSphere®; und Datenbank-Software, bei einem Beispiel Datenbank-Software vom Typ IBM DB2®. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Warenzeichen von International Business Machines Corporation, die weltweit in vielen Rechtssystemen eingetragen sind).
  • Die Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, auf der die folgenden Beispiele von virtuellen Einheiten bereitgestellt werden können: virtuelle Server; virtuelle Speicher; virtuelle Netzwerke, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • Gemäß einem Beispiel kann die Verwaltungsschicht 64 die im Folgenden beschriebenen Funktionen bereitstellen. Durch das Beschaffen von Ressourcen werden dynamische Datenverarbeitungsressourcen und weiteren Ressourcen bereitgestellt, die zum Ausführen von Tasks innerhalb der Cloud-Computing-Umgebung genutzt werden. Das Messen der Inanspruchnahme und die Preisgestaltung sorgen für die Kostenkontrolle, wenn Ressourcen innerhalb der Cloud-Computing-Umgebung genutzt werden, und die Abrechnung oder Rechnungsstellung erfasst die Inanspruchnahme dieser Ressourcen. Gemäß einem Beispiel können diese Ressourcen Lizenzen für Anwendungs-Software aufweisen. Durch Sicherheitsmaßnahmen wird gewährleistet, dass die Identität von Cloud-Benutzern und Tasks geprüft sowie Daten und andere Ressourcen geschützt werden. Ein Benutzerportal stellt für Benutzer und Systemadministratoren den Zugriff auf die Cloud-Computing-Umgebung bereit. Das Dienstgüte-Management sorgt für ein Zuordnen und Verwalten von Cloud-Computing-Ressourcen, so dass die geforderte Dienstgüte erzielt wird. Ein Planen und Erfüllen der Dienstgüte-Vereinbarung (Service Level Agreement - SLA) sorgen für Vorbereitung und Beschaffung von Cloud-Computing-Ressourcen, für die gemäß einem SLA zukünftig ein Bedarf zu erwarten ist.
  • Die Arbeitslastschicht 66 stellt Beispiele von Funktionalitäten bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Als Beispiele für Arbeitslasten und Funktionen, die auf dieser Schicht bereitgestellt werden können, kommen infrage: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bildungsangebote im virtuellen Klassenzimmer; Datenanalyse; Transaktionsverarbeitung; und Deduplizierung. Gemäß Aspekten der Erfindung dient die Deduplizierungs/Arbeitslastfunktion zum Ausführen eines oder mehrerer hierin beschriebener Prozesse, darunter, ohne darauf beschränkt zu sein: Empfangen einer Datei, die in einem gemeinsam genutzten Speicher als unveränderliche Datei gespeichert werden soll, oder Empfangen einer Meldung, dass die gegenwärtig in dem gemeinsam genutzten Speicher gespeicherte Datei als unveränderliche Datei festgelegt werden soll; Suchen nach redundanten Kopien der Datei in dem Dateisystem; Löschen in dem Dateisystem gefundener redundanter veränderlicher Kopien und Verweisen dieser redundanten veränderlichen Kopien auf die unveränderliche Datei als Masterkopie; Vergleichen in dem Dateisystem gefundener redundanter unveränderlicher Kopien mit der unveränderlichen Datei, Speichern einer der Dateien als Masterkopie, Verweisen der anderen Dateien auf durch einen bedingten Link auf die Masterkopie und Löschen der anderen Dateien.
  • Dem Fachmann ist einsichtig, dass Aspekte der vorliegenden Erfindung, darunter der Deduplizierungsagent 80 und die darin bereitgestellte Funktionalität, als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer kompletten Hardware-Ausführungsform, einer kompletten Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte in sich vereint, die hierin im Allgemeinen sämtlich als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehrere computerlesbaren Medien mit einem darauf gespeicherten computerlesbaren Programmcode verkörpert ist.
  • Es kann eine beliebige Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Kombination derselben handeln. Im Einzelnen kommen als Beispiele (eine nicht erschöpfende Aufzählung) des computerlesbaren Speichermediums die folgenden infrage: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetischen Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielfalt an Formen annehmen, darunter, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder eine beliebige geeignete Kombination derselben. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges geeignetes computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weiterleiten oder transportieren kann.
  • Ein auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung eines beliebigen geeigneten Medium übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlos, leitungsgebunden, Lichtwellenleiter, HF usw. oder eine beliebige geeignete Kombination derselben.
  • Ein Computer-Programmcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der ferne Computer durch einen beliebigen Typ von Netzwerk mit dem Computer des Benutzers verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Anbieters).
  • Aspekte der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computer-Programmanweisungen umgesetzt werden können. Diese Computer-Programmanweisungen können einem Prozessor eines Universal-Computers, eines Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine derart zu erzeugen, dass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen erzeugen.
  • Diese Computer-Programmanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten veranlassen kann, in einer bestimmten Weise zu funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen enthält.
  • Die Computer-Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Folge auf dem Computer, einer anderen programmierbaren Vorrichtung oder anderen Einheiten auszuführender Arbeitsschritte zu veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung Prozesse zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen bereitstellen.
  • 4 zeigt ein Deduplizierungs-Blockschaltbild gemäß Aspekten der Erfindung. Gemäß Ausführungsformen fließen Daten in der Form einer unveränderlichen Datei 75 von einer lokalen Datenverarbeitungseinheit 54 zu einem Deduplizierungssystem, das einen Datenverarbeitungsknoten 10 und einen Deduplizierungsagenten 80 aufweist. Hierbei kann der Benutzer der lokalen Datenverarbeitungseinheit 54 zum Beispiel anfordern (oder anweisen), dass die Datei 75 in dem gemeinsam genutzten Speicher 90 als unveränderliche Datei gespeichert werden soll, oder anweisen, dass die gegenwärtig in dem gemeinsam genutzten Speicher 90 gespeicherte Datei 75 als unveränderlich gekennzeichnet wird. Bei der lokalen Datenverarbeitungseinheit 54 kann es sich um eine der vielen oben unter Bezugnahme auf 2 beschriebenen lokalen Datenverarbeitungseinheiten 54A bis N handeln. Bei dem gemeinsam genutzten Speicher 90 kann es sich zum Beispiel um ein oder mehrere Datenspeicherelemente handeln, die in einem oder mehreren Knoten in einer Cloud-Umgebung wie beispielsweise der in 2 gezeigten Cloud-Umgebung 50 enthalten sind.
  • In einem Datei-Deduplizierungsprozess unterwirft der Deduplizierungsagent 80 die Datei 75 einem Hash-Algorithmus, der für jede Datei 75 einen eindeutigen Hash-Wert erzeugt. Der Deduplizierungsagent 80 vergleicht den eindeutigen Hash-Wert für die Datei mit den Hash-Werten anderer bereits im Speicher 90 gespeicherter Dateien. Die Hash-Werte der anderen Dateien können in dem Speicher 90 und/oder in einer Deduplizierungs-Datenblock 85 gespeichert sein, die Informationen über deduplizierte Dateien in dem System enthält. Der Deduplizierungsagent 80 ermittelt redundante Dateien durch Vergleichen der verschiedenen Hash-Werte und Erkennen übereinstimmender Hash-Werte.
  • Gemäß weiteren Ausführungsformen stellen das Vergleichen und Finden von Übereinstimmungen mittels Hash-Werten einen ersten Schritt zum Ermitteln von Redundanz dar. Bei solchen weiteren Ausführungsformen wird davon ausgegangen, dass es sich bei Dateien mit übereinstimmenden Hash-Werten um mögliche (z.B. potenziell) redundante Kopien handelt. In einem zweiten Schritt zur Bestätigung der Redundanz führt der Deduplizierungsagent 80 einen Dateiunterscheidungsprozess zwischen den möglichen redundanten Kopien aus, um mit größerer Sicherheit feststellen zu können, dass die Kopien identisch sind. Mittels des Dateiunterscheidungsprozesses werden nicht die Hash-Werte, sondern die eigentlichen Inhalte der Dateien miteinander verglichen. Auf diese Weise kann der Deduplizierungsagent 80 zusätzlich einen Dateiunterscheidungsprozess ausführen, um tatsächlich redundante Kopien zu erkennen, z.B. Dateien im Speicher 90, die mit der Datei 75 identisch sind.
  • Das Vergleichen von Hash-Werten und das wahlweise Ausführen eines Dateiunterscheidungsprozesses stellen beispielhafte Verfahren zum Ermitteln redundanter Dateien dar. Die Erfindung ist jedoch nicht auf diese Verfahren beschränkt, und innerhalb des Schutzumfangs kann ein beliebiger geeigneter Vergleichsprozess zum Erkennen im Speicher 90 gespeicherter Dateien verwendet werden, die mit der Datei 75 identisch sind.
  • Wenn der Deduplizierungsagent 80 im Speicher 90 keine Dateien findet, die in Bezug auf die Datei 75 redundant sind, speichert der Deduplizierungsagent 80 gemäß Aspekten der Erfindung die Datei 75 im Speicher 90 und sichert die Unveränderlichkeitsattribute der Datei 75 in dem der Datei zugehörigen I-Knoten. Wenn der Deduplizierungsagent 80 hingegen eine Datei im Speicher 90 findet, die in Bezug auf die Datei 75 redundant ist, wendet der Deduplizierungsagent 80 in Abhängigkeit davon, ob die gefundenen Kopien der Datei veränderbar oder unveränderlich sind, einen Deduplizierungsprozess an, was unter Bezugnahme auf die 5A und 5B ausführlich beschrieben wird.
  • 5A zeigt einen Deduplizierungsprozess gemäß Aspekten der Erfindung, wenn die Datei 75 unveränderlich ist und der Agent (z.B. der in 4 beschriebene Agent 80) im Speicher 90 eine oder mehrere veränderliche redundante Dateien 100 findet. In diesem Fall ist die gefundene redundante Datei 100 veränderlich, worunter zu verstehen ist, das diese Datei 100 uneingeschränkt gelöscht, verändert usw. werden kann. Daraufhin speichert der Agent die Datei 75 im Speicher 90 und legt die Datei 75 als Masterkopie fest. Der Agent löscht die Datei 100 aus dem Speicher 90 und erzeugt einen bedingten Link 105, der auf die Masterkopie, z.B. auf die Datei 75, verweist. Bei dem bedingten Link 105 kann es sich um eine Datenstruktur handeln, die an einer beliebigen geeigneten Stelle im Dateisystem gespeichert sein kann, darunter, ohne darauf beschränkt zu sein, im Speicher 90, in einer Deduplizierungs-Datenbank (z.B. der in 4 beschriebenen Datenbank 85), als Teil eines I-Knotens oder an einer anderen Stelle in dem Dateisystem.
  • Ebenfalls Bezug nehmend auf 5A kann der Agent mehr als eine im Speicher 90 gespeicherte veränderliche redundante Datei 100 erkennen. In solchen Fällen wird jede einzelne der mehreren veränderlichen Dateien 100 aus dem Speicher 90 gelöscht und durch einen entsprechenden bedingten Link 105 ersetzt, der auf die Datei 75 (z.B. die im Speicher 90 gespeicherte Masterkopie) verweist.
  • Weiterhin kann die unveränderliche Datei 75 einen Ablauftermin „A“ aufweisen. Die Datei 75 kann zum Ablauftermin oder danach gelöscht oder verändert werden, und in diesem Fall unterstützt der Agent den bedingten Link 105 zur Masterkopie im Speicher 90. Wenn es mehrere bedingte Links 105 gibt, die auf die Datei 75 verweisen, wenn die Datei 75 nach dem Ablauftermin verändert oder gelöscht wird, unterstützt der Agent einen der bedingten Links 105 zu einer neuen Masterkopie und aktualisiert die übrige Vielzahl der bedingten Links 105, damit diese auf die neue Masterkopie verweisen.
  • Wenn der Eigentümer der veränderlichen Datei 100 die Datei nach dem Erzeugen des bedingten Links 105 löscht, löscht der Agent den bedingten Link 105 und sichert gleichzeitig die im Speicher 90 gespeicherte Masterkopie der Datei 75. Wenn der Eigentümer der veränderlichen Datei 100 die Datei nach dem Erzeugen des bedingten Links 105 aktualisiert, führt der Agent einen herkömmlichen Deduplizierungsprozess aus, bei dem eine neue Kopie der Masterdatei erzeugt wird, die Benutzeränderungen an der neuen Kopie empfangen werden und die neue Kopie als neue Datei (z.B. durch Erstellen einer Kopie beim Schreiben) gespeichert wird.
  • 5B zeigt einen Deduplizierungsprozess gemäß Aspekten der Erfindung, wenn die Datei 75 unveränderlich ist und der Agent (z.B. der in 4 beschriebene Agent 80) im Speicher 90 eine oder mehrere unveränderliche redundante Dateien 110 findet. Bei dem in 5B gezeigten Beispiel weist die Datei 75 einen Ablauftermin „A“ für die Unveränderlichkeit und die Datei 110 einen Ablauftermin „B“ für die Unveränderlichkeit auf. Wenn A größer als B ist (z.B. wenn die Datei 75 zukünftig länger unveränderlich ist als die Datei 110), wird die Datei 75 als Masterkopie im Speicher 90 gespeichert und die Datei 110 gelöscht und durch einen bedingten Link 115 ersetzt, der auf die Masterkopie verweist. Wenn B hingegen größer als A ist (z.B. wenn die Datei 110 zukünftig länger unveränderlich ist als die Datei 75), wird die Datei 110 als Masterkopie im Speicher 90 gespeichert, und die Datei 75 wird gelöscht und durch einen bedingten Link 115' ersetzt, der auf die Masterkopie verweist. In beiden Fällen (A>B oder B>A) wird eine Datei als Masterkopie im Speicher 90 gespeichert und die andere Datei gelöscht und durch einen bedingten Link ersetzt, der auf die Masterkopie verweist. Darüber hinaus enthält der bedingte Link (z.B. der bedingte Link 115 oder 115'), der die gelöschte Datei ersetzt, den Ablauftermin für die Unveränderlichkeit der gelöschten Datei sowie Daten, die den Pfad (z.B. Verweis) zur Masterkopie definieren.
  • Die in 5B gezeigten Prozesse können ausgeführt werden, wenn der Agent mehr als eine Datei 110 erkennt, die zu der Datei 75 redundant sind. In einem solchen Fall ermittelt der Agent, für welche Datei aller Dateien 75 und 110 der Ablauftermin am weitesten in der Zukunft liegt und unterstützt und speichert diese eine Datei als Masterkopie im Speicher 90. Die übrigen Dateien werden wie oben beschrieben gelöscht und durch bedingte Links 115 und/oder 115' ersetzt.
  • Wenn einer der bedingten Links zeitlich vor der Masterkopie abläuft, löscht der Agent gemäß Ausführungsformen den betreffenden bedingten Link oder macht aus ihm einen veränderlichen bedingten Link und lässt gleichzeitig die gespeicherte Masterkopie und alle anderen bedingten Links unverändert. Wenn hingegen die Masterkopie abläuft, analysiert der Agent die Ablauftermine aller bedingten Links, die auf die Masterdatei verweisen, um zu ermitteln, ob einer der bedingten Links einen Ablauftermin in der Zukunft aufweist (dazu kann es zum Beispiel kommen, wenn ein bedingter Link so verändert wird, dass sein Ablauftermin auf einen Termin nach dem Ablauftermin der Masterkopie fällt). Wenn keine bedingten Links einen späteren Ablauftermin aufweisen, können die Masterkopie und alle bedingten Links gelöscht oder veränderlich gemacht werden. Wenn nur ein bedingter Link einen späteren Ablauftermin aufweist, wird dieser bedingte Link für die Masterkopie unterstützt, und die vorhergehende Masterkopie und alle anderen bedingten Links werden gelöscht oder veränderlich gemacht. Wenn mehrere bedingte Links einen späteren Ablauftermin aufweisen, wird der bedingte Link mit dem spätesten Ablauftermin für die Masterkopie unterstützt, werden die anderen bedingten Links mit einem in der Zukunft liegenden Ablauftermin geändert, um auf die neue Masterkopie zu verweisen, und die vorhergehende Masterkopie und alle anderen bedingten Links, deren Ablauftermin abgelaufen ist, werden gelöscht oder veränderlich gemacht.
  • Der bedingte Link (z.B. der Link 105, 115 oder 115') ist nicht auf das Speichern von Informationen zur Unveränderlichkeit in Form eines Ablauftermins beschränkt, sondern innerhalb des Schutzumfangs der Erfindung können alternative oder zusätzliche Informationen zur Unveränderlichkeit in dem bedingten Link gespeichert sein. Darüber hinaus kann das Ermitteln, welche Datei unterstützt und als Masterkopie gespeichert werden soll und welche Datei(en) gelöscht und durch einen bedingten Link ersetzt werden sollen, auf anderen Informationen zur Unveränderlichkeit als auf einem Ablauftermin beruhen.
  • Ablaufplan
  • 6 zeigt einen beispielhaften Ablaufplan zum Ausführen von Aspekten der vorliegenden Erfindung. Die Schritte von 6 können zum Beispiel in einer der Umgebungen von 1 bis 4 umgesetzt werden.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Demgemäß kann jeder Block in dem Ablaufplan oder in den Blockschaltbildern ein Modul, ein Segment oder ein Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen Logikfunktion(en) aufweist. Zu beachten ist, dass gemäß bestimmten alternativen Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge ausgeführt werden können. Zum Beispiel können zwei nacheinander gezeigte Blöcke je nach vorgesehener Funktionalität in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Ferner wird darauf hingewiesen, dass jeder Block der Blockschaltbilder und/oder des Ablaufplans und Kombinationen von Blöcken in dem Blockschaltbildern durch spezielle Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
  • Außerdem kann die Erfindung die Form eines Computerprogrammprodukts annehmen, auf das von einem durch Computer nutzbaren oder computerlesbaren Medium zugegriffen werden kann, das einen Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder einem beliebigen System zum Ausführen von Anweisungen bereitstellt. Die Software und/oder das Computerprogrammprodukt können in der Umgebung der 1 bis 4 umgesetzt werden. Im Rahmen dieser Beschreibung kann es sich bei einem durch Computer nutzbaren oder computerlesbaren Medium um eine Vorrichtung handeln, die das Programm zur Verwendung durch oder in Verbindung mit dem System, der Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten, speichern, übertragen, ausbreiten oder transportieren kann. Bei dem Medium kann es sich um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem (oder eine entsprechende Vorrichtung oder Einheit) oder ein Ausbreitungsmedium handeln. Als Beispiele eines computerlesbaren Speichermediums kommen ein Halbleiterspeicher, ein Magnetband, eine austauschbare Computerdiskette, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), eine starre Magnetplatte und eine optische Speicherplatte infrage. Aktuelle Beispiele von optischen Speicherplatten betreffen einen Compact Disc-Nur-Lese-Speicher (CD-ROM), einen Compact Disc-Lese/Schreibspeicher (CD-R/W) und eine DVD.
  • 6 zeigt einen beispielhaften Ablaufplan für einen Deduplizierungsprozess gemäß Aspekten der vorliegenden Erfindung. In Schritt 610 empfängt ein Deduplizierungssystem (z.B. eine Datenverarbeitungseinheit, die den Deduplizierungsagenten 80 ausführt) eine Eingabe von einem Benutzer (z.B. von der lokalen Datenverarbeitungseinheit 54), wobei die Eingabe eine Meldung aufweist, dass eine Datei als unveränderlich festgelegt werden soll. Die Benutzereingabe kann eine Meldung aufweisen, dass die Datei von der lokalen Datenverarbeitungseinheit mit einer Anweisung zum Speichern der Datei als unveränderliche Datei in einem gemeinsam genutzten Speicher (z.B. im Speicher 90) an das Deduplizierungssystem gesendet werden soll. Alternativ kann die Benutzereingabe eine Kennzeichnung einer bereits gespeicherten Datei (z.B. einer bereits im Speicher 90 gespeicherten Datei) und eine Anweisung zum Kennzeichnen der Datei als unveränderliche Datei aufweisen.
  • In Schritt 615 sucht das Deduplizierungssystem nach redundanten Kopien der aktuell in dem Dateisystem (z.B. im Speicher 90) gespeicherten Datei. Gemäß Ausführungsformen erfolgt dies in der unter Bezugnahme auf 4 beschriebenen Weise. Zum Beispiel kann ein Deduplizierungsagent des Deduplizierungssystems einen Hash-Wert für die Datei (z.B. die Datei von Schritt 610) erzeugen und diesen Hash-Wert mit den Hash-Werten in dem Dateisystem gespeicherter Daten vergleichen. Übereinstimmende Hash-Werte zeigen redundante Kopien von Dateien an. Wahlweise kann der Deduplizierungsagent zusätzlich oder alternativ einen Dateiunterscheidungsprozess mit möglichen (z.B. potenziell) redundanten Dateien ausführen, um mit größerer Sicherheit feststellen zu können, dass in Schritt 615 gefundene Dateien mit der Datei von Schritt 610 identisch sind.
  • In Schritt 620 ermittelt das Deduplizierungssystem, ob redundante Kopien gefunden werden, z.B. unter Verwendung der Ergebnisse des Suchens und Vergleichens von Schritt 615. Wenn keine redundanten Kopien gefunden werden, speichert das Deduplizierungssystem in Schritt 625 die Datei (von Schritt 610) und die ihr zugehörige Information zur Unveränderlichkeit in dem Dateisystem (z.B. im Speicher 90) und/oder aktualisiert alle neuen der Datei zugehörigen und in Schritt 610 empfangenen Informationen zur Unveränderlichkeit. Wenn in den Schritten 615 und 620 hingegen redundante Kopien gefunden werden, geht der Prozess weiter zu Schritt 630, wo das Deduplizierungssystem ermittelt, ob die redundanten Kopien veränderlich oder unveränderlich sind. Gemäß Ausführungsformen erfolgt die Ermittlung, ob eine bestimmte Datei unveränderlich oder veränderlich ist, durch Prüfen der Attribute der betreffenden Datei auf herkömmliche Weise.
  • Wenn in Schritt 630 festgestellt wird, dass eine oder mehrere redundante Kopien veränderlich sind, wird die unveränderliche Datei (von Schritt 610) in Schritt 635 als Masterkopie in dem gemeinsam genutzten Speicher gespeichert und werden alle veränderlichen redundanten Kopien gelöscht und durch einen bedingten Link ersetzt, der auf die Masterkopie verweist. Gemäß Ausführungsformen weist der Schritt 635 Speichern der unveränderlichen Datei als Masterkopie, Aktualisieren einer Information zur Unveränderlichkeit der Masterdatei und Ändern veränderlicher redundanter Kopien auf, damit diese auf die Masterkopie verweisen. Dies kann in derselben Weise wie oben unter Bezugnahme auf 5A beschrieben erfolgen.
  • Wenn in Schritt 630 hingegen festgestellt wird, dass eine oder mehrere redundante Kopien unveränderlich sind, ermittelt das Deduplizierungssystem in Schritt 640, welche von allen Dateien (z.B. der Datei von Schritt 610 der in Schritt 615 gefundenen redundanten Dateien) den spätesten Ablauftermin (z.B. den am weitesten Identität der Zukunft liegenden Ablauftermin der Unveränderlichkeit) aufweist. Die Datei mit dem spätesten Ablauftermin wird als Masterkopie in dem gemeinsam genutzten Speicher gespeichert, und alle anderen Dateien aus der Gruppe, die aus der Datei von Schritt 610 und den redundanten Dateien von den Schritten 615 und 620 besteht, mit Ausnahme der als Masterkopie gespeicherten Datei werden gelöscht und durch einen bedingten Link ersetzt, der auf die Masterkopie verweist. Gemäß Ausführungsformen weist der Schritt 640 auf: Ermitteln, welche unveränderliche Datei den spätesten Ablauftermin aufweist, Speichern der unveränderlichen Datei mit dem spätesten Ablauftermin als Masterkopie, Ersetzen der redundanten Dateien durch einen bedingten Link, der auf die Masterkopie verweist, und Speichern der Information zur Unveränderlichkeit in dem bedingten Link auf. Dies kann in derselben Weise wie oben unter Bezugnahme auf 5B beschrieben erfolgen.
  • Möglicherweise findet das Deduplizierungssystem in Schritt 615 eine Vielzahl redundanter Dateien, von denen einige veränderlich und einige unveränderlich sind. In einem solchen Fall dedupliziert das Deduplizierungssystem die veränderlichen Dateien wie in Schritt 635 beschrieben und dedupliziert getrennt davon die unveränderlichen Dateien wie in Schritt 640 beschrieben.
  • Gemäß Ausführungsformen kann ein Dienstanbieter wie beispielsweise ein Systemintegrator die hierin beschriebenen Prozesse anbieten. In diesem Fall kann der Dienstanbieter die Computer-Infrastruktur für einen oder mehrere Benutzer erzeugen, warten, implementieren, unterstützen usw., die die Prozessschritte der Erfindung ausführt. Bei diesen Benutzern kann es sich zum Beispiel um ein beliebiges Unternehmen handeln, das eine Technologie verwendet und Dienste bereitstellt oder nutzt. Der Dienstanbieter wiederum kann Zahlungen auf der Grundlage von Abonnements und/oder Gebührenverträgen von dem/den Benutzer(n) einnehmen, und/oder der Dienstanbieter kann Zahlungen aus dem Verkauf von Werbeinhalten an eine oder mehrere dritte Parteien einnehmen.

Claims (21)

  1. Verfahren zum Deduplizieren von Dateien, das in einer Computer-Infrastruktur implementiert ist, die eine Kombination von Hardware und Software aufweist, wobei das Verfahren aufweist: Empfangen einer Anforderung zum Speichern einer ersten Datei als unveränderliche Datei; Suchen nach einer zweiten Datei, die gespeichert und in Bezug auf die erste Datei redundant ist; Ermitteln, ob die zweite Datei veränderlich oder unveränderlich ist; Speichern der ersten Datei als Masterkopie, wenn die zweite Datei veränderlich ist, und Ersetzen der zweiten Datei durch einen bedingten Link, der auf die Masterkopie verweist; und Ermitteln, welche Datei der ersten und zweiten Datei einen späteren Ablauftermin und welche Datei einen früheren Ablauftermin aufweist, wenn die zweite Datei unveränderlich ist, Speichern der einen Datei der ersten und zweiten Datei mit dem späteren Ablauftermin als Masterkopie und Ersetzen der einen Datei der ersten und zweiten Datei mit dem früheren Ablauftermin durch einen bedingten Link, der auf die Masterkopie verweist,. wobei der bedingte Link Daten enthält, die den früheren Ablauftermin definieren, die zweite Datei einen früheren Ablauftermin aufweist; und das Ersetzen ein Löschen einer gespeicherten Kopie der zweiten Datei aufweist.
  2. Verfahren nach Anspruch 1, wobei die Anforderung zum Speichern der ersten Datei eine Anforderung oder Anweisung zum Speichern der ersten Datei in einem gemeinsam genutzten Speicher aufweist.
  3. Verfahren nach Anspruch 2, wobei: die Anforderung zum Speichern der ersten Datei von einer lokalen Datenverarbeitungseinheit empfangen wird; und sich der gemeinsam genutzte Speicher in einer Cloud-Umgebung befindet, der von der lokalen Datenverarbeitungseinheit entfernt ist.
  4. Verfahren nach Anspruch 1, wobei das Suchen nach der zweiten Datei ein Vergleichen eines Hash-Wertes der ersten Datei mit den Hash-Werten anderer gespeicherter Dateien aufweist.
  5. Verfahren nach Anspruch 1, wobei das Suchen nach der zweiten Datei aufweist: Ermitteln mindestens einer potenziell redundanten Datei durch Vergleichen eines Hash-Wertes mit Hash-Werten anderer gespeicherter Dateien; und Vergleichen der ersten Datei mit der mindestens einen potenziell redundanten Datei unter Verwendung eines Dateiunterscheidungsprozesses.
  6. Verfahren nach Anspruch 1, wobei es sich bei dem späteren Ablauftermin und dem früheren Ablauftermin um Ablauftermine für die Unveränderlichkeit handelt.
  7. Verfahren nach Anspruch 1, wobei ein Dienstanbieter die Computer-Infrastruktur erzeugt und/oder wartet und/oder installiert und/oder unterstützt.
  8. Verfahren nach Anspruch 1, wobei Schritte nach Anspruch 1 durch den Dienstanbieter auf der Grundlage von Abonnements, Werbung und/oder Gebühren bereitgestellt werden.
  9. System zum Deduplizieren von Dateien, das als Hardware implementiert ist und eine Computer-Infrastruktur aufweist, die eingerichtet ist: eine Anforderung zum Speichern einer ersten Datei als unveränderliche Datei zu empfangen; eine Mehrzahl zweiter Dateien zu ermitteln, die in Bezug auf die erste Datei redundant sind; für jede einzelne aus der Mehrzahl zweiter Dateien zu ermitteln, ob sie unveränderlich ist; eine Datei, die einen spätesten Ablauftermin aufweist, aus einer Gruppe zu erkennen, die die erste Datei und die Mehrzahl zweiter Dateien aufweist; die Datei, die den spätesten Ablauftermin aufweist, als Masterkopie zu speichern; und jede Datei in der Gruppe mit Ausnahme der Datei mit dem spätesten Ablauftermin durch eine entsprechende Datenstruktur zu ersetzen, die auf die Masterkopie verweist, wobei jede der Mehrzahl der zweiten Dateien unveränderlich ist, die entsprechende Datenstruktur einen bedingten Link aufweist, der einen Ablauftermin für die Unveränderlichkeit aufweist, und jede der Mehrzahl der zweiten Dateien einen früheren Ablauftermin als die erste Datei aufweist, und das Ersetzen ein Löschen einer gespeicherten Kopie der zweiten Datei aufweist.
  10. System nach Anspruch 9, wobei die entsprechende Datenstruktur einen Ablauftermin für die Unveränderlichkeit aufweist.
  11. System nach Anspruch 9, wobei die Anforderung zum Speichern der ersten Datei eine Anforderung oder Anweisung zum Speichern der ersten Datei in einem gemeinsam genutzten Speicher aufweist.
  12. System nach Anspruch 11, wobei: die Anforderung zum Speichern der ersten Datei von einer lokalen Datenverarbeitungseinheit empfangen wird; der gemeinsam genutzte Speicher sich in einer Cloud-Umgebung befindet, die von der lokalen Datenverarbeitungseinheit entfernt ist; und die Masterkopie in dem gemeinsam genutzten Speicher gespeichert ist.
  13. System nach Anspruch 9, wobei das Ermitteln der Mehrzahl zweiter Dateien, die zu der ersten Datei redundant sind, ein Vergleichen eines Hash-Wertes der ersten Datei mit Hash-Werten anderer gespeicherter Dateien aufweist.
  14. System nach Anspruch 9, wobei die Computer-Infrastruktur ferner geeignet ist, die Masterkopie zu löschen oder die Masterkopie als veränderlich zu kennzeichnen, nachdem diese den spätesten Ablauftermin erreicht hat.
  15. System nach Anspruch 14, wobei die Computer-Infrastruktur ferner geeignet ist: aus einer Mehrzahl von bedingten Links, die auf die Masterkopie verweisen, einen bedingten Link mit einem neuen spätesten Ablauftermin zu ermitteln; und den bedingten Link mit dem neuen spätesten Ablauftermin als neue Masterkopie zu unterstützen; und die Mehrzahl bedingter Links mit Ausnahme des bedingten Links mit dem neuen spätesten Ablauftermin zu aktualisieren, damit diese auf die neue Masterkopie verweisen.
  16. Computerprogrammprodukt, das ein durch Computer nutzbares materielles Speichermedium mit einem in dem materiellen Speichermedium verkörperten lesbaren Programmcode aufweist, wobei das Computerprogrammprodukt mindestens eine Komponente enthält, die eingerichtet ist: eine Anforderung zum Speichern einer ersten Datei als unveränderliche Datei in einem gemeinsam genutzten Speicher zu empfangen, wobei die Anforderung von einer lokalen Datenverarbeitungseinheit empfangen wird, die von dem gemeinsam genutzten Speicher entfernt ist; mindestens eine zweite Datei zu erkennen, die in dem gemeinsam genutzten Speicher gespeichert und in Bezug auf die erste Datei redundant ist; zu ermitteln, ob die mindestens eine zweite Datei veränderlich oder unveränderlich ist; die erste Datei als Masterkopie zu speichern, wenn die mindestens eine zweite Datei veränderlich ist, und Ersetzen jeder der mindestens einen zweiten Datei durch einen entsprechenden bedingten Link, der auf die Masterkopie verweist; und wenn die mindestens eine zweite Datei unveränderlich ist: eine Datei mit einem spätesten Ablauftermin aus einer Gruppe zu erkennen, die die erste Datei und die mindestens eine zweite Datei aufweist; die Datei mit dem spätesten Ablauftermin als Masterkopie zu speichern; und jede Datei in der Gruppe mit Ausnahme der Datei mit dem spätesten Ablauftermin durch eine entsprechende Datenstruktur zu ersetzen, die auf die Masterkopie verweist, wobei der bedingte Link Daten aufweist, der den früheren Ablauftermin definiert, und die mindestens eine zweite Datei einen früheren Ablauftermin aufweist, und das Ersetzen ein Löschen einer gespeicherten Kopie der mindesten einen zweiten Datei aufweist.
  17. Computerprogrammprodukt nach Anspruch 16, wobei das Erkennen der mindestens einen zweiten Datei ein Vergleichen eines Hash-Wertes der ersten Datei mit Hash-Werten anderer in dem gemeinsam genutzten Speicher gespeicherter Dateien aufweist.
  18. Verfahren zum Deduplizieren von Dateien, wobei das Verfahren aufweist: Bereitstellen einer Computer-Infrastruktur, die eingerichtet ist: eine Anforderung zum Speichern einer ersten Datei als unveränderliche Datei in einem gemeinsam genutzten Speicher zu empfangen, wobei die Anforderung von einer lokalen Datenverarbeitungseinheit empfangen wird, die von dem gemeinsam genutzten Speicher entfernt ist; eine Mehrzahl zweiter Dateien zu ermitteln, die in Bezug auf die erste Datei redundant sind; zu ermitteln, ob eine erste Teilmenge der Mehrzahl zweiter Dateien veränderlich ist; zu ermitteln, ob eine zweite Teilmenge der Mehrzahl zweiter Dateien unveränderlich ist; eine Datei mit einem spätesten Ablauftermin aus einer Gruppe zu erkennen, die die erste Datei und die zweite Teilmenge aufweist; die Datei mit dem spätesten Ablauftermin als Masterkopie zu speichern; und jede Datei in der Gruppe mit Ausnahme der Datei mit dem spätesten Ablauftermin durch einen entsprechenden bedingten Link zu ersetzen, der auf die Masterkopie verweist, wobei jede Datei in der Gruppe unveränderlich ist, der entsprechende bedingten Link Daten aufweist, der einen früheren Ablauftermin definiert, und das Ersetzen ein Löschen einer gespeicherten Kopie jeder Datei in der Gruppe mit Ausnahme der Datei aufweist, die den letzten Ablauftermin aufweist.
  19. Verfahren nach Anspruch 18, wobei das Ermitteln der Mehrzahl zweiter Dateien, die zu der ersten Datei redundant sind, ein Vergleichen eines Hash-Wertes der ersten Datei mit Hash-Werten anderer in dem gemeinsam genutzten Speicher gespeicherter Dateien aufweist.
  20. Computersystem zum Deduplizieren von Dateien, wobei das System aufweist: eine CPU, einen computerlesbaren Speicher und ein computerlesbares Speichermedium; erste Programmanweisungen zum Empfangen einer Anforderung zum Speichern einer ersten Datei als unveränderliche Datei in einem gemeinsam genutzten Speicher, wobei die Anforderung von einer lokalen Datenverarbeitungseinheit empfangen wird, die von dem gemeinsam genutzten Speicher entfernt ist; zweite Programmanweisungen zum Ermitteln einer Mehrzahl zweiter Dateien, die unveränderlich und in Bezug auf die erste Datei redundant sind; dritte Programmanweisungen zum Erkennen einer Datei mit einem spätesten Ablauftermin aus einer Gruppe, die die erste Datei und die Mehrzahl zweiter Dateien aufweist; vierte Programmanweisungen zum Speichern der Datei mit dem spätesten Ablauftermin als Masterkopie; und fünfte Programmanweisungen zum Ersetzen jeder Datei in der Gruppe mit Ausnahme der Datei mit dem spätesten Ablauftermin durch eine entsprechende Datenstruktur, die auf die Masterkopie verweist; wobei die ersten, zweiten, dritten, vierten und fünften Programmanweisungen auf dem computerlesbaren Speichermedium gespeichert sind, um über den computerlesbaren Speicher durch die CPU ausgeführt zu werden; und wobei das Ermitteln der Mehrzahl zweiter Dateien, die unveränderlich und in Bezug auf die erste Datei redundant sind, aufweist: Ermitteln mindestens einer potenziell redundanten Datei durch Vergleichen eines Hash-Wertes der ersten Datei mit Hash-Werten anderer in dem gemeinsam genutzten Speicher gespeicherter Dateien; und Vergleichen der ersten Datei mit der mindestens einen potenziell redundanten Datei unter Verwendung eines Dateiunterscheidungsprozesses, wobei jede Datei in der Gruppe unveränderlich ist, jede der entsprechenden Datenstrukturen einen bedingten Link aufweist, der Daten aufweist, die einen früheren Ablauftermin definieren, und das Ersetzen ein Löschen einer gespeicherten Kopie jeder Datei in der Gruppe mit Ausnahme der Datei aufweist, die den letzten Ablauftermin aufweist.
  21. Computersystem nach Anspruch 20, wobei es sich bei dem spätesten Ablauftermin um einen Ablauftermin für die Unveränderlichkeit handelt.
DE112012005037.1T 2011-12-02 2012-09-06 Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds Active DE112012005037B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/310,007 2011-12-02
US13/310,007 US8468138B1 (en) 2011-12-02 2011-12-02 Managing redundant immutable files using deduplication in storage clouds
PCT/CN2012/081032 WO2013078895A1 (en) 2011-12-02 2012-09-06 Managing redundant immutable files using deduplication in storage clouds

Publications (2)

Publication Number Publication Date
DE112012005037T5 DE112012005037T5 (de) 2014-08-14
DE112012005037B4 true DE112012005037B4 (de) 2018-11-15

Family

ID=48524758

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012005037.1T Active DE112012005037B4 (de) 2011-12-02 2012-09-06 Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds

Country Status (4)

Country Link
US (4) US8468138B1 (de)
CN (1) CN103959264B (de)
DE (1) DE112012005037B4 (de)
WO (1) WO2013078895A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886742B2 (en) * 2011-01-28 2014-11-11 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US9779103B2 (en) * 2012-04-23 2017-10-03 International Business Machines Corporation Preserving redundancy in data deduplication systems
US9262428B2 (en) 2012-04-23 2016-02-16 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual address
US8996881B2 (en) 2012-04-23 2015-03-31 International Business Machines Corporation Preserving redundancy in data deduplication systems by encryption
US10133747B2 (en) 2012-04-23 2018-11-20 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual device
US10482064B2 (en) * 2012-06-26 2019-11-19 Oracle International Corporations De-duplicating immutable data at runtime
US9582386B2 (en) 2013-03-15 2017-02-28 Cloudendure, Ltd. System and method for maintaining a copy of a cloud-based computing environment and restoration thereof
US10191823B2 (en) 2014-03-11 2019-01-29 Cloudendure Ltd. System and method for restoring original machines from replicated machines in a secondary computing environment
WO2015084308A1 (en) * 2013-12-02 2015-06-11 Empire Technology Development, Llc Computing resource provisioning based on deduplication
CN104361034A (zh) * 2014-10-27 2015-02-18 浪潮(北京)电子信息产业有限公司 一种云存储的文件管理方法及装置
CN106339309B (zh) * 2015-07-14 2020-01-31 腾讯科技(深圳)有限公司 应用程序的测试方法、客户端及系统
CN105915626B (zh) * 2016-05-27 2019-02-26 南京邮电大学 一种面向云存储的数据副本初始放置方法
US10554746B2 (en) 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
US10706082B1 (en) 2017-06-29 2020-07-07 Seagate Technology Llc Deduplication database management
US11429587B1 (en) 2017-06-29 2022-08-30 Seagate Technology Llc Multiple duration deduplication entries
US10789002B1 (en) * 2017-10-23 2020-09-29 EMC IP Holding Company LLC Hybrid data deduplication for elastic cloud storage devices
CN110019053B (zh) * 2017-11-02 2022-04-01 福建天晴数码有限公司 一种Unity3D资源包冗余数据检测方法及终端
US10713238B2 (en) 2017-11-14 2020-07-14 Snowflake Inc. Database metadata in immutable storage
CN108052291A (zh) * 2017-12-14 2018-05-18 郑州云海信息技术有限公司 一种云服务器的存储方法、系统、装置及可读存储介质
US10733454B2 (en) * 2018-06-29 2020-08-04 Hewlett Packard Enterprise Development Lp Transformation of video streams
CN109582642A (zh) * 2018-11-08 2019-04-05 网宿科技股份有限公司 文件存储方法、删除方法、服务器及存储介质
US10649676B1 (en) 2018-12-28 2020-05-12 Microsoft Technology Licensing, Llc Memory compression for immutable data structures
US11093292B2 (en) 2019-09-27 2021-08-17 International Business Machines Corporation Identifying recurring actions in a hybrid integration platform to control resource usage
US20210272035A1 (en) * 2020-02-28 2021-09-02 Uber Technologies, Inc. Storage location selection according to query evaluation
US11436134B2 (en) * 2020-07-09 2022-09-06 Jpmorgan Chase Bank, N.A. Method and apparatus for data integration framework
US11314433B1 (en) 2020-11-20 2022-04-26 Seagate Technology Llc Remote deduplication of data in a storage system
US11934378B2 (en) 2021-03-11 2024-03-19 International Business Machines Corporation Recording changes to records whilst preserving record immutability
CN113505109A (zh) * 2021-07-27 2021-10-15 北京字节跳动网络技术有限公司 文件共享方法、装置、计算机设备以及存储介质
US11829240B2 (en) 2022-01-06 2023-11-28 Red Hat, Inc. Preventing duplication of files in a storage device
US20230315678A1 (en) * 2022-03-29 2023-10-05 International Business Machines Corporation Storage driver for managing a multiple layer file system on the cloud
US11947498B2 (en) * 2022-05-12 2024-04-02 International Business Machines Corporation De-duplication of data in executable files in a container image

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064166A1 (en) * 2008-09-11 2010-03-11 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US20110138144A1 (en) * 2009-12-04 2011-06-09 Fujitsu Limited Computer program, apparatus, and method for managing data

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366933B1 (en) * 1995-10-27 2002-04-02 At&T Corp. Method and apparatus for tracking and viewing changes on the web
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6438560B1 (en) 1999-09-16 2002-08-20 International Business Machines Corporation Reuse of immutable objects during object creation
KR100533671B1 (ko) * 2003-06-05 2005-12-05 삼성전자주식회사 효율적인 멀티미디어 컨텐츠 관리 장치 및 방법
US8121985B2 (en) * 2005-10-24 2012-02-21 Sap Aktiengesellschaft Delta versioning for learning objects
US8165221B2 (en) 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
CN100565512C (zh) 2006-07-10 2009-12-02 腾讯科技(深圳)有限公司 消除文件存储系统中冗余文件的系统及方法
CN101809559B (zh) 2007-09-05 2013-10-16 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
JP5044816B2 (ja) 2007-09-06 2012-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトを記憶・管理するシステム
US8548953B2 (en) * 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US7979670B2 (en) * 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US7899850B2 (en) 2008-02-22 2011-03-01 Bycast, Inc. Relational objects for the optimized management of fixed-content storage systems
US8352540B2 (en) * 2008-03-06 2013-01-08 International Business Machines Corporation Distinguishing data streams to enhance data storage efficiency
US8234317B1 (en) * 2008-08-06 2012-07-31 Netapp, Inc. Auto-committing files to immutable status based on a change log of file system activity
US8316064B2 (en) 2008-08-25 2012-11-20 Emc Corporation Method and apparatus for managing data objects of a data storage system
CA2747746C (en) 2008-12-22 2015-08-11 Google Inc. Asynchronous distributed de-duplication for replicated content addressable storage clusters
US20100306176A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. Deduplication of files
US9176978B2 (en) 2009-02-05 2015-11-03 Roderick B. Wideman Classifying data for deduplication and storage
US8224792B2 (en) * 2009-08-28 2012-07-17 International Business Machines Corporation Generation of realistic file content changes for deduplication testing
US8516137B2 (en) * 2009-11-16 2013-08-20 Microsoft Corporation Managing virtual hard drives as blobs
US8250325B2 (en) * 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
JP5650982B2 (ja) * 2010-10-25 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファイルの重複を排除する装置及び方法
CN102055797A (zh) 2010-11-29 2011-05-11 北京卓微天成科技咨询有限公司 一种云存储的数据存取的方法、装置及系统
TWI404893B (zh) * 2011-05-13 2013-08-11 南臺科技大學 無導光板之led發光構造
US8706703B2 (en) * 2011-06-27 2014-04-22 International Business Machines Corporation Efficient file system object-based deduplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064166A1 (en) * 2008-09-11 2010-03-11 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US20110138144A1 (en) * 2009-12-04 2011-06-09 Fujitsu Limited Computer program, apparatus, and method for managing data

Also Published As

Publication number Publication date
US20150317328A1 (en) 2015-11-05
CN103959264A (zh) 2014-07-30
US9514145B2 (en) 2016-12-06
WO2013078895A1 (en) 2013-06-06
DE112012005037T5 (de) 2014-08-14
US20130246357A1 (en) 2013-09-19
US9158783B2 (en) 2015-10-13
CN103959264B (zh) 2017-03-29
US8892521B2 (en) 2014-11-18
US20130144846A1 (en) 2013-06-06
US20150039570A1 (en) 2015-02-05
US8468138B1 (en) 2013-06-18

Similar Documents

Publication Publication Date Title
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE112012005275B4 (de) Datenauswahl zur Sicherung von Datenspeichern
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112012005032T5 (de) Entfernen der Datenremanenz in deduplizierten Speicher-Clouds
DE102016013248A1 (de) Bezugsblockansammlung in einer Bezugsmenge zur Deduplizierung beim Speichermanagement
DE102013208930B4 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
DE112019000321T5 (de) Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen
DE112016003626T5 (de) Natürlichsprachliche Schnittstelle zu Datenbanken
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE202009019149U1 (de) Asynchron verteilte Speicherbereinigung für replizierte Speichercluster
DE202009019139U1 (de) Asynchron verteilte Deduplizierung für replizierte inhaltsadressierte Speichercluster
DE202015009777U1 (de) Transparente Entdeckung eines semistrukturierten Datenschemas
DE102013216273A1 (de) Umwandlung von Datenbanktabellenformaten auf der Grundlage von Benutzerdatenzugriffsmustern in einer vernetzten Datenverarbeitungsumgebung
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE102016119298A1 (de) Zeitpunktkopieren mit klonen von ketten
DE102014116369A1 (de) Verwaltung von sprachmarkern bei internationaler datenspeicherung
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112019001433T5 (de) Datenanonymisierung
DE102021123135A1 (de) Leistungs- und upgrade-verwaltung für anlagegüter mit hilfe von digitalen zwillingen
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER, PATENTANWA, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013000000

Ipc: G06F0017300000

Effective date: 20140714

R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000