-
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.