DE102004056651A1 - Verfahren und Einrichtung zur Datenarchivierung in einem Datenspeichersystem - Google Patents

Verfahren und Einrichtung zur Datenarchivierung in einem Datenspeichersystem Download PDF

Info

Publication number
DE102004056651A1
DE102004056651A1 DE200410056651 DE102004056651A DE102004056651A1 DE 102004056651 A1 DE102004056651 A1 DE 102004056651A1 DE 200410056651 DE200410056651 DE 200410056651 DE 102004056651 A DE102004056651 A DE 102004056651A DE 102004056651 A1 DE102004056651 A1 DE 102004056651A1
Authority
DE
Germany
Prior art keywords
data
storage system
cdf
host
blob
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.)
Ceased
Application number
DE200410056651
Other languages
English (en)
Inventor
Michael Harvard Kilian
Mark Weston Avery
Stephen Shrewsbury Todd
Tom Teugels
Francis Martens
Jan Bruyndonckx
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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Publication of DE102004056651A1 publication Critical patent/DE102004056651A1/de
Ceased legal-status Critical Current

Links

Classifications

    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

Es wird ein System und ein Verfahren zur Aufbewahrung von Daten bei einem Speichersystem geschaffen. Ein Anwendungsprogramm liefert an ein Speichersystem Daten, die in dem Speichersystem gespeichert werden sollen. Das Anwendungsprogramm versorgt das Speichersystem auch mit einer Aufbewahrungsperiode, die eine Zeitperiode angibt, während welcher die Daten nicht weggelassen oder gelöscht werden dürfen. Wenn das Speichersystem eine Anfrage zum Weglassen oder Löschen der Daten empfängt, bewertet dieses zuerst die Aufbewahrungsperiode, die diesen Daten zugeordnet ist, um zu bestimmen, ob die Aufbewahrungsperiode verstrichen ist. Wenn die Aufbewahrungsperiode nicht verstrichen ist, verneint das Speichersystem die Anfrage zum Weglassen der Daten.

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein ein Datenspeichersystem und spezieller ein Verfahren und eine Einrichtung zur Datenarchivierung in einem Datenspeichersystem.
  • 2. Erläuterung des Standes der Technik
  • Geschäfts- und andere Institutionen, wie beispielsweise Hospitäler, Schulen und Regierungsagenturen, verwenden häufig Datenspeichersysteme, um Aufzeichnung in elektronischer Form zu archivieren. Solche Aufzeichnungen können beispielsweise Finanzgesellschaftsaufzeichnungen, elektronische Post (E-Mail), medizinische Patientenaufzeichnungen, Studententranskripte und andere Typen an Daten enthalten. Es kann für eine Geschäftsinstitution oder Institution wichtig sein, diese Aufzeichnungen in ihrer originalen Form zu archivieren, und zwar für eine bestimmte Zeitperiode nach deren Erzeugung. Das heißt, bei einer Geschäftsinstitution oder Institution kann es wünschenswert sein, zu verhindern, dass die Aufzeichnungen gelöscht werden oder modifiziert werden, und zwar bis eine vorbestimmte Zeitperiode verstrichen ist. Beispielsweise kann ein Krankenhaus wünschen, eine Modifikation oder Löschung von Patienten-Röntgenstrahlaufnahmen (Behandlungen) für eine bestimmte Anzahl von Jahren zu verhindern, nachdem die Röntgenstrahlbehandlung stattgefunden hat. Ferner kann solch eine Archivierung der Daten auch gesetzmäßig gefordert sein. Beispielsweise erfordern Sicherheitseinrichtungen und Austauschkommissionsregeln (SEC) 17a-4, dass Gesellschaften bestimmte finanzielle Aufzeichnungen für eine Periode von sechs Jahren aufbewahren sollen.
  • Mit Hilfe von herkömmlichen Speichersystemen können Anwender zufällig solche Aufzeichnungen löschen oder modifizieren. Alternativ können böswillige Anwender absichtlich solche Aufzeichnungen löschen oder modifizieren, beispielsweise zur Verheimlichung von skrupellosen Geschäftspraktiken oder um unehrenhaft Schulabschriften zu ändern. Ob nun beabsichtigt oder unbeabsichtigt, können solche Aktionen einen irreparablen Verlust von Daten verursachen oder sogar eine Gesetzesverletzung verursachen. Während einige Computersysteme ein Dateisystem-Vorfeld enthalten (häufiger an einem Hostcomputer als an einem Speichersystem), welches die Möglichkeit bietet, Dateien als "lediglich zum Lesen" zu bezeichnen, kann ein Administrator des Systems in typischer Weise den "Nur-Lese"-Status von Dateien ändern, und zwar in solcher Weise, dass die Dateien modifiziert oder gelöscht werden können. Ferner erlauben es herkömmliche Ablagesysteme einem Anwender nicht, eine Zeitperiode zu spezifizieren, für die die Daten nicht gelöscht oder modifiziert werden können. Das heißt, die Bezeichnung einer Datei als "nur zum Lesen" bedeutet, dass die Datei gelöscht oder modifiziert werden kann, solange als der Nur-Lese-Status der Datei nicht geändert wird.
  • Einige Speichersysteme speichern Daten auf Aufzeichnungsmedien, z. B. auf optischen Platten (wie beispielsweise CD-ROM-Platten), die nicht überschrieben oder modifiziert werden können. Jedoch ermöglichen es solche Systeme einem Anwender nicht, eine Aufbewahrungsperiode zu spezifizieren, da, sobald Daten in die Medien eingeschrieben worden sind, die niemals mehr von den Medien gelöscht werden können, obwohl die Medien physikalisch zerstört werden können, um einen Zugriff auf die Daten zu verhindern. Solche Medien sind nicht wiederverwendbar, wenn es jemals gewünscht werden sollte, die Daten auf den Medien mit neuen Daten zu, ersetzen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine veranschaulichende Ausführungsform betrifft ein Verfahren zum Verarbeiten von Daten in einem Computersystem mit wenigstens einem Host- und wenigstens einem Speichersystem. Das Verfahren umfasst die folgenden Aktionen: (A) Empfangen einer Anfrage von einem Host, eine Einheit von Daten, die in dem Speichersystem gespeichert sind, wegzulassen; (B) Bestimmen, ob die an früherer Stelle definierte Aufbewahrungsperiode für die Einheit der Daten verstrichen ist; und (C) wenn bei dem Vorgang (B) bestimmt wird, dass die Aufbewahrungsperiode für die Einheit der Daten noch nicht verstrichen ist, Ablehnen der Anfrage nach Weglassen der Einheit der Daten. Eine andere veranschaulichende Ausführungsform betrifft wenigstens ein computerlesbares Medium, welches mit Befehlen kodiert ist, die dann, wenn sie auf einem Computersystem ausgeführt werden, das oben beschriebene Verfahren durchführen.
  • Eine weitere veranschaulichende Ausführungsform richtet sich auf ein Speichersystem für die Verwendung in einem Computersystem mit wenigstens einem Host- und einem Speichersystem. Das Speichersystem umfasst folgendes: wenigstens eine Speichervorrichtung zum Speichern von Daten, die von wenigstens einem Host empfangen werden; und wenigstens einen Controller. Der wenigstens eine Controller empfängt eine Anfrage von dem Host, um eine Einheit der Daten wegzulassen, die in dem Speichersystem gespeichert sind; es wird bestimmt, ob eine an früherer Stelle definierte Aufbewahrungsperiode für die Einheit der Daten verstrichen ist; und, wenn bestimmt wird, dass die Aufbewahrungsperiode für die Einheit der Daten noch nicht verstrichen ist, Ablehnen der Anfrage, die Einheit der Daten wegzulassen.
  • Eine andere veranschaulichende Ausführungsform betrifft ein Speichersystem für die Verwendung in einem Computersystem, mit wenigstens einem Host und einem Speichersystem. Das Speichersystem umfasst wenigstens eine Speichervorrichtung zum Speichern von Daten, die von wenigstens dem einen Host empfangen werden; und wenigstens einen Controller. Der wenigstens eine Controller empfängt wenigstens eine Anfrage von dem Host, um eine Einheit der Daten in dem Speichersystem solange zu speichern, bis eine Aufbewahrungsperiode verstrichen ist, die in der wenigstens einen Anfrage spezifiziert ist; es wird dann die Einheit der Daten in der wenigstens einen Speichervorrichtung gespeichert; und es werden Informationen gespeichert, welche die Aufbewahrungsperiode in der wenigstens einen Speichervorrichtung spezifizieren.
  • Eine weitere veranschaulichende Ausführungsform betrifft ein Verfahren zum Verarbeiten von Daten in einem Computersystem mit wenigstens einem Host und wenigstens einem Speichersystem. Das Verfahren umfasst die folgenden Aktionen: (A) Senden von wenigstens einer Anfrage von dem Host zu dem Speichersystem mit der Anfrage, dass das Speichersystem eine Dateneinheit speichern soll, und zwar bis wenigstens eine Aufbewahrungsperiode verstrichen ist, die in der wenigstens einen Anfrage spezifiziert ist.
  • Eine andere veranschaulichende Ausführungsform betrifft ein Verfahren zur Verwendung in einem Computersystem mit wenigstens einem Host und wenigstens einem inhaltsmäßig adressierbaren Speichersystem, welches wenigstens zwei verschiedene Typen an Dateneinheiten inklusive von Blobs an Daten und Inhaltsdeskriptordateien (CDF), welcher den Blobs entspricht, wobei jede CDF Metadaten enthält, welche auf den entsprechenden Blob bezogen sind, wobei jeder der Blobs und der CDFs von wenigstens einem Hostcomputer zugreifbar ist, und zwar unter Verwendung eines Identifizierers, der basierend auf einem Inhalt von einem der Blobs und der CDFs generiert wird. Das Verfahren umfasst die folgende Aktion: (A) Vorsehen von wenigstens einem Informationsteil in dem Identifizierer für jede Dateneinheit, um eine Identifizierung durchzuführen, ob die identifizierte Dateneinheit ein Blob oder eine CDF ist.
  • Eine weitere veranschaulichende Ausführungsform betrifft ein Verfahren zum Verarbeiten von Daten in einem Computersystem mit wenigstens einem Host und mit wenigstens einem inhaltsmäßig adressierten Speichersystem, welches wenigstens zwei unterschiedliche Typen an Dateneinheiten speichert, inklusive einem Blob an Daten und einer Inhaltsdeskriptordatei (CDF), die dem Blob entspricht, und welche einen Blob/CDF-Satz mit dem Blob bildet, wobei die CDF Metadaten enthält, die auf den entsprechenden Blob bezogen sind, jeder der Blobs und jede der CDFs von wenigstens einem Hostcomputer aus zugreifbar ist, und zwar unter Verwendung eines Identifizierers, der basierend auf einem Inhalt von einem der Blobs und der CDFs generiert wird, wobei das Speichersystem eine Datensalat-Sammelfähigkeit hat, gemäß welchem Blobs weggelassen werden oder gelöscht werden, jedoch lediglich, nachdem die entsprechende CDF weggelassen worden ist, so dass der Blob keine entsprechende CDF mehr besitzt. Das Verfahren umfasst die folgende Aktion: Vorsehen des Hosts mit wenigstens zwei Optionen zum Weglassen von wenigstens einer Größe entsprechend einem Blob und der CDF in einem Blob/CDF-Satz, wobei die wenigstens zwei Optionen sich hinsichtlich der Bezeichnung unterscheiden, in welchem Ausmaß die Verarbeitung der Weglassung von vornherein durchgeführt wird, und zwar im Ansprechen auf eine Weglassanfrage, und in welchem Ausmaß die Verarbeitung der Weglassung belassen oder zurückgelassen wird, und zwar für die Datenmüll- oder Datensalat-Sammelfähigkeit.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen zeigen:
  • 1 ein Blockschaltbild eines als Beispiel gewählten Computersystems, auf welchem die Ausführungsformen der Erfindung implementiert werden können;
  • 2 ein Diagramm, welches die Erzeugung von Inhaltsadressen veranschaulicht, im Einklang mit einer Ausführungsform der Erfindung;
  • 3 ein Blockschaltbild, welches eine beispielhafte An wiedergibt, in welcher Daten in einem Speichersystem gespeichert werden können, entsprechend einer Ausführungsform der Erfindung; und
  • 4 ein Flussdiagramm, welches einen Prozess veranschaulicht, durch den Daten von einem Speichersystem weggelassen werden, in Einklang mit einer Ausführungsform der Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • Verschiedene Ausführungsformen der vorliegenden Erfindung betreffen Verfahren und ein Gerät zur Verwendung in einem Computersystem, welches ein Speichersystem und einen Hostcomputer enthält, die kommunizieren, um Operationen in Verbindung mit Daten durchzuführen. Beispielsweise kann das Speichersystem Daten speichern (schreiben) und zwar im Ansprechen auf eine Anfrage von dem Hostcomputer, um Daten zu speichern, gespeicherte Daten zurückzuleiten (zu lesen), und zwar im Ansprechen auf eine Anfrage von dem Hostcomputer nach den gespeicherten Daten, und wobei das Speichersystem auch Daten weglassen kann, und zwar im Ansprechen auf eine Anfrage von dem Hostcomputer, um die Daten wegzulassen.
  • Wenn bei einer Ausführungsform der Erfindung eine Anfrage zu dem Speichersystem zur Speicherung von Daten gesendet wird, kann ein Hostcomputer (der hier als irgendein Computer definiert wird, welcher die Fähigkeit hat, Daten in ein Speichersystem einzuschreiben) das Speichersystem vorsehen, und zwar mit den Daten, die gespeichert werden sollen und mit einer Aufbewahrungsperiode, die den zu speichernden Daten zugeordnet wird. Die Aufbewahrungsperiode kann beispielsweise eine Zeitperiode definieren, in welcher die Daten nicht gelöscht oder modifiziert werden können. Das Speichersystem kann die Daten speichern und auch deren zugeordnete Aufbewahrungsperiode. Wenn das Speichersystem später eine Anfrage von einem Hostcomputer empfängt, dahingehend, die Daten zu löschen oder zu modifizieren, kann das Speichersystem zuerst die gespeicherte Aufbewahrungsperiode bewerten, die den Daten zugeordnet ist, um zu bestimmen, ob die Aufbewahrungsperiode verstrichen ist. Wenn die Aufbewahrungsperiode nicht verstrichen ist, löscht das Speichersystem die Daten nicht oder modifiziert diese auch nicht. Auf diese Weise stellt das Speichersystem sicher, wenn eine Aufbewahrungsperiode einmal für eine Einheit von Daten erstellt worden ist, dass die Einheit der Daten aufbewahrt wird, und zwar in einem unmodifizierten Zustand für die volle Aufbewahrungsperiode.
  • Ein beispielhaftes System, bei dem vielfältige Ausführungsformen der Erfindung implementiert werden können, ist in 1 gezeigt. 1 zeigt ein Speichersystem 101, welches mit einer Vielzahl an Hosts 105a, 105b, ... 105n über ein Netzwerk 103 kommuniziert. Der hierbei verwendete Ausdruck "Netzwerk" (z. B. Netzwerk 103) bezeichnet eine Gruppe von zwei oder mehr Vorrichtungen, die durch ein oder mehrere Segmente eines Übertragungsmediums verbunden sind, über welches oder über welche Kommunikationen zwischen den Vorrichtungen ausgetauscht werden können. Jedes Segment kann aus irgendeiner Vielzahl an Typen von Übertragungsmedien bestehen, inklusive einem oder mehreren elektrischen oder optischen Drähte oder Kabeln, die aus Metall und/oder einer optischen Faser, Luft (z. B. unter Verwendung einer Funkübertragung über Trägerwellen) oder aus irgendeiner Kombination dieser Übertragungsmedien.
  • Das Speichersystem 101 kann eine oder mehrere Speichervorrichtungen (z. B. Plattenlaufwerke) enthalten, um Anwendungen, Anwendungsdaten, Anwenderdaten und Ähnliches in dem Computersystem zu speichern. Das Speichersystem 101 kann durch die Hosts 105 zugegriffen werden, und zwar zum Zwecke einer Speicherung, Wiederauffindung oder Durchführen von Operationen an Daten, die in dem Speichersystem 101 gespeichert sind. Es sei darauf hingewiesen, dass das Speichersystem 101 aus einer Vorrichtung bestehen kann, die primär für die Datenspeicherung verwendet wird, oder auch aus einer Vorrichtung bestehen kann, die verschiedene andere Funktionen ausführt, wie beispielsweise Anwender-Anwendungen, ausführt. Das heißt, das Speichersystem 101 kann aus irgendeiner Vorrichtung bestehen, die dafür ausgelegt ist, Daten zu speichern und wieder aufzufinden.
  • Die Hosts 105 können beispielsweise aus Servern bestehen, die Ressourcen liefern (z. B. Datenspeicher, E-Mail und andere Server), oder aus Clients (z. B. Computersysteme für allgemeine Zwecke, die durch einen Anwender betrieben werden), Netzwerkkomponenten (z. B. Schalter) oder irgendwelche andere Typen eines Computers. Die Hosts 105 sind über das Netzwerk 103 an das Speichersystem 101 gekoppelt, so dass die Hosts 105 das Speichersystem 101 verwenden können, um Daten zu speichern und wieder aufzufinden.
  • Es sei darauf hingewiesen, dass die Speicherkonfiguration, die in 1 gezeigt ist, lediglich ein Beispiel von Typen an Systemen darstellt, bei denen Aspekte der vorliegenden Erfindung implementiert werden können, so dass die Erfindung nicht auf die Verwendung irgendeines speziellen Typs einer Systemkonfiguration eingeschränkt ist. Beispielsweise brauchen auch nicht eine Vielzahl von Hosts an ein einzelnes Speichersystem angeschlossen zu sein und es können irgendeine Vielzahl von anderen Typen einer Verbindung (z. B. direkte Verbindungen) zusätzlich zu einem Netzwerk oder anstelle des Netzwerkes verwendet werden.
  • Der Host 105 kann Daten in dem Speichersystem 101 in irgendeiner von vielfältigen Wegen zugreifen, gemäß den Aspekten der vorliegenden Erfindung, wie sie hier beschrieben werden, die nicht auf einen speziellen Typ einer Systemkonfiguration beschränkt sind. Beispielsweise speichern in einigen Computersystemen Anwendungsprogramme, die an dem Host 105 ausgeführt werden, Informationen in Dateien, die durch ein Dateisystem gemanagt werden (z. B. ausgeführt an dem Host 105). Das Dateisystem legt Pläne über die Namen von jeder speziellen Datei an, und zwar in einem oder in mehreren Volumen bzw. Volumina, uns Speicherblöcke, um Daten innerhalb der Datei zu speichern. Die logischen Volumina können direkt physikalischen Speichervorrichtungen entsprechen, die in dem Speichersystem 101 vorgesehen sind oder, wenn das Speichersystem 101 aus einem intelligenten Speichersystem besteht, kann das Speichersystem irgendeine Ebene einer Kartografierung durchführen, und zwar zwischen den logischen Volumina, die den Hosts 105 angeboten werden und den aktuellen oder tatsächlichen physikalischen Speichervorrichtungen innerhalb des Speichersystems 101.
  • Eine weiter unten erläuterte Ausführungsform der vorliegenden Erfindung ist dafür ausgelegt, um in einem Computersystem verwendet zu werden, und zwar eines Typs, wie dieser in den parallel laufenden Anmeldungen mit den Seriennummern 09/236,366 beschrieben ist, mit dem Titel "Content Addressable Information Encapsulation, Representation, and Transfer", eingereicht am 21. Januar 1999, ferner 09/235,146 mit dem Titel "Access to Content Addressable Data Over a Network", eingereicht am 21. Januar 1999, und 09/391,360 mit dem Titel System und Verfahren für eine sichere Speicherung, Transfer und wieder Auffinden von inhaltsadressierbaren Informationen, eingereicht am 7. September 1999, von denen jede hier unter Bezugnahme voll mit einbezogen wird. Diese Anmeldungen betreffen inhaltsadressierbare Speicher (CAS) und werden kollektiv als "CAS-Anwendungen" bezeichnet.
  • Bei dem inhaltsadressierbaren System werden Daten unter Verwendung einer Inhaltsadresse gespeichert, die basierend auf dem Inhalt der Daten selbst erzeugt wird. Die Inhaltsadresse kann dadurch erzeugt werden, indem eine Hash-Funktion an den gespeicherten Daten durchgeführt wird. Die Ausgangsgröße der Hash-Funktion ist dann die Inhaltsadresse, die bei der Kommunikation zwischen dem Host und dem Speichersystem benutzt werden kann, um Daten zu bezeichnen. Die Inhaltsadresse kann abgebildet (mapped) werden (z. B. innerhalb des Speichersystems 101), und zwar zu einer oder mehreren physikalischen Speicherstellen innerhalb des Speichersystems. Die Verwendung der Inhaltsadressierung wird speziell bei Anwendungen eingesetzt, bei denen gespeicherte Informationen sich nicht ändern (das heißt festlegende Inhaltsdaten), wie beispielsweise vielfältige Typen an Aufzeichnungen, wie sie oben erläutert sind.
  • Ein Beispiel einer Hash-Funktion, die beim Erzeugen der Inhaltsadresse verwendet werden kann, ist das Message Digest 5 (MD5). Die Inhaltsadresse kann direkt dem Ergebnis der Hash-Funktion des Inhaltes entsprechen oder es können zusätzliche Informationen zu dem Hash-Ergebnis hinzuaddiert werden, um die Adresse zu generieren. Bei einer Ausführungsform werden Informationen, die angeben, ob der Inhalt, der gespeichert wird, aus Hostdaten oder Metadaten besteht, welche den Hostdaten zugeordnet sind, zu dem Hash-Ergebnis addiert werden, und zwar dem Hash-Ergebnis des Inhaltes, um die Inhaltsadresse zu generieren. Diese zusätzlichen Informationen sind bei den weiter unten beschriebenen Möglichkeiten nützlich. Es sei darauf hingewiesen, dass irgendein Typ einer Hash-Funktion verwendet werden kann, da die Aspekte der Erfindung, wie sie hier beschrieben werden, nicht auf die Verwendung irgendeines Typs einer Hash-Funktion beschränkt sind, wobei selbst die Verwendung eines inhaltsadressierbaren Systems möglich ist.
  • Wenn ein Host Daten zu dem Speichersystem sendet, um diese dort zu speichern, kann sowohl der Host als auch das Speichersystem unabhängig die Inhaltsadresse der Daten berechnen. Der Host kann die Inhaltsadresse für eine spätere Verwendung zur Wiederauffindung der Daten in dem Speichersystem zurückhalten. Wenn alternativ der Host Daten zu dem Speichersystem sendet, kann auch lediglich das Speichersystem die Inhaltsadresse berechnen und die berechnete Inhaltsadresse zu dem Host zurückleiten, und zwar für eine spätere Verwendung bei einem Zugriff auf die Daten. Gemäß einer noch anderen Alternative können sowohl das Speichersystem als auch der Host die Inhaltsadresse berechnen, das Speichersystem kann ihre erzeugte Inhaltsadresse zu dem Host zurückleiten. Der Host kann dann seine unabhängig berechnete Inhaltsadresse mit der einen vergleichen, die er von dem Speichersystem empfängt, um eine Übereinstimmung zu verifizieren.
  • Wie oben erläutert ist, kann es bei einigen Typen von feststehenden Inhaltsdaten, wie beispielsweise Patienten-Röntgenbildern oder gesellschaftlichen finanziellen Aufzeichnungen, wünschenswert sein, die Daten in ihrer originalen Form aufrecht zu erhalten, was bedeutet, dass eine Modifikation der Daten nicht zugelassen werden soll, wenn die Daten einmal in dem Speichersystem gespeichert worden sind. Bei einer Ausführungsform der Erfindung für die Verwendung mit den oben angesprochenen CAS-Anwendungen wird eine Eigenschaft des Inhaltsadressiersystems, welches in solchen Anwendungen beschrieben wird, dazu verwendet, um Modifikationen an früher eingeschriebenen Daten zu verhindern. Diese Eigenschaft ist konzeptmäßig in 2 veranschaulicht, die darstellt, dass dann, wenn ein Host Originaldaten 201 in einem Speichersystem speichert, eine Inhaltsadresse 205 für die Originaldaten durch die Hash-Funktion 203 generiert wird. Der Host kann später eine Kopie der Daten wieder auffinden, und zwar in dem Speichersystem unter Verwendung der Inhaltsadresse 205. Wenn der Host versucht, die Daten zu modifizieren und diese erneut in das Speichersystem in Form von modifizierten Daten 207 einzuschreiben, wird eine neue Inhaltsadresse 209 durch die Hash-Funktion 203 für die modifizierten Daten generiert. Da die Originaldaten 201 und die modifizierten Daten 207 verschieden sind, erzeugt die Hash-Funktion 203 unterschiedliche Inhaltsadressen für die Daten 201 und für die Daten 207. Als ein Ergebnis werden die Inhaltsadressen 205 und 209 unterschiedlichen physikalischen Stellen in der Speichervorrichtung oder den Speichervorrichtungen des Speichersystems zugeordnet. Wenn somit der Host modifizierte Daten 207 in dem Speichersystem speichert, werden diese an einer unterschiedlichen Stelle von den Originaldaten 201 gespeichert und es werden somit die Originaldaten nicht überschrieben. Es werden somit die Originaldaten 201 unmodifiziert in dem Speichersystem aufrecht erhalten.
  • Es sei darauf hingewiesen, dass die Ausführungsform der vorliegenden Erfindung, bei der die Modifikation von Daten, die einmal eingeschrieben worden sind, verhindert wird, nicht auf die Verwendung mit einem inhaltsadressierbaren System begrenzt ist, da alternative Techniken in Systemen angewendet werden können, und zwar unter Verwendung anderer Typen von Adressierschemata, um eine Modifizierung der Daten, die früher eingeschrieben worden sind, zu verhindern. Beispielsweise kann ein Host und/oder ein Dateisystem bzw. Ablagesystem das Einschreiben von früher eingeschriebenen Daten ausschließen oder ablehnen und kann die Forderung stellen, dass irgendwelche modifizierten Daten einer unterschiedlichen Speicherstelle zugeordnet werden.
  • Wie oben dargelegt wurde, kann es zusätzlich zur Verhinderung der Modifizierung von Daten wünschenswert sein, das Weglassen von Daten vor dem Ablauf der an früherer Stelle definierten Aufbewahrungsperiode zu verhindern. Eine Ausführungsform der Erfindung richtet sich auf Techniken zur Sicherstellung, dass Daten nicht während einer früher spezifizierten Aufbewahrungsperiode weggelassen werden können. Wie oben dargelegt wurde, kann eine Ausführungsform der vorliegenden Erfindung in Verbindung mit der Architektur verwendet werden, die in den CAS-Anwendungen beschrieben ist. 3 veranschaulicht die Art, in welcher Daten in Einklang mit dieser Architektur gespeichert werden.
  • Eine Einheit der Daten bei dieser Architektur wird als CAS-Anwendungen definiert und bezeichnet (z. B. Blob 303). Ein Blob 303 kann beispielsweise binäre Daten umfassen, die durch einen Host gespeichert werden sollen (z. B. dem Host 105 in
  • 1), und zwar in einem Speichersystem (z. B. dem Speichersystem 105), wie beispielsweise Patienten-Röntgenstrahlaufzeichnungen, Gesellschaftsfinanzaufzeichnungen oder andere Typen von Daten. Wenn der Blob 303 in dem inhaltsadressierbaren Speichersystem gespeichert wird, wird eine einzigartige Adresse für den Blob 303 generiert, und zwar basierend auf dessen Inhalt in der oben beschriebenen Weise.
  • Jeder Blob 303 umfasst wenigstens eine Inhaltsdeskriptordatei (CDF), welche diesem zugeordnet ist. Die CDF 301 kann Metadaten 305 und eine Vielzahl an Bezugsgrößen 307a, 307b, ... 307n enthalten. Eine CDF kann auf einen oder mehrere Blobs oder CDFs verweisen. Beispielsweise können die Verweise 307 aus Verweisen auf Blobs und/oder CDFs bestehen, die durch den CDF 301 bezeichnet werden. Die Metadaten 305 können beispielsweise Erzeugungsdaten von CDF 301 enthalten (z. B. das Datum, zu welchem die CDF 301 in dem Speichersystem gespeichert wurde) und eine Beschreibung des Inhalts des Blobs 303. In Einklang mit einer Ausführungsform der Erfindung können die Metadaten ferner Informationen enthalten, welche eine Aufbewahrungsperiode spezifizieren, die auf den zugeordneten Blob 303 bezogen sind. Die Festhalte- oder Aufbewahrungsperiode kann beispielsweise als eine Zeitperiode spezifiziert werden, und zwar vom Erzeugungsdatum des Blobs 303 ab und/oder des CDF 301 ab, während welcher der Blob 303 und die CDF 301 nicht weggelassen werden sollen. Wenn beispielsweise die Aufbewahrungsperiode, die in der CDF 301 enthalten ist, zwei Jahre beträgt, erlaubt das Speichersystem nicht das Löschen der CDF 301 und des Blobs 303 für zwei Jahre, und zwar gerechnet von dem Erzeugungsdatum, welches in den Metadaten 303 der CDF 301 enthalten ist.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung ist die Festhalteperiode oder Aufbewahrungsperiode, die in den Metadaten 305 definiert ist, direkt auf die CDF 301 bezogen und lediglich indirekt auf den Blob 303. Dieser Aspekt der Erfindung ist für die Verwendung in einer Systemarchitektur geeignet, bei der ein Host nicht direkt eine Suche durchführen kann, um direkt einen Blob 303 zu löschen oder wegzulassen (das heißt jegliche derartige Anfrage wird verneint), sondern lediglich eine Suche durchführen kann, um eine CDF 301 wegzulassen, und wobei eine Datensalat-Sammelein richtung (wird noch weiter unten mehr in Einzelheiten beschrieben) bei dem Speichersystem verwendet wird, um Blobs zu löschen, die für ein Löschen identifiziert worden sind. Ein Blob kann für ein Löschen oder Weglassen identifiziert werden, wenn keine CDFs vorhanden sind, die sich auf diesen beziehen. In dieser Hinsicht besteht ein Aspekt dieser Architektur darin, dass ein Blob solange nicht weggelassen werden kann, als er zumindest mit einer CDF 301 eine Beziehung hat, wobei aber irgendein Blob, der keine Beziehung zu einer CDF hat, weggelassen werden kann.
  • Es sei darauf hingewiesen, dass die vorliegende Erfindung nicht auf die Verwendung in einem System beschränkt ist, welches die oben beschriebene Architektur aufweist, da viele der oben beschriebenen Architekturmerkmale lediglich Implementierungseinzelheiten darstellen. Keine derselben ist erforderlich, um die vorliegende Erfindung in der Praxis zu realisieren. Anstatt, eine Festhalteperiode lediglich für eine CDF zu definieren, können beispielsweise Festhalteperioden oder Aufbewahrungsperioden alternativ direkt für einen Blob definiert werden. Wenn der Blob selbst eine Aufbewahrungsperiode mit sich führt, ist es dann möglich, Hostcomputern zu gestatten, direkt Blobs zu löschen, deren Aufbewahrungsperioden verstrichen sind.
  • Die Beschreibung des Blobs 303, der in den Metadaten 305 enthalten ist, kann Informationen enthalten, die den Inhalt des Blobs 303 beschreiben. Wenn beispielsweise der Blob 303 aus Röntgenstrahlaufzeichnungen gebildet ist, können Metadaten 305 Informationen enthalten, wie beispielsweise den Namen des Patienten, die Daten, mit denen die Röntgenstrahlaufnahmen gemacht wurden, zusätzliche Arzt-Anmerkungen, die die Röntgenstrahlaufzeichnung oder den Patienten betreffen, oder auch andere Informationen. Es sei darauf hingewiesen, dass die Typen der Metadaten, die oben angegeben sind, lediglich Beispiele an Typen von Metadaten sind, die in den Metadaten 305 der CDF 301 enthalten sein können. Tatsächlich können irgendwelche Daten, die sich auf den Blob 303 beziehen, in den Metadaten 305 enthalten sein, so dass die vorliegende Erfindung nicht in dieser Hinsicht eingeschränkt ist.
  • Die CDF 301 kann auch eine oder mehrere Bezüge oder Hinweise 307 enthalten. Diese Hinweise können beispielsweise Hinweise auf Blobs oder andere CDFs sein. Beispielsweise kann der Hinweis 307a eine Inhaltsadresse oder eine Dateisystemstelle des Blobs 303 sein, so dass die CDF 301 "auf den" Blob 303 "zeigt", und zwar über den Hinweis 307a. Somit kann der Blob 303 durch einen Host unter Verwendung der Inhaltsadresse oder der Dateisystemstelle der CDF 301 zugegriffen werden, da das Lesen der Inhalte der CDF 301 die Inhaltsadressen oder die Dateisystemstelle für den Blob 303 liefert. Bei der gezeigten Ausführungsform enthält die CDF 301 auch einen Hinweis 307b, der "auf sich selbst zeigt", das heißt der Hinweis 307b enthält die Inhaltsadresse oder die Dateisystemstelle der CDF 301. Dieser kreisförmige Bezug wird dazu vorgesehen, um eine Ausführungsform des Datensalat-Sammelprozesses zu vereinfachen, der weiter unten mehr in Einzelheiten beschrieben wird. Die vorliegende Erfindung ist jedoch nicht auf die Verwendung dieses Datensalat-Sammelprozesses beschränkt oder auch auf die Verwendung einer Kreisbezugnahme oder Hinweis in jeder CDF, da auch andere Implementierungen möglich sind. Die CDF 301 kann eine Vielzahl von anderen Hinweisen enthalten, die auf andere CDFs oder Blobs zeigen, so dass diese CDFs oder Blobs auch unter Verwendung der Inhaltsadresse der CDF 301 zugreifbar sind.
  • Bei dem Beispiel nach 3 ist lediglich eine CDF (das heißt die CDF 301) gezeigt, die "auf den" Blob 303 "zeigt". Es sei jedoch darauf hingewiesen, dass eine Vielzahl der CDFs Hinweise auf den gleichen Blob enthalten können. Das heißt, zwei oder mehrere CDFs "zeigen auf" den gleichen Blob. Wenn eine Vielzahl der CDFs Bezugsgrößen oder Hinweise auf den gleichen Blob enthalten, können diese Vielzahl an CDFs unterschiedliche Metadaten enthalten, welche unterschiedliche Erzeugungsdaten und/oder unterschiedliche Aufbewahrungsperioden enthalten. Beispielsweise kann eine CDF "auf den" Blob "zeigen" und kann eine Aufbewahrungsperiode von zwei Jahren spezifizieren, und zwar von dessen Erzeugungsdatum entsprechend dem 15. Juli 2003 an, und eine zweite kann eine Aufbewahrungsperiode von drei Jahren von dem gleichen Erzeugungsdatum ab spezifizieren. Gemäß einer Ausführungsform der Erfindung kann das Speichersystem die längste der Aufbewahrungsperioden bevorzugen. Somit erlaubt das Speichersystem am 15. Juli 2005 das Löschen oder Weglassen der ersten CDF, erlaubt jedoch nicht das Löschen oder Weglassen der zweiten CDF oder des damit in Bezug stehenden Blobs. Jedoch gestattet es das Speichersystem am 15. Juli 2006, dass die erste CDF (wenn sie nicht bereits gelöscht worden ist) gelöscht oder weggelassen werden kann und auch die zweite CDF gelöscht oder weggelassen werden kann, worauf dann das Sammeln des Datenmülls des Blobs folgt.
  • Die Ausführungsform der vorliegenden Erfindung, welche die längste Aufbewahrungsperiode verwendet, die für einen Blob spezifiziert wurde, stellt nicht sicher, dass ein Anwender eine früher spezifizierte Aufbewahrungsperiode umgehen kann, indem er einfach eine neue CDF für einen Blob erzeugt, welcher eine kürzere Aufbewahrungsperiode spezifiziert. Die längste Aufbewahrungsperiode für einen Blob wird bei einer Ausführungsform der Erfindung bevorzugt, und zwar durch die oben beschriebene Implementierung, wobei ein Blob solange nicht weggelassen werden kann, solang dieser mit irgendeiner CDF in Beziehung steht. Es sei jedoch darauf hingewiesen, dass der Aspekt der vorliegenden Erfindung, der für die Bevorzugung der längsten definierten Aufbewahrungsperiode bezogen ist, nicht auf diese Implementierung begrenzt ist, da auch andere Techniken möglich sind.
  • Wenn ein Host einen Blob in dem Speichersystem speichert, kann er das Speichersystem mit dem Blob und einer CDF versehen, die dem Blob in einer Weise zugeordnet ist, wie dies mehr in Einzelheiten weiter unten beschrieben wird. Der Host kann die Inhaltsadresse der CDF verwenden, um die CDF zuzugreifen, und kann dadurch auf die Blob-Metadaten und die Bezugsgrößen, die darin enthalten sind, zugreifen. Der Host kann dann eine Blob-Bezugsgröße verwenden (das heißt die Inhaltsadresse oder die Dateisystemstelle des Blobs), die dieser aus der CDF erhält, um auf den Blob (Daten) selbst zuzugreifen. Alternativ kann nach dem Schreiben eines Blobs der Host die Inhaltsadresse des Blobs aufbewahren und diese Inhaltsadresse dazu verwenden, um auf den Blob direkt zuzugreifen.
  • Nachdem ein Blob erzeugt worden ist, können eine oder mehrere zusätzliche CDFs erzeugt werden, die auf diesen Bezug nehmen. Dies kann beispielsweise dann ausgeführt werden, wenn es gewünscht wird, zusätzliche Metadaten dem Blob zuzuordnen, wie beispielsweise Metadaten, um die Aufbewahrungsperiode des Blobs zu erhöhen oder um zusätzliche Beschreibungsinformationen hinzuzufügen, die dem Blob zugeordnet sind. Solche zusätzlichen CDFs können entweder auf die erste CDF, den Blob selbst oder auf beide bezogen sein.
  • Bei dem oben beschriebenen Beispiel wird die Aufbewahrungsperiode als eine Zeitperiode in Jahren vom Erzeugungsdatum der CDF an spezifiziert. Es sei jedoch darauf hingewiesen, dass die Aufbewahrungsperiode in einer feineren Aufteilung spezifiziert werden kann. Beispielsweise kann die Aufbewahrungsperiode in Jahren, Monaten, Tagen, Stunden, Minuten, Sekunden oder in irgendeiner Kombination aus diesen Angaben (oder irgendwelchen anderen) Zeitlängen spezifiziert werden. Ferner kann die Aufbewahrungsperiode auch nicht als eine Zeitperiode vom Erzeugungsdatum der CDF ab spezifiziert werden. Beispielsweise kann die Aufbewahrungsperiode als ein Datum und/oder eine Zeit spezifiziert werden, wenn die CDF und die darauf bezogenen Blobs gelöscht oder weggelassen werden können. Bei einer Ausführungsform, die weiter unten mehr in Einzelheiten erläutert wird, kann die Aufbewahrungsperiode als eine Zeitperiode vom Auftreten eines spezifischen Ereignisses an spezifiziert werden.
  • Wenn, wie oben dargelegt ist, ein Host eine CDF für die Speicherung in dem Speichersystem erzeugt, kann der Host eine Aufbewahrungsperiode spezifizieren, die in dem Inhalt der CDF enthalten ist. Die Aufbewahrungsperiode kann als eine Zeitperiode von dem Erzeugungsdatum der CDF an spezifiziert werden. Bei einer Ausführungsform versucht das Speichersystem Steuerung über die Aufbewahrungsperiode zu behalten oder zu erlangen, um sicherzustellen, dass ein Host nicht Daten löschen oder weglassen kann, bevor die spezifizierte Aufbewahrungsperiode verstrichen ist. Wenn somit eine Aufbewahrungsperiode auf einem Erzeugungsdatum für die CDF basiert, ist es wünschenswert, das Erzeugungsdatum von einer Uhr des belasteten Speichersystems abhängig zu machen, um einen Host daran zu hindern, ein nicht korrektes Erzeugungsdatum vorzutäuschen, um dadurch eine Aufbewahrungsperiode zu umgehen, die den Daten auferlegt ist. Es sei beispielsweise angenommen, dass am 15. September 2003 eine CDF mit einer Aufbewahrungsperiode von zwei Jahren gespeichert wird. Somit ist das beabsichtigte Datum des Ablaufs der CDF der 15. September 2005. Wenn jedoch der Host eine Datumszeitmarke gemäß dem 15. September 2002 in die CDF vortäuscht, läuft die CDF am 15. September 2004 bereits ab, und zwar ein Jahr, bevor das beabsichtigte Ablaufdatum der CDF erreicht ist. Gemäß einer Ausführungsform der Erfindung werden daher Techniken angewendet, die es dem Speichersystem erlauben, sicherzustellen, dass der Zeitstempel des Erzeugungsdatums in der CDF tatsächlich das aktuelle Erzeugungsdatum der CDF wiedergibt. Dies kann auf sehr vielfältige Weise erfolgen, indem gemäß Aspekten der vorliegenden Erfindung ein Speichersystem dafür ausgebildet wird, das Erzeugungsdatum zum Speichern der Daten zu verifizieren, wobei jedoch keine Einschränkung auf die speziellen Implementierungen, die weiter unten beschrieben werden, gelten sollen.
  • Um die Genauigkeit des Erzeugungsdatums-Zeitstempels sicherzustellen, der durch den Host geliefert wird, wird bei einer Ausführungsform der Host mit einem Anwendungsprogrammierinterface (API) ausgestattet, welches mit dem Speichersystem interagiert, um die Sicherstellung der Genauigkeit des Erzeugungsdatums für irgendwelche Daten zu unterstützen, die in das Speichersystem eingeschrieben werden. Bei einer Ausführungsform kommuniziert die Host-API mit dem Speichersystem, um den momentanen Zeitpunkt von dem Speichersystem zu empfangen (z. B. von der Uhr des Speichersystems oder irgendeiner Quelle, auf die das Speichersystem bezogen ist), und vergleicht die gegenwärtige Zeit von der Uhr des Speichersystems mit der gegenwärtigen Zeit des Hosts (z. B. der Uhr des Hosts). Aus diesem Vergleich bestimmt der Host einen Deltawert, der die Differenz in der Zeit zwischen der Uhr des Speichersystems und der Uhr des Hosts angibt. Die Informationen, welche die Uhr des Speichersystems betreffen, können zu dem Host übertragen werden, und zwar auf irgendeine von vielfältigen Arten. Bei einer Ausführungsform wird immer dann, wenn das Speichersystem eine Kommunikationsgröße zu dem Host sendet, die momentane Zeit von der Uhr des Speichersystems zu der Kommunikationsgröße hinzu addiert. Jedes Mal, wenn der Host daher eine Kommunikationsgröße von dem Speichersystem empfängt, kann der Host die momentane Zeit, die er von dem Speichersystem empfangen hat, mit der momentanen Zeit der Uhr des Hosts vergleichen und kann den Deltawert entsprechend auf den neusten Stand bringen. Wenn der Host eine CDF erzeugt und diese zu dem Speichersystem zum Zwecke der Abspeicherung sendet, kann der Erzeugungsdatums-Zeitstempel in die CDF dadurch geschrieben werden, indem der Deltawert zu der momentanen Zeit hinzu addiert wird, der durch die Uhr des Hosts spezifiziert wurde, so dass das Erzeugungsdatum durch das Speichersystem basierend auf der eigenen Uhr verifiziert werden kann.
  • Bei einer Ausführungsform der Erfindung wird daher der Erzeugungsdatums-Zeitstempel in die CDF geschrieben und der Host führt eine Überprüfung durch, um sicherzustellen, dass der Deltawert innerhalb einer annehmbaren Zeitperiode überprüft worden ist. Wenn beispielsweise der Host die Uhrangabe des Speichersystems nicht innerhalb von wenigstens 10 Sekunden empfängt, kann der Host direkt bei dem Speichersystem nach der gegenwärtigen Zeit anfragen, um diese bei der Erzeugung des Datums-Zeitstempels in der CDF zu verwenden.
  • Bei einer Ausführungsform der Erfindung kann das Speichersystem optional das Erzeugungsdatum der CDF verifizieren, und zwar nach dem Empfang der CDF von dem Host, und zwar als weiteren Schutz gegen einen Host, der versucht, eine falsche Erzeugungszeit für Daten, die geschrieben werden, vorzutäuschen. Das heißt, das Speichersystem kann den Erzeugungsdatums-Zeitstempel in der CDF mit der Zeit vergleichen, wenn die Schreibanfrage an dem Speichersystem empfangen wird. Wenn die zwei nicht miteinander übereinstimmen, und zwar innerhalb einer akzeptablen Toleranz (z. B. 10 Sekunden), kann das Speichersystem die Anfrage zum Speichern der CDF verneinen. Die Toleranz kann auf irgendeine geeignete Weise definiert werden, wobei dieser Aspekt der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist. Beispielsweise kann die Toleranz einen Schwellwert spezifizieren, der durch die Differenz zwischen dem Erzeugungsdatums-Zeitstempel der CDF und dem Zeitpunkt der Uhr des Speichersystems nicht überschritten werden darf. Die Toleranz kann beispielsweise aus einer festen Zeitperiode bestehen, wie beispielsweise aus 10 Sekunden oder irgendeiner anderen annehmbaren Zeitperiode. Alternativ kann die Toleranz auch proportional zur Aufbewahrungsperiode der CDF gewählt werden, so dass dann, wenn die Aufbewahrungsperiode kurz ist, die Toleranz ebenso klein ist, während jedoch dann, wenn die Aufbewahrungszeit der CDF groß ist, die Toleranz ebenfalls relativ groß gewählt werden kann. Es kann irgendeine geeignete Funktion dazu verwendet werden, um die Beziehung zwischen der Länge der Aufbewahrungsperiode und der Toleranz zu definieren, wobei jedoch die Erfindung darauf nicht beschränkt ist.
  • Wie oben erläutert wurde, kann gemäß einer Ausführungsform der vorliegenden Erfindung ein Blob nicht direkt durch einen Host gelöscht oder weggelassen werden. Gemäß dieser Ausführungsform wird irgendeine Anfrage von einem Host, um einen Blob direkt zu löschen oder wegzulassen, durch das Speichersystem abgewiesen. Entsprechend einer Ausführungsform der vorliegenden Erfindung wird eine Technik verwendet, um eine Identifizierung durchzuführen, ob eine Dateneinheit, die in dem Speichersystem gespeichert ist, aus einem Blob oder einer CDF besteht, um eine Unterscheidung zu treffen, ob eine Löschanfrage einen Blob betrifft und verneint werden muss, oder eine CDF betrifft und nach Maßgabe bestimmter Bedingungen, die weiter unten erläutert werden, erlaubt werden soll. Dieser Aspekt der vorliegenden Erfindung kann auf sehr verschiedene Arten implementiert werden.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung enthält die Inhaltsadresse für irgendeine Dateneinheit, die in dem Speichersystem gespeichert ist, wenigstens ein Bit, welches zusätzlich zu dem Hash aus dem Inhalt der Dateneinheit in der oben erläuterten Weise erzeugt wird, und das zusätzliche Bit wird dazu verwendet, um eine Identifizierung durchzuführen, ob die der Inhaltsadresse zugeordneten Daten aus einem Blob oder einer CDF bestehen. Wenn auf diese Weise der Host versucht, Zugriff auf die Dateneinheit zu erlangen, liefert die Inhaltsadresse, die vorgesehen wird, für das Speichersystem eine Identifizierung dahingehend, ob die Dateneinheit ein Blob ist oder eine CDF ist, und das Speichersystem kann diese Information dazu verwenden, um solche Löschanfragen in unterschiedlicher Weise zu verarbeiten. In dieser Hinsicht wird dann eine Löschanfrage, die auf ein Blob gerichtet ist, verneint und Weglass- oder Löschanfragen, die auf eine CDF gerichtet sind, werden in einer Weise behandelt, wie sie weiter unten in Verbindung mit 4 erläutert wird.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird die Inhaltsadresse durch das Steuersystem selbst erzeugt und wird zu dem Host zurück geleitet. In dieser Hinsicht verwendet das Speichersystem die oben beschriebene Technik zum Generieren der Inhaltsadresse und stellt dann eine verlässliche Quelle zum Generieren solcher Adressen in authentischer Weise dar. Indem das Speichersystem die Inhaltsadresse erzeugt, wird sichergestellt, dass ein Host nicht das Speichersystem täuschen kann, indem es beispielsweise fälschlich Inhaltsdaten (das heißt einen Blob) als CDF identifiziert, um ein nachfolgendes direktes Löschen zu ermöglichen. In dieser Hinsicht betrifft eine Ausführungsform der vorliegenden Erfindung ein Speichersystem, welches rigorose Anforderungen erfüllt, um sicherzustellen, dass Aufbewahrungsforderungen erfüllt werden, und zwar ungeachtet dem Verhalten von Hosts, die daran angeschlossen sind. Ein Beispiel solch einer Umgebung besteht darin, ein Speichersystem vorzusehen, welches in Einklang mit den SEC-Regel-17a-4-Anforderungen steht, um finanzielle Aufzeichnungen für eine festgehaltene Zeitperiode aufzubewahren.
  • 4 ist ein Flussdiagramm, welches den Prozess für die Handhabung einer Anfrage zum Weglassen einer CDF aus einem Speichersystem veranschaulicht, und zwar in Einklang mit einer Ausführungsform der Erfindung. Dieser Prozess kann durch das Speichersystem selbst ausgeführt werden oder auch durch einen getrennten Computer, der ein Interface zwischen einem Host oder mehreren Hosts und dem Speichersystem bildet. Der Prozess beginnt bei act 403 mit dem Empfang einer Anfrage bei dem Speichersystem, eine CDF wegzulassen oder zu löschen. Wie oben erläutert wurde, kann die Anfrage beispielsweise die CDF durch deren Inhaltsadresse identifizieren. Bei einer Ausführungsform der vorliegenden Erfindung werden Techniken verwendet, um sicherzustellen, dass das Subjekt der Weglassanfrage in der Tat eine CDF ist. Solche Schritte können ausgeführt werden, bevor der Prozess initialisiert wird, der in 4 gezeigt ist, oder alternativ kann dieser in den Prozess integriert werden, indem man einen zusätzlichen Verifizierungsschritt durchführt und indem man die Anfrage verneint, wenn sie nicht auf eine CDF gerichtet ist. Nachdem die Anfrage empfangen wurde, gelangt der Prozess zu act 405, wo die CDF aus dem Speichersystem gelesen wird. Der Prozess verläuft dann zu act 407, bei dem der Prozess die Metadaten der CDF prüft und die Aufbewahrungsperiode bewertet, um zu bestimmen, ob die Aufbewahrungsperiode bereits verstrichen ist. Wenn die Aufbewahrungsperiode bereits verstrichen ist, löscht das Speichersystem die CDF in act 409 und es erfolgt dann eine Beendigung bei act 413. Das Weglassen der CDF kann auf mehrere verschiedene Arten durchgeführt werden, die noch weiter unten mehr in Einzelheiten erläutert werden. Wie oben dargelegt wurde, kann das Weglassen der CDF (indirekt) zu dem Weglassen von irgendwelchen Blobs führen, auf die die CDF verwiesen hat, und zwar in einer Weise, wie es noch weiter unten mehr in Einzelheiten erläutert wird. Wenn bei act 407 bestimmt wird, dass die Aufbewahrungsperiode noch nicht verstrichen ist, verneint der Prozess die Anfrage, die CDF zu löschen oder wegzulassen. Das Speichersystem kann optional eine Fehlermeldung zurücksenden, und zwar zu dem Anfrager (z. B. einem Host). Der Prozess endet dann bei act 413.
  • Informationen, welche die CDFs und die Blobs betreffen, können in irgendeiner geeigneten Weise gespeichert werden, wobei die vorliegende Erfindung nicht auf irgendeine spezifische Implementierungstechnik beschränkt ist. Gemäß einer Ausführungsform der vorliegenden Erfindung werden solche Informationen in Tabellen in einer Datenbank gespeichert, die für die Verwendung mit unstrukturierten variablen Längenaufzeichnungen geeignet ist. Jedes Blob und CDF kann eine zugeordnete Tabelle aufweisen, die beispielsweise die Inhaltsadresse des Blobs oder der CDF speichert, ebenso die Inhaltsadresse von irgendwelchen CDFs speichert, die Bezug zu dem Blob oder der CDF haben (oder auf diese zeigen), und auch andere Informationen, wie beispielsweise physikalische Speicherstellen (z. B. Platten), an denen der Blob oder die CDF gespeichert ist bzw. sind, oder auch Erzeugungszeitstempel, die physikalische Stelle oder Stellen für irgendwelche Spiegelgrößen des Blobs oder CDF usw. Die Bezugstabellen für eine CDF brauchen nicht Einträge zu enthalten, die identifizieren, auf welche Blobs die CDF zeigt, da der Inhalt der CDF selbst solche Informationen enthält. Die Bezugstabellen können einen Bezugszählwert enthalten, der bei dem Datenabfall- Sammelprozess verwendet wird. Der Bezugszählwert kann anzeigen, wie viele CDFs in Beziehung zu einem bestimmten Blob oder CDF stehen. Beispielsweise kann eine Datenmüll-Sammelvorrichtung die Bezugszählung prüfen, die einem bestimmten Blob oder CDF zugeordnet ist, um zu bestimmen, ob irgendwelche CDFs auf einen bestimmten Blob oder CDF verweisen. Wenn der Blob oder die CDF keinen Verweis haben, kann die Datenmüll-Sammelvorrichtung diese löschen oder weglassen. Viele andere Typen von Informationen können in der Tabelle gespeichert sein, so dass die Erfindung in dieser Hinsicht nicht eingeschränkt ist. Es sei darauf hingewiesen, dass die gesamte Tabelle nicht an einer einzelnen Stelle an einem einzelnen Speichersystem gespeichert zu sein braucht und dass Teile der Tabelle für unterschiedliche Stellen von einem oder mehreren Speichersystemen verteilt sein können. Zusätzlich sei darauf hingewiesen, dass eine einzelne Datenbank nicht dazu verwendet werden muss, um Tabellen für alle Blobs und CDFs zu speichern, da irgendeine geeignete Konfiguration verwendet werden kann, inklusive einer solchen, die keine Datenbanktabellen verwendet.
  • Wie sich aus der vorangegangenen Beschreibung ergibt, können Ausführungsformen nach der vorliegenden Erfindung in Systemen verwendet werden, bei denen eine CDF nicht nur auf Blobs von Daten zeigt, sondern auch auf andere CDFs zeigt. Diese Architektur ist nützlich bei der Erzeugung von Hierarchien von gespeicherten Informationen. Beispielsweise kann ein Blob eine Röntgenstrahlaufzeichnung von irgendeinem Individuum enthalten, derart, dass eine erste Ebene-CDF auf die Röntgenstrahlaufzeichnung verweist und diese zu einem spezifischen Individuum gehörend identifiziert. Zusätzlich können Röntgenstrahlaufzeichnungen auch mit einer Nummer der Röntgenstrahlaufzeichnungen gruppiert werden, und zwar für dieses Individuum oder dessen Familie, wobei eine CDF einer höheren Ebene auf eine Anzahl von. CDFs einer niedrigeren Ebene zeigt, um eine logische Hierarchie zu erzeugen.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung sind die Verweise, wenn eine CDF einer höheren Ebene erzeugt wird, die auf eine oder auf mehrere CDFs einer niedrigeren Ebene zeigt, auf CDFs der niedrigeren Ebene in dem Inhalt der CDF der höheren Ebene enthalten, so dass die CDF der höheren Ebene in logischer Weise auf die CDFs der niedrigeren Ebene zeigt. Bei einer Ausführungsform können Verweise auf CDFs einer niedrigeren Ebene einfach als Metadaten enthalten sein oder als Beschreibungsgrößen in dem Inhalt der CDF der höheren Ebene, zumal die Architektur nicht eine CDF umfasst, die auf eine andere in einer Weise zeigt, in welcher eine CDF auf einen Blob zeigt, wie dies hier erläutert wird (das heißt die Adresse der CDF der höheren Ebene ist nicht in der Bezugstabelle für die CDF der niedrigeren Ebene vorgesehen).
  • Jedoch können bei einer alternativen Ausführungsform der vorliegenden Erfindung solche Verweise so vorgesehen sein, dass eine CDF einer höheren Ebene auf eine CDF einer niedrigeren Ebene zeigt und diese ihre Adresse in der Bezugstabelle enthält, und zwar für die CDF der niedrigeren Ebene. In Einklang mit dieser Implementierung kann die CDF der niedrigeren Ebene nicht weggelassen werden, während auf diese durch eine CDF einer höheren Ebene gezeigt wird, derart, dass das Weglassen der CDF der niedrigeren Ebene ein früheres Weglassen der CDF der höheren Ebene erfordert.
  • Wie oben erläutert ist, wird gemäß einer Ausführungsform der vorliegenden Erfindung eine Datenmüll-Sammeltechnik angewendet, die irgendeinen Blob löscht oder weglässt, der nicht in Bezug zu einer CDF steht. Wenn gemäß einer Ausführungsform der vorliegenden Erfindung ein Blob in ein Speichersystem geschrieben wird, wird dieses eingeschrieben, und zwar bevor dessen entsprechender CDF. Wenn somit das Blob geschrieben wird, kann die Inhaltsadresse für dessen CDF noch nicht generiert worden sein, so dass diese nicht verfügbar ist, um als ein Verweis in der Tabelle enthalten zu sein, welcher dem Blob zugeordnet ist. Gemäß einer Ausführungsform der vorliegenden Erfindung wird eine Technik angewendet, um sicherzustellen, dass ein Blob, der vor seiner CDF geschrieben wird, nicht bei der Datenmüll-Sammeleinrichtung erscheint, und zwar als ein Blob ohne Beziehung, so dass die Datenmüll-Sammelausrüstung veranlasst wird, den neuerlich geschriebenen Blob wegzulassen.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird das Schreiben eines Blobs und der CDF so betrachtet, dass dies eine Transaktion darstellt, und es wird ein Identifizierer dieser Transaktion zugeordnet. Wenn der Blob geschrieben wird, wird der Transaktions-Identifizierer als Platzhalter verwendet, und zwar in der Bezugstabelle des Blobs anstelle der noch nicht erzeugten Inhaltsadresse der CDF, die auf den Blob verweisen soll. Die Datenmüll-Sammeleinrichtung erkennt den Platzhalter und lässt daher den Blob nicht weg oder löscht diesen nicht. Wenn die CDF dann später beschrieben wird und der Inhaltsadresse berechnet wird, wird die Transaktionsnummer in der Blob-Bezugstabelle mit der Inhaltsadresse der CDF ersetzt.
  • Es sei darauf hingewiesen, dass die vorliegende Erfindung nicht darauf beschränkt ist, die oben erläuterte Technik dafür zu verwenden, um eine zeitweilige Transaktionszahl vorzusehen, wenn ein Blob zu Beginn geschrieben wird, da andere geeignete Techniken angewendet werden können, um sicherzustellen, dass der Blob durch die Datenmüll-Sammeleinrichtung nicht gelöscht wird. Ferner muss solch eine Technik nicht in Verbindung mit den Ausführungsformen der vorliegenden Erfindung verwendet werden, die in Systemen eingesetzt wird, die keine Datenmüll-Sammeleinrichtung verwenden, die eine Datenmüll-Sammeleinrichtung verwenden, welche eine unterschiedliche Technik einsetzt, um zu bestimmen, welche Blobs gelöscht oder weggelassen werden sollten (im Gegensatz zu dem Vorgang, auf die Blobs zu blicken, die keinen Bezug zu irgendeiner CDF haben), oder Systeme, die Blobs nicht in das Speichersystem einschreiben, bevor deren zugeordnete CDFs geschrieben wurden.
  • Wie oben erläutert wurde, ist eine Ausführungsform der vorliegenden Erfindung dafür ausgelegt, um mit einer Datenmüll-Sammeleinrichtung verwendet zu werden. Die Datenmüll-Sammelvorrichtung kann beispielsweise einen Hintergrundprozess bilden, der bei dem Speichersystem ausgeführt wird, um Plattenspeicherraum neu zu beanspruchen, der an früherer Stelle für eine Speicherung zugewiesen wurde, jedoch nicht mehr länger benötigt wird (z. B. da die CDF oder der Blob, der in diesem Raum gespeichert wurde, für eine Löschung markiert worden ist). Bei einer Ausführungsform der vorliegenden Erfindung sucht die Datenmüll-Sammelvorrichtung die Bezugstabelle oder Bezugstabellen nach Blobs und CDFs ab, wobei nach Blobs oder CDFs Ausschau gehalten wird, die keinen Bezug zu irgendeiner CDF haben. Wenn die Datenmüll-Sammelvorrichtung solche Blobs oder CDFs auffindet, löscht die Datenmüll-Sammelvorrichtung diese bzw. lässt diese weg und entfernt deren entsprechende Einträge aus der Bezugstabelle oder den Bezugstabellen. Es sei darauf hingewiesen, dass dann, wenn die Datenmüll-Sammelvorrichtung eine bestimmte CDF oder einen Blob "weglässt", die Datei, welche die CDF oder den Blob enthält, einfach aus dem Dateisystem oder Ablagesystem des Speichersystems entfernt werden kann. Alternativ ist eine Ausführungsform der Erfindung für die Verwendung bei Anwendungen ausgelegt, bei denen eine höhere Sicherheit hinsichtlich eines Weglassens gewünscht wird, wobei eine physikalische Stelle oder Stellen, die den Blob oder die CDF-Daten speichern, mit Daten überschrieben werden können (z. B. Zufallsbits oder eine spezifische Sequenz von Bits), derart, dass die aktuellen binären Daten des Blobs oder der CDF gelöscht werden oder elektronisch "geschreddert" werden, und zwar unter Verwendung irgendeiner geeigneten Technik.
  • Bei einer Ausführungsform der vorliegenden Erfindung enthalten Bezugstabellen, die mit jeder CDF zugeordnet sind, die nicht für ein Weglassen markiert worden ist, einen Kreisverweis zu der CDF selbst, um dadurch sicherzustellen, dass dann, wenn die CDF nicht einen Verweis von irgendeiner anderen hat, die Datenmüll-Sammelroutine nicht diese als eine nicht bezogene CDF in der oben erläuterten Weise weglässt. Es sei darauf hingewiesen, dass die Erfindung in dieser Hinsicht nicht eingeschränkt ist, da andere Datenmüll-Sammeltechniken angewendet werden können, die nicht auf das Fehlen eines Verweises von einer anderen CDF her als Grundlage für das Weglassen einer CDF basieren. Wenn beispielsweise eine Anwendung gemäß der Ausführungsform der vorliegenden Erfindung erfolgt, die einen einmaligen Identifizierer verwendet, um zwischen CDFs und Blobs zu differenzieren, sollte die Datenmüll-Sammeleinrichtung Ausschau halten, und zwar nach diesem einmaligen Identifizierer, und sollte erkennen, dass nicht bezogene CDFs bzw. CDFs ohne Verweis nicht weggelassen werden dürfen, während jedoch lediglich Blobs ohne Verweis weggelassen werden sollten.
  • Wie oben erläutert ist, kann bei einer Ausführungsform der Erfindung ein Host nicht die Erlaubnis erhalten, Blobs direkt wegzulassen. Das heißt, irgendein Versuch, einen Blob direkt wegzulassen (z. B. durch Aussenden eines Wegwerf- oder Löschbefehls zu dem Speichersystem mit der Inhaltsadresse des Blobs), wird durch das Spei chersystem verneint. Diese Einschränkung ist unabhängig von dem Anwendungsprogramm oder der Einrichtung des Hosts, der die Anfrage ausgibt, oder auch von den Zugriffsprivilegien des Anfragers (z. B. selbst im Falle von Anfragen von einem Systemadministrator des Hosts, die verneint werden). Somit kann der Host lediglich Blobs weglassen, indem er alle CDFs weglässt, die auf den Blob verweisen, und, wenn der Blob nicht länger irgendeinen Verweis von irgendwelchen CDFs aufweist, wird er durch die Datenmüll-Sammelvorrichtung weggelassen.
  • Wie oben erläutert wurde, ist bei einer Ausführungsform der Erfindung das Speichersystem dazu befähigt, zwischen einer Weglassanfrage nach einem Blob und einer Weglassanfrage nach einer CDF zu unterscheiden. Wenn bei einer Ausführungsform ein Host eine Weglassanfrage zu dem Speichersystem sendet, kann der Host die Inhaltsadresse der wegzulassenden Daten zusammen mit Informationen (z. B. eine Boolesche) mit einfügen, die anzeigt bzw. anzeigen, ob die Inhaltsadresse einem Blob oder einer CDF entspricht. Wenn der Host angibt, dass die Inhaltsadresse einem Blob entspricht, kann das Speichersystem die Weglassanfrage verneinen, da die direkte Weglassung von Blobs bei einer Ausführungsform der Erfindung untersagt ist. Wenn jedoch die Boolesche Information anzeigt, dass die Inhaltsadresse einer CDF entspricht, kann das Speichersystem die Anfrage verarbeiten, um die Daten entsprechend der Inhaltsadresse wegzulassen, die durch den Host angegeben werden. Daher kann das Speichersystem irgendwelche Daten weglassen oder löschen, das Speichersystem prüft jedoch die Metadaten, die den Daten zugeordnet sind, welche für eine Weglassung angefragt wurden, um zu bestimmen, ob die Aufbewahrungsperiode für die Daten verstrichen ist. Bei einer Ausführungsform kann das Speichersystem die Aufbewahrungsperiode finden, die einer CDF zugeordnet ist, und zwar in dem Inhalt der CDF selbst. Wenn die Aufbewahrungsperiode verstrichen ist, kann das Speichersystem dann die CDF weglassen bzw. löschen. Wenn die Inhaltsadresse, die durch den Host geliefert wird, einem Blob entspricht (derart, dass die Angabe in der Booleschen Information so lautet, dass sie einer CDF entspricht und fehlerhaft ist), ist das Speichersystem nicht fähig, eine Aufbewahrungsperiode in dem Inhalt des Blobs zu finden. Wenn keine Aufbewahrungsperiode in dem Inhalt der wegzulassenden Daten gefunden wird, verneint das Speichersystem die Weglassanfrage. Daher schlägt jegliche Anfrage, ein Blob wegzulassen, fehl, da das Speichersystem nicht dazu fähig ist, eine Aufbewahrungsperiode in dem Inhalt des Blobs zu lokalisieren. Dies verhindert, dass ein Host die Aufbewahrungsperiode umgehen kann, die in einer CDF erstellt ist, indem dieser versucht, den Blob selbst direkt wegzulassen oder zu löschen.
  • Bei einer anderen Ausführungsform kann das Speichersystem unterscheiden zwischen einer Weglassanfrage nach einem Blob und einer Weglassanfrage nach einer CDF, basierend auf zusätzlichen Informationen, die zu der Inhaltsadresse hinzugefügt wurden. Wie oben erläutert ist, kann die Inhaltsadresse von einem Hash der Daten des Blobs oder der CDF abgeleitet werden. Die Inhaltsadresse kann einen zusätzlichen Identifizierer enthalten, um anzuzeigen, ob die Inhaltsadresse die Adresse eines Blobs oder einer CDF ist. Der Identifizierer kann irgendwo innerhalb der Inhaltsadresse gelegen sein. Wenn beispielsweise ein 26-Zeichen-Hash-Wert als Inhaltsadresse verwendet wird, kann der Identifizierer aus einem zusätzlichen Zeichen bestehen, welches derart angeordnet ist, dass 13 Zeichen des Hash-Wertes dem Identifizierer voraus gehen und 13 Zeichen des Hash-Wertes dem Identifizierer nachfolgend.
  • Das Weglassen einer CDF und des zugeordneten Blobs oder der zugeordneten Blobs kann auf irgendeine von zahlreichen Arten durchgeführt werden. Die oben beschriebenen Techniken können als alternative Techniken betrachtet werden, um eine Anpassung innerhalb einer gegebenen Systemkonfiguration zu erreichen, wobei aber nur eine Technik zum Weglassen einer CDF und eines zugeordneten Blobs oder zugeordneter Blobs vorgesehen sein kann. Jedoch sind gemäß einer Ausführungsform der vorliegenden Erfindung zwei oder mehrere der oben beschriebenen Weglasstechniken oder Löschtechniken bei einem einzelnen System vorgesehen (z. B. durch das Speichersystem implementiert), so dass der Anwender mit einer Auswahl an Optionen versehen wird, um das Löschen oder Weglassen auszuführen. Wie noch mehr in Einzelheiten weiter unten erläutert wird, können einige Verfahren einen relativ geringen Aufwand einer Anfangsverarbeitung erfordern und es verbleibt ein relativ großer Aufwand für die Verarbeitung durch den Datenmüll-Sammelvorgang bzw. -Sammelvorrichtung, während andere Verfahren einen relativ großen Aufwand einer Anfangsverarbeitung erfordern können, jedoch weniger Arbeit für die Datenmüll-Sammelvorrichtung belassen (wenn eine Datenmüll-Sammelvorrichtung überhaupt verwendet wird). Es sei darauf hingewiesen, dass die weiter unten beschriebenen Weglasstechniken lediglich dann durchgeführt werden, wenn einmal bestimmt worden ist (z. B. bei act 407 in 4), dass die Aufbewahrungsperiode verstrichen ist. Es können somit die unten angegebenen Techniken dazu ausgeführt werden, um den act zum Weglassen der CDF bei dem act 409 in dem Prozess von 4 zu implementieren.
  • Ein erstes Verfahren wird als Feuer-Verfahren (fire) und Vergiss-Verfahren bezeichnet. Wie oben erläutert ist, enthält bei einer Ausführungsform eine CDF einen Kreisverweis zu sich selbst (z. B. im Eintrag der CDF in der Bezugstabelle gespeichert). Im Ansprechen auf eine Anfrage, die CDF wegzulassen, entfernt nach der Verifizierung, dass die Aufbewahrungsperiode verstrichen ist, das Feuer- und Vergiss-Verfahren einfach den Kreisverweis auf die CDF. Solange kein Verweis auf die CDF durch irgendwelche anderen CDFs vorliegt (in welchem Fall das Weglassen nicht autorisiert werden würde), lässt die Datenmüll-Sammelvorrichtung eventuell die CDF in der oben erläuterten Weise weg bzw. löscht diese, wenn festgestellt wird, dass die CDF nun ohne Verweis ist. Wenn die Datenmüll-Sammelvorrichtung die CDF weglässt, sucht sie auch nach der Verweistabelle oder den Verweistabellen, um irgendwelche anderen Blobs oder CDFs zu lokalisieren, auf die durch die weggelassene CDF ein Verweis vorhanden ist, und entfernt dann lediglich die Verweistabelleneinträge, welche solche Blobs und CDFs identifizieren, auf die ein Verweis durch die weggelassene CDF vorliegt. Dieses Beseitigen kann dazu führen, dass ein Blob entsteht, auf den ein Verweis von einer CDF vorgelegen hat, nicht mehr durch irgendeine CDF einen Verweis aufweist, was zu dem Ergebnis führt, dass die Datenmüll-Sammelvorrichtung eventuell irgendwelche solche Blobs weglässt, wenn diese einmal festgestellt hat, dass der Blob ohne Verweis ist.
  • Die Feuer- und Vergiss-Technik verläuft zu Beginn sehr schnell, so dass das Speichersystem lediglich wenig verarbeiten muss, bevor es dem Host antwortet, dass die CDF weggelassen wird, wobei aber viel an Verarbeitung für die Datenmüll-Sammelvor richtung verbleibt. Eine Eigenschaft der Feuer- und Vergiss-Technik besteht darin, dass dann, wenn ein Host versucht, einen Blob wegzulassen oder zu löschen, indem er dessen entsprechende CDF weglässt, eine Anzeige, die von dem Speichersystem zurück geleitet wird, dass die CDF weggelassen oder gelöscht wurde, kein Anzeichen dafür ist, dass der entsprechende Blob (selbst wenn dieser nunmehr ohne Bezug oder Verweis ist) weggelassen wurde, da dabei eine Zeitverzögerung für die Datenmüll-Sammelvorrichtung entstehen kann, um alle Blobs und CDF-Verweistabellen zu durchsuchen und um alle Tabelleneinträge wegzulassen, die die neu weggelassene CDF identifizieren, und um danach herauszufinden, dass ein Blob nun ohne Verweis ist und diesen weglässt. Als ein Ergebnis von dieser Verzögerungszeit können Daten selbst dann gelesen werden, wenn das Weglassen bestätigt worden ist.
  • Ein zweites Verfahren zum Weglassen wird als asynchrones Weglassen bezeichnet. Wie bei dem Feuer- und Vergiss-Verfahren, entfernt das asynchrone Weglassen den Kreisverweis von der CDF. Jedoch wird bei dem asynchronen Weglassen die CDF zu einer unterschiedlichen Stelle bewegt, die anzeigt, dass die CDF weggelassen worden ist und daher die CDF nicht länger zum Lesen durch den Host zur Verfügung steht. Die neue Stelle der CDF kann aus einer spezifischen Dateisystemstelle bestehen, wie beispielsweise einer "Weglassdatei". Es sei darauf hingewiesen, dass die weggelassene CDF in irgendeiner geeigneten Weise "bewegt" werden kann, inklusive einer tatsächlichen physikalischen Bewegung der Daten, die der CDF zugeordnet sind, durch Ändern der Dateisystemstelle der CDF oder indem die CDF mit einem Designator markiert wird, der anzeigt, dass diese sich nun in der Weglassdatei befindet. Die Datenmüll-Sammelvorrichtung kann auf die CDFs in der Weglassdatei zugreifen und kann die Inhalte solcher weggelassener CDFs lesen, um zu bestimmen, welche CDFs und/oder Blobs durch diese bezeichnet sind bzw. mit Verweis versehen sind. Die Datenmüll-Sammelvorrichtung kann dann irgendwelche Verweise auf die weggelassene CDF aus der Verweistabelle entfernen und kann auch irgendwelche Blobs entfernen, die als ein Ergebnis solcher Weglassungen ohne Verweis verbleiben.
  • Im Gegensatz zu der Feuer- und Vergiss-Technik erfordert die asynchrone Weglasstechnik eine aufwändigere Verarbeitung zu Beginn bei dem Speichersystem (das heißt Bewegen der CDF zu der Weglassdatei), bevor das Speichersystem eine Anzeige zu dem Host zurücksendet, dass die CDF weggelassen worden ist. Jedoch reduziert diese zusätzliche Anfangsverarbeitung den Aufwand der Verarbeitung, der durch die Datenmüll-Sammelvorrichtung durchgeführt werden muss, die Datenmüll-Sammelvorrichtung braucht nicht alle CDF- und Blob-Verweistabellen abzusuchen, um zu bestimmen, welche Blobs und/oder CDFs durch die weggelassene CDF betroffen sind, da diese davon ausgehen kann, dass Informationen direkt dadurch erhalten werden können, indem die Inhalte der weggelassenen CDF in der Weglassdatei überprüft werden. Auch bei der Feuer- und Vergiss-Technik kann eine Verzögerungszeit auftreten, und zwar zwischen dem Informationszeitpunkt des Hosts, dass die CDF weggelassen worden ist, und den resultierenden Weglassungen eines Blobs, auf den durch diese verwiesen wurde, obwohl die Verzögerungszeit geringer sein kann, wenn man die asynchrone Technik verwendet, und zwar auf Grund der Tatsache, dass weniger Verarbeitungsaufwand für die Datenmüll-Sammelvorrichtung erforderlich ist.
  • Eine dritte Weglasstechnik wird als synchrones Weglassen bezeichnet. Bei dem synchronen Weglassen führt im Ansprechen auf eine Anfrage, eine CDF wegzulassen, das Speichersystem nachfolgend die folgenden Anfangsverarbeitungsfunktionen durch: (1) Entfernen des Kreisverweises der CDF; (2) Weglassen der CDF; (3) Entfernen von jeglichen Einträgen in der oder in den Verweistabelle(n), die andere Blobs oder CDFs identifizieren, auf die durch die weggelassene CDF verwiesen wurde; und (4) Weglassen irgendwelcher Blobs, die momentan nicht durch irgendeine CDF bezogen sind bzw. ohne Verweis sind. Es sei darauf hingewiesen, dass in Einklang mit dieser Ausführungsform der vorliegenden Erfindung eine Datenmüll-Sammelvorrichtungsroutine nicht erforderlich ist, da die oben beschriebene Implementierung der asynchronen Weglasstechnik alle Aktionen durchführt, die zum Erreichen des Weglassens erforderlich sind, so dass keine Arbeit für die Datenmüll-Sammeleinrichtung zurück bleibt.
  • Verglichen mit der anderen Weglasstechnik, die oben erläutert ist, involviert die synchrone Weglasstechnik relativ mehr Anfangsverarbeitung durch das Speichersystem, und zwar bevor der Host darüber informiert wird, dass die Weglassung erreicht worden ist, wobei diese Technik jedoch nicht unter der oben erläuterten Verzögerung beim Weglassen eines Blobs leidet, auf den durch die CDF verwiesen wird, und auch das Erfordernis für eine Datenmüll-Sammelausrüstung beseitigt wird. Es sei somit darauf hingewiesen, dass die Ausführungsformen der vorliegenden Erfindung, die hier beschrieben wurden, nicht auf die Verwendung mit einer Datenmüll-Sammeleinrichtung beschränkt sind, da auch andere Weglasstechniken möglich sind.
  • Eine Variante in Verbindung mit der synchronen Weglasstechnik besteht darin, dass die ersten drei der oben beschriebenen Funktionen zu Beginn ausgeführt werden können, und zwar bevor der Host instruiert wird, dass die CDF weggelassen worden ist, wobei dann der vierte Schritt (das heißt das Entfernen von irgendwelchen nicht mehr bezogenen Blobs) für die Datenmüll-Sammeleinrichtung übrig bleibt.
  • Es sei darauf hingewiesen, dass die oben beschriebenen Verfahren zum Weglassen lediglich als Beispiel angegeben sind. Es sind viele andere Verfahren zum Weglassen möglich, so dass die Aspekte der Erfindung nicht auf die Verwendung irgendwelcher spezieller Weglasstechniken beschränkt sind.
  • Bei einer Ausführungsform der Erfindung versieht das Speichersystem den Host mit der Fähigkeit, direkt einen Blob unter Verwendung eines Löschbefehls wegzulassen. Der Löschbefehl erlaubt es einem Host, einen Blob direkt wegzulassen, jedoch nur, wenn auf diesen Blob kein Verweis durch irgendeine CDF vorliegt. Die Einschränkung gegen ein Weglassen eines Blobs, auf den durch eine CDF verwiesen wird, stellt sicher, dass das Aufbewahrungsschema des Speichersystems nicht dadurch umgangen werden kann, indem der Löschbefehl verwendet wird. Im Gegensatz zu den oben erläuterten Verfahren zum Weglassen, bei denen die Inhaltsadresse einer CDF zu dem Speichersystem zum Zwecke des Weglassens geliefert wurde, ermöglicht es der Löschbefehl, dass die Inhaltsadresse eines Blobs direkt an das Speichersystem zum Zwecke eines Weglas sens oder Löschens übermittelt wird. Unter Verwendung des Löschbefehls ist es nicht mehr erforderlich, auf die Datenmüll-Sammelvorrichtung zu warten, dass diese den Blob weglässt, da der Blob dann direkt weggelassen bzw. gelöscht werden kann.
  • Wie oben dargelegt ist, richtet sich eine Ausführungsform der vorliegenden Erfindung auf Speichersysteme, die einen global definierten Standard für die Aufbewahrung erfüllen, wobei ein Beispiel davon die SEC-Regel 17a-4 ist, die oben erwähnt wurde. Solche Ausführungsformen können als Definierung mit Konformsystemen bezeichnet werden, die mit extern etablierten Aufbewahrungs-Überwachungseinrichtungen konform sind. Bei einer Ausführungsform der Erfindung hindern die Konform-Speichersysteme einen Host, einen Systemadministrator oder andere daran, inkonsistent mit Aufbewahrungs-Überwachungseinrichtungen zu agieren, die durch das Speichersystem bevollmächtigt wurden, um mit global definierten Aufbewahrungs-Überwachungseinrichtungen in Einklang zu stehen.
  • Eine andere Ausführungsform der vorliegenden Erfindung richtet sich auf Systeme, die nicht mit irgendwelchen global definierten Aufbewahrungs-Überwachungseinrichtungen in Übereinstimmung stehen. Solche Ausführungsformen werden per Definition als Nicht-Konform-Systeme bezeichnet. Bei einer Ausführungsform der Erfindung können Nicht-Konform-Speichersysteme ein Interface liefern, und zwar in irgendeiner geeigneten Weise, die es einem Administrator gestattet, festzulegen, welche Anwenderbefugnisse und Aufbewahrungs-Überwachungseinrichtungen gewünscht werden. Beispielsweise kann ein Satz von Aufbewahrungs-Überwachungseinrichtungen erstellt werden, jedoch kann ein Anwender mit Systemadministratorprivilegien an dem Host oder dem Speichersystem eine Autorisierung erreichen bzw. garantiert erhalten, um Einheiten von Daten unter Verletzung der festgelegten Aufbewahrungs-Überwachungseinrichtungen direkt wegzulassen.
  • Die Anmelder haben auch in Betracht gezogen, dass einige populäre Speichersysteme existieren können, die Blobs und zugeordnete CDFs enthalten, die ohne die Verwendung der Aufbewahrungstechniken erzeugt wurden, wie sie hier beschrieben sind, derart, dass keine der CDFs eine Aufbewahrungsinformation enthält, die diesen zugeordnet sind, und dass einige Systemanwender es auch wünschenswert finden können, solche allgemeinen Systeme auf den neuesten Stand zu bringen, um die Aufbewahrungstechniken anzuwenden, wie sie hier beschrieben sind. Solch ein Upgrade-Vorgang kann auf irgendeine von zahlreichen Wegen erreicht werden. Es kann beispielsweise irgendeine bereits existierende CDF ohne eine Aufbewahrungsperiode, die verstrichen ist, ausgewählt werden, und kann eine unendliche Aufbewahrungsperiode aufweisen oder auch eine Aufbewahrungsperiode, die auf irgendeine geeignete Weise definiert wird.
  • Bei den oben erläuterten Beispielen wird die Aufbewahrungsperiode für einen Blob in einer CDF gespeichert, welche diesem Blob zugeordnet ist. Es sei jedoch darauf hingewiesen, dass die Aufbewahrungsperiode innerhalb des Blobs selbst gespeichert werden kann. Ferner sind die Aspekte der vorliegenden Erfindung, wie sie hier beschrieben sind, nicht auf die Verwendung eines Systems beschränkt, die eine CDF verwendet, um Metadaten zu speichern, die einem Blob oder mehreren Blobs zugeordnet sind, da auch andere Techniken möglich sind (z. B. Speichern solcher Informationen innerhalb des Blobs selbst).
  • Es sei darauf hingewiesen, dass die Aspekte der vorliegenden Erfindung, wie sie oben erläutert sind, auf irgendeine von zahlreichen Wegen implementiert werden können. Beispielsweise werden mehrere der Aufbewahrungs-Überwachungseinrichtungen, die hier beschrieben wurden, so dargelegt, dass sie durch ein Speichersystem implementiert werden. Diese Aspekte können in einer oder in mehreren Speicherboxen selbst implementiert sein, welche Speichervorrichtungen enthalten (z. B. Bandlaufwerke) oder können alternativ an einer unterschiedlichen Box implementiert sein, die als ein Interface vorgesehen ist, und zwar zwischen einem oder mehreren Hosts und einem oder mehreren Speichersystemen, in welchen Daten gespeichert sind. Bei diesem Aspekt können die Merkmale der vorliegenden Erfindung auch auf irgendeinem Computer in dem System implementiert werden. Der hier verwendete Ausdruck Computer soll irgendeine Vorrichtung mit umfassen, die einen Prozessor enthält, um Daten zu verarbei ten, und kann auch ein Speichersystem, eine Netzwerkkomponente oder irgendeine andere Berechnungsvorrichtung enthalten.
  • Die oben beschriebenen Ausführungsformen der vorliegenden Erfindung können auf vielfältige Weise implementiert werden. Beispielsweise können die Ausführungsformen unter Verwendung einer Hardware, Software oder auch einer Kombination aus diesen implementiert werden. Wenn sie in Form einer Software implementiert werden, kann ein Softwarekode auf irgendeinem geeigneten Prozessor oder einer Ansammlung von Prozessoren ausgeführt werden, ob es sich nun um einen einzelnen Computer handelt oder um eine Verteilung unter vielen Computern. Es sei darauf hingewiesen, dass jegliche Komponente oder Ansammlung von Komponenten, welche die Funktionen ausführt bzw. ausführen, wie sie oben beschrieben wurden, gattungsmäßig als ein oder mehrere Controller betrachtet werden können, welche die oben erläuterten Funktionen steuern. Es können ein oder auch mehrere Controller auf verschiedene Weise implementiert sein, wie beispielsweise mit einer speziell ausgelegten Hardware oder für eine Hardware für allgemeine Zwecke (z. B. auf der Grundlage von einem oder mehreren Prozessoren), die unter Verwendung eines Mikrokodes oder einer Software programmiert wird, um die hier dargestellten Funktionen auszuführen.
  • Es sei in Verbindung mit diesem Aspekt darauf hingewiesen, dass eine Implementierung der Ausführungsformen der vorliegenden Erfindung wenigstens ein computerlesbares Medium umfasst (z. B. einen Computerspeicher, eine Diskette, Kompaktspeicherplatte, Band usw.), die mit einem Computerprogramm kodiert sind (z. B. einer Vielzahl von Instruktionen), die dann, wenn sie durch einen Prozessor ausgeführt werden, die oben beschriebenen Funktionen der Ausführungsformen der vorliegenden Erfindung ausführen. Das computerlesbare Medium kann transportabel sein, derart, dass das darauf gespeicherte Programm in irgendein Computersystem bzw. Ressource eines Computersystems geladen werden kann, um die Aspekte der vorliegenden Erfindung, wie sie hier erläutert wurden, zu implementieren. Es sei darüber hinaus darauf hingewiesen, dass der Bezug auf ein Computerprogramm, welches dann, wenn es ausgeführt wird, die oben erläuterten Funktionen durchführt, nicht auf ein Anwendungsprogramm beschränkt ist, welches auf einem Host-Computer läuft. Vielmehr bezeichnet der Ausdruck Computerprogramm, wie er hier verwendet wird, in übergeordneter Weise irgendeinen Typ eines Computerkodes (z. B. Software oder Mikrokode), der dazu verwendet werden kann, um einen Prozessor zu programmieren, um die oben erläuterten Aspekte der vorliegenden Erfindung zu implementieren.
  • Es sei auch darauf hingewiesen, dass in Einklang mit den verschiedenen Ausführungsformen der vorliegenden Erfindung, bei denen Prozesse in einem computerlesbaren Medium implementiert sind, die computer-implementierten Prozesse im Laufe von deren Ausführung auch Handeingaben (z. B. von einem Anwender) empfangen können.
  • Die hier verwendete Terminologie von Phrasen und Ausdrücken soll dem Zweck der Beschreibung dienen und ist nicht als einschränkend zu interpretieren. Die Verwendung von "enthaltend", "umfassend" oder "besitzend", "enthaltend", "involvierend" und Variationen dieser Ausdrücke sollen hier bedeuten, dass alle im Folgenden aufgelisteten Elemente und zusätzliche Elemente mit eingeschlossen sind.
  • Obwohl verschiedene Ausführungsformen der Erfindung in Einzelheiten beschreiben wurden, sind für Fachleute vielfältige Abwandlungen und Verbesserungen unmittelbar zu realisieren. Solche Abwandlungen und Verbesserungen fallen jedoch in den Rahmen der vorliegenden Erfindung. Daher bildet die vorangegangene Beschreibung lediglich ein Beispiel und ist in keiner Weise einschränkend zu interpretieren. Die Erfindung wird lediglich durch die nachfolgenden Ansprüche und Äquivalente von diesen eingeschränkt.

Claims (10)

  1. Wenigstens ein computerlesbares Medium, welches mit Instruktionen kodiert ist, die dann, wenn sie auf einem Computersystem ausgeführt werden, ein Verfahren durchführen, wobei das Computersystem wenigstens einen Host und wenigstens ein Speichersystem umfasst, wobei das Verfahren die folgenden Vorgänge beinhaltet: (A) Empfangen einer Anfrage von einem Host, um eine Einheit von Daten wegzulassen, die in einem Speichersystem gespeichert sind; (B) Bestimmen, ob eine an früherer Stelle definierte Aufbewahrungsperiode für die Einheit der Daten verstrichen ist; und (C) wenn bei dem Vorgang (B) bestimmt wurde, dass die Aufbewahrungsperiode der Einheit der Daten noch nicht verstrichen ist, Ablehnen der Anfrage nach Weglassen der Einheit der Daten.
  2. Wenigstens ein computerlesbares Medium nach Anspruch 1, bei dem das Verfahren ferner die folgenden Vorgänge umfasst: (D) wenn bei dem Vorgang (B) bestimmt wurde, dass die Aufbewahrungsperiode der Einheit der Daten verstrichen ist, die Einheit der Daten weggelassen wird.
  3. Wenigstens ein computerlesbares Medium nach Anspruch 1, bei dem die Vorgänge (A), (B) und (C) durch das Speichersystem ausgeführt werden.
  4. Wenigstens ein computerlesbares Medium nach Anspruch 1, bei dem die Einheit der Daten Zeitstempelinformationen enthalten, die angeben, wann die Einheit der Daten in dem Speichersystem gespeichert wurden, wobei die Aktion (B) das Prüfen der Zeitstempelinformationen umfasst, und wobei das Verfahren ferner eine Aktion gemäß Aussenden von wenigstens einer Host-Zeitinformation von einer verlässlichen Quelle aus umfasst, so dass das wenigstens eine die Zeitinformationen bei der Erzeugung des Zeitstempels verwenden kann.
  5. Speichersystem für die Verwendung in einem Computersystem, mit wenigstens einem Host und einem Speichersystem, wobei das Speichersystem Folgendes aufweist: wenigstens eine Speichervorrichtung zum Speichern von Daten, die von dem wenigstens einen Host empfangen werden; und wenigstens einen Controller, der von dem Host eine Anfrage empfängt, um eine Einheit der Daten, die in dem Speichersystem gespeichert sind, wegzulassen; welches bestimmt, ob einer zu einem früheren Zeitpunkt festgelegte Aufbewahrungsperiode für die Einheit der Daten verstrichen ist; und wenn bestimmt wurde, dass die Aufbewahrungsperiode für die Einheit der Daten noch nicht verstrichen ist, die Anfrage nach Weglassen der Einheit der Daten verneint oder ablehnt.
  6. Speichersystem nach Anspruch 5, bei dem wenigstens ein Controller Informationen empfängt, welche die Aufbewahrungsperiode für die Einheit der Daten spezifizieren.
  7. Speichersystem nach Anspruch 5, bei dem der wenigstens eine Controller die Einheit der Daten empfängt und die Einheit der Daten in wenigstens eine Speichervorrichtung einschreibt.
  8. Speichersystem für die Verwendung in einem Computersystem mit wenigstens einem Host und einem Speichersystem, wobei das Speichersystem Folgendes aufweist: wenigstens eine Speichervorrichtung zum Speichern von Daten, die von dem wenigstens einen Host empfangen wurden; und wenigstens einen Controller, der wenigstens eine Anfrage von dem Host empfängt, um eine Einheit von Daten in dem Speichersystem zu speichern, und zwar zumindest bis zum Ablauf einer Aufbewahrungsperiode, die in der wenigstens einen Anfrage spezifiziert ist; welche die Einheit der Daten in der wenigstens einen Speichervorrichtung abspeichert; und die Informationen, welche die Aufbewahrungsperiode spezifizieren, in der wenigstens einen Speichervorrichtung speichert.
  9. Verfahren zum Verarbeiten von Daten in einem Computersystem, mit wenigstens einem Host und wenigstens einem Speichersystem, welches Verfahren die folgenden Aktionen umfasst: (A) Übertragen von wenigstens einer Anfrage von dem Host zu dem Speichersystem, Anfragen, dass das Speichersystem eine Dateneinheit solange speichern soll, bis zumindest eine Aufbewahrungsperiode verstrichen ist, die in der wenigstens einen Anfrage spezifiziert ist.
  10. Verfahren nach Anspruch 9, bei dem die Aktion (A) das Aussenden von wenigstens einer Anfrage umfasst, welche die Aufbewahrungsperiode basierend wenigstens zum Teil auf einer Entstehungszeit bzw. Erzeugungszeitpunkt, wenn die Anfrage gesendet wird, und ferner die folgenden Aktionen umfasst: (B) Empfangen von Zeitinformationen von einer Quelle, die durch das wenigstens eine Speichersystem spezifiziert wird; und (C) Verwenden der Zeitinformationen, um den Erzeugungszeitpunkt zu erstellen.
DE200410056651 2003-12-09 2004-11-24 Verfahren und Einrichtung zur Datenarchivierung in einem Datenspeichersystem Ceased DE102004056651A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/731,790 US9075851B2 (en) 2003-12-09 2003-12-09 Method and apparatus for data retention in a storage system
US10/731,790 2003-12-09

Publications (1)

Publication Number Publication Date
DE102004056651A1 true DE102004056651A1 (de) 2005-07-07

Family

ID=34063595

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410056651 Ceased DE102004056651A1 (de) 2003-12-09 2004-11-24 Verfahren und Einrichtung zur Datenarchivierung in einem Datenspeichersystem

Country Status (5)

Country Link
US (1) US9075851B2 (de)
JP (1) JP2005174339A (de)
CN (1) CN1629826A (de)
DE (1) DE102004056651A1 (de)
GB (1) GB2409547A (de)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973654B1 (en) * 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
US7430645B2 (en) * 2004-01-21 2008-09-30 Emc Corporation Methods and apparatus for extending a retention period for data in a storage system
US20050193043A1 (en) * 2004-02-26 2005-09-01 HOOVER Dennis System and method for processing audit records
US9229646B2 (en) * 2004-02-26 2016-01-05 Emc Corporation Methods and apparatus for increasing data storage capacity
JP4009634B2 (ja) * 2004-03-04 2007-11-21 日本電気株式会社 アクセス制御方法、アクセス制御システム、メタデータ制御機、及び送信系装置
US8929524B2 (en) 2004-04-27 2015-01-06 Value-Added Communications, Inc. System and method for determining and associating tariff rates for institutional calls
US7627726B2 (en) * 2004-06-30 2009-12-01 Emc Corporation Systems and methods for managing content having a retention period on a content addressable storage system
JP2006072789A (ja) * 2004-09-03 2006-03-16 Hitachi Ltd ストレージシステム及びストレージシステムのデータ管理装置
US7933868B2 (en) * 2004-11-04 2011-04-26 Microsoft Corporation Method and system for partition level cleanup of replication conflict metadata
US8577852B2 (en) * 2006-03-23 2013-11-05 Infaxiom Group, Llc Automated records inventory and retention schedule generation system
US7461223B2 (en) * 2006-05-29 2008-12-02 Microsoft Corporation Retaining shadow copy data during replication
US7870102B2 (en) * 2006-07-12 2011-01-11 International Business Machines Corporation Apparatus and method to store and manage information and meta data
US20100005225A1 (en) * 2006-07-26 2010-01-07 Panasonic Corporation Nonvolatile memory device, nonvolatile memory system, and host device
JP5020673B2 (ja) 2007-03-27 2012-09-05 株式会社日立製作所 重複したファイルの記憶を防ぐコンピュータシステム
US7953946B2 (en) * 2007-04-16 2011-05-31 Microsoft Corporation Controlled anticipation in creating a shadow copy
US7716399B2 (en) * 2007-05-25 2010-05-11 Red Hat, Inc. Method and system for data management interface with intelligent plugins that determine whether to perform the requested data operation received from an application
US7856517B2 (en) * 2007-05-25 2010-12-21 Red Hat, Inc. Data management interface with configurable plugins that determines whether to monitor for configuration data
US20090063587A1 (en) 2007-07-12 2009-03-05 Jakob Holger Method and system for function-specific time-configurable replication of data manipulating functions
US7921268B2 (en) * 2007-07-12 2011-04-05 Jakob Holger Method and system for function-specific time-configurable replication of data
JP2009027387A (ja) * 2007-07-18 2009-02-05 Kyocera Mita Corp 画像形成装置、画像管理システムおよびプログラム
US8769291B2 (en) * 2007-07-23 2014-07-01 Red Hat, Inc. Certificate generation for a network appliance
US7783607B2 (en) * 2007-09-28 2010-08-24 Yahoo! Inc. Decentralized record expiry
US8903842B2 (en) * 2007-10-26 2014-12-02 Microsoft Corporation Metadata driven reporting and editing of databases
US8621027B2 (en) 2007-11-16 2013-12-31 Red Hat, Inc. Automatically providing identity information for a network appliance
US8191123B2 (en) * 2007-11-27 2012-05-29 Red Hat, Inc. Provisioning a network appliance
US8191122B2 (en) * 2007-11-27 2012-05-29 Red Hat, Inc. Provisioning a network appliance
US8539169B1 (en) * 2007-12-21 2013-09-17 Emc Corporation Managing power consumption of a storage system
US9619162B1 (en) * 2007-12-21 2017-04-11 EMC IP Holding Company LLC Selecting a data protection strategy for a content unit on a storage system
US8095726B1 (en) 2008-03-31 2012-01-10 Emc Corporation Associating an identifier with a content unit
JP5452988B2 (ja) * 2008-06-17 2014-03-26 パナソニック株式会社 メモリ制御装置、コンテンツ再生装置、制御方法及び記録媒体
JP5083093B2 (ja) * 2008-07-26 2012-11-28 コニカミノルタビジネステクノロジーズ株式会社 ファイル管理装置、ファイル管理プログラム、及びファイル管理システム
CA2675915C (en) * 2008-09-11 2015-04-28 Nec Laboratories America, Inc. Content addressable storage systems and methods employing searchable blocks
US8495036B2 (en) * 2008-10-24 2013-07-23 Microsoft Corporation Blob manipulation in an integrated structured storage system
US8620884B2 (en) * 2008-10-24 2013-12-31 Microsoft Corporation Scalable blob storage integrated with scalable structured storage
US8266290B2 (en) * 2009-10-26 2012-09-11 Microsoft Corporation Scalable queues on a scalable structured storage system
US8516137B2 (en) * 2009-11-16 2013-08-20 Microsoft Corporation Managing virtual hard drives as blobs
US8438342B1 (en) * 2009-12-09 2013-05-07 Emc Corporation Automated application-based storage provisioning
US8695104B2 (en) * 2010-04-23 2014-04-08 Dell Products, Lp System and method for creating conditional immutable objects in a storage device
US9996540B2 (en) * 2011-03-31 2018-06-12 EMC IP Holding Company LLC System and method for maintaining consistent points in file systems using a prime dependency list
US9047228B2 (en) * 2012-07-26 2015-06-02 Sap Se Systems and methods for data privacy and destruction
US9262423B2 (en) * 2012-09-27 2016-02-16 Microsoft Technology Licensing, Llc Large scale file storage in cloud computing
US20180101457A1 (en) * 2014-10-29 2018-04-12 International Business Machines Corporation Retrying failed write operations in a dispersed storage network
WO2016148738A1 (en) * 2015-03-13 2016-09-22 Hewlett Packard Enterprise Development Lp File management
US9875374B2 (en) * 2015-07-01 2018-01-23 Michael L. Brownewell System and method for collecting, storing, and securing data
US10372334B2 (en) 2016-02-11 2019-08-06 International Business Machines Corporation Reclaiming free space in a storage system
US10146652B2 (en) 2016-02-11 2018-12-04 International Business Machines Corporation Resilient distributed storage system
US10489345B2 (en) * 2016-03-25 2019-11-26 Netapp, Inc. Multiple retention period based representations of a dataset backup
US11422898B2 (en) 2016-03-25 2022-08-23 Netapp, Inc. Efficient creation of multiple retention period based representations of a dataset backup
US10620834B2 (en) 2016-03-25 2020-04-14 Netapp, Inc. Managing storage space based on multiple dataset backup versions
US10503429B2 (en) 2016-03-31 2019-12-10 EMC IP Holding Company LLC System and method for reference tracking garbage collector
US10303393B2 (en) 2016-06-21 2019-05-28 International Business Machines Corporation Technology for governance of data retention and transfer
US10289529B2 (en) 2017-01-26 2019-05-14 International Business Machines Corporation Testing a guarded storage facility
US10104710B1 (en) 2017-06-19 2018-10-16 Global Tel*Link Corporation Dual mode transmission in a controlled environment
US10333870B2 (en) 2017-07-06 2019-06-25 Global Tel*Link Corporation Presence-based communications in a controlled environment
KR102474596B1 (ko) 2017-12-06 2022-12-05 삼성전자주식회사 반도체 장치
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11360935B2 (en) * 2018-10-25 2022-06-14 Aparavi Software Ag Efficient data storage management system

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107419A (en) * 1987-12-23 1992-04-21 International Business Machines Corporation Method of assigning retention and deletion criteria to electronic documents stored in an interactive information handling system
US4899299A (en) 1987-12-23 1990-02-06 International Business Machines Corporation Method for managing the retention of electronic documents in an interactive information handling system
US5313631A (en) * 1991-05-21 1994-05-17 Hewlett-Packard Company Dual threshold system for immediate or delayed scheduled migration of computer data files
JP2612984B2 (ja) 1991-12-02 1997-05-21 株式会社テック 売上データ管理装置
US5689699A (en) * 1992-12-23 1997-11-18 International Business Machines Corporation Dynamic verification of authorization in retention management schemes for data processing systems
US5813009A (en) * 1995-07-28 1998-09-22 Univirtual Corp. Computer based records management system method
JPH10124351A (ja) 1996-10-18 1998-05-15 Nec Corp ファイル保存期間管理装置、ファイル保存期間管理方法 およびファイル保存期間管理用プログラムを記憶した記 憶媒体
JP3044005B2 (ja) 1997-05-29 2000-05-22 公一 柴山 データ格納制御方式
DE69907631T2 (de) 1998-01-23 2004-02-26 Emc Corp., Hopkinton Netzzugang zu inhaltsadressierbaren daten
US6807632B1 (en) * 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
JP3980748B2 (ja) 1998-04-16 2007-09-26 株式会社リコー ネットワークシステム
US7392234B2 (en) * 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US6718347B1 (en) * 1999-01-05 2004-04-06 Emc Corporation Method and apparatus for maintaining coherence among copies of a database shared by multiple computers
US20010034728A1 (en) * 1999-04-14 2001-10-25 Mcbride Stephen Larry Method and apparatus for automatically synchronizing data to electronic devices across a communications network
US6976165B1 (en) 1999-09-07 2005-12-13 Emc Corporation System and method for secure storage, transfer and retrieval of content addressable information
JP2001356942A (ja) 2000-06-14 2001-12-26 Nec Corp データベースシステム
JP2002024076A (ja) 2000-07-07 2002-01-25 Minolta Co Ltd ファイル削除規制装置、シート廃棄規制装置、ファイル廃棄規制方法およびシート廃棄規制方法
US7272613B2 (en) * 2000-10-26 2007-09-18 Intel Corporation Method and system for managing distributed content and related metadata
US7609936B2 (en) * 2001-02-02 2009-10-27 Sony Corporation Content recording/reproducing apparatus and method, storage medium and computer program
GB2376323B (en) 2001-06-09 2006-03-15 Hewlett Packard Co Trusted and verifiable data storage system
JP3778009B2 (ja) * 2001-06-13 2006-05-24 ソニー株式会社 データ転送システム、データ転送装置、データ記録装置、データ管理方法
US7287047B2 (en) * 2001-11-23 2007-10-23 Commvault Systems, Inc. Selective data replication system and method
US20040039594A1 (en) * 2002-01-09 2004-02-26 Innerpresence Networks, Inc. Systems and methods for dynamically generating licenses in a rights management system
CA2492842A1 (en) * 2002-07-16 2004-01-22 Michael Ruth A system and method for providing corporate governance-related services
US7293242B2 (en) * 2002-10-15 2007-11-06 International Business Machines Corporation Facilitated source to target object editing functions
US7478096B2 (en) * 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
US7146388B2 (en) * 2003-10-07 2006-12-05 International Business Machines Corporation Method, system, and program for archiving files
US7107416B2 (en) * 2003-09-08 2006-09-12 International Business Machines Corporation Method, system, and program for implementing retention policies to archive records
US7117322B2 (en) * 2003-09-08 2006-10-03 International Business Machines Corporation Method, system, and program for retention management and protection of stored objects
US7548871B2 (en) * 2003-09-11 2009-06-16 International Business Machines Corporation Simulation of business transformation outsourcing
US7590807B2 (en) * 2003-11-03 2009-09-15 Netapp, Inc. System and method for record retention date in a write once read many storage system
US7281084B1 (en) * 2005-01-12 2007-10-09 Emc Corporation Method and apparatus for modifying a retention period

Also Published As

Publication number Publication date
US9075851B2 (en) 2015-07-07
JP2005174339A (ja) 2005-06-30
CN1629826A (zh) 2005-06-22
US20050125411A1 (en) 2005-06-09
GB0426364D0 (en) 2005-01-05
GB2409547A (en) 2005-06-29

Similar Documents

Publication Publication Date Title
DE102004056651A1 (de) Verfahren und Einrichtung zur Datenarchivierung in einem Datenspeichersystem
DE3407642C2 (de)
DE69730321T2 (de) Verfahren und vorrichtung zum schützen von daten mit mehreren auf datenelementebene anwendbaren verschlüsselungsstufen
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
DE112014000408B4 (de) Sicheres Speichern und Zugreifen auf digitale Artefakte
EP1410128A1 (de) Datenverarbeitungsvorrichtung
WO2003007132A1 (de) Speichereinrichtung mit datenschutz in einem prozessor
DE60306209T2 (de) Verfahren, mobile vorrichtungen und rechnerlesbare media zur datenverwaltung
DE10244728A1 (de) System und Verfahren zum Schutz von Daten, die auf einer Speicherungsmedienvorrichtung gespeichert sind
DE102017104080A1 (de) Generalisiertes verifizierungsschema für sichere metadaten-modifizierung
DE112004002974B4 (de) Beweissicheres und schnelles WORM-Speichersystem auf Festplattenbasis
DE102021128519A1 (de) Dokumentzugangskontrolle auf grundlage von dokumentkomponenten-layouts
EP3552141B1 (de) Server-computersystem zur bereitstellung von datensätzen
EP3588357B1 (de) System mit zertifikat-basierter zugriffskontrolle
EP3539044B1 (de) Zugriffskontrolle auf datenobjekte
DE102004004101A1 (de) Verfahren und System zum Schutz elektronischer Datenobjekte vor unberechtigtem Zugriff
EP3552140B1 (de) Datenbankindex aus mehreren feldern
DE102004019681A1 (de) Verfahren zum Schreiben von Daten und Datenverarbeitungsgerät
DE102008010792B4 (de) Verfahren für den unmanipulierbaren und abhörsicheren Datei- und Ordnerzugriff
EP1700182B1 (de) Verfahren zum wiederherstellen eines berechtigungscodes
DE10205316B4 (de) Schlüsselmanagementeinrichtung und Verfahren zur verschlüsselten Ablage von digitalen Datenwörtern
DE112021004991T5 (de) Verwaltung einer wiederherstellung eines datenspeicher-datenvolumens
EP3580908B1 (de) Zugriffsverwaltungssystem zum export von datensätzen
EP2915046A1 (de) Verfahren zum geschützten wiederherstellen von daten, computerprogrammprodukt sowie computersystem
DE102012111181A1 (de) Speichersystem, insbesondere Cloud Storage System, und Computerprogrammprodukt

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection