DE112017000530T5 - Konsistentes Speichern von Daten in einem verstreuten Speichernetzwerk - Google Patents

Konsistentes Speichern von Daten in einem verstreuten Speichernetzwerk Download PDF

Info

Publication number
DE112017000530T5
DE112017000530T5 DE112017000530.2T DE112017000530T DE112017000530T5 DE 112017000530 T5 DE112017000530 T5 DE 112017000530T5 DE 112017000530 T DE112017000530 T DE 112017000530T DE 112017000530 T5 DE112017000530 T5 DE 112017000530T5
Authority
DE
Germany
Prior art keywords
group
write
data
coded data
requests
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.)
Pending
Application number
DE112017000530.2T
Other languages
English (en)
Inventor
Andrew Dominic Baptist
Adam Michael Gray
Ethan Wozniak
Ilya Volvovski
Wesley Leggette
Jason Keith Resch
Scott Horan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112017000530T5 publication Critical patent/DE112017000530T5/de
Pending legal-status Critical Current

Links

Images

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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • 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/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

Ein Verfahren enthält für eine Schreiboperation, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, ein Bestimmen durch eine Datenverarbeitungseinheit, ob die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten (200) ist. Das Verfahren enthält des Weiteren, wenn die Schreiboperation ein erster Vorgang ist, ein Senden einer Gruppe von Schreibanforderungen durch die Datenverarbeitungseinheit an die Speichereinheiten, wobei die Schreibanforderungen die Gruppe von codierten Datenausschnitten, Ausschnittnamen und eine Angabe des ersten Vorgangs (202) enthalten. Das Verfahren enthält des Weiteren in Reaktion auf eine Schreibanforderung der Gruppe von Schreibanforderungen ein Bestimmen durch eine Speichereinheit, ob eine frühere Version eines codierten Datenausschnitts aktuell von der Speichereinheit (204) gespeichert wird. Wenn die frühere Version aktuell von der Speichereinheit gespeichert wird, wird durch die Speichereinheit eine Konfliktnachricht an die Datenverarbeitungseinheit (206) gesendet. Das Verfahren enthält des Weiteren ein Aktualisieren der Schreibanforderungen durch die Datenverarbeitungseinheit auf Grundlage der Konfliktnachricht (208).

Description

  • TECHNISCHES GEBIET
  • Aspekte dieser Erfindung betreffen allgemein Computernetzwerke und insbesondere verstreute Speicherung von Daten und verteilte Aufgabenverarbeitung von Daten.
  • HINTERGRUND DER ERFINDUNG
  • Von Datenverarbeitungseinheiten ist bekannt, dass sie Daten übermitteln, Daten verarbeiten und/oder Daten speichern. Derartige Datenverarbeitungseinheiten reichen von drahtlosen Smartphones, Laptops, Tablets, PCs, Workstations und Videospielgeräten bis zu Rechenzentren, die täglich Millionen von Websuchen, Aktiengeschäften oder Online-Einkäufen unterstützen. Im Allgemeinen enthält eine Datenverarbeitungseinheit eine Zentraleinheit (CPU), ein Arbeitsspeichersystem, Benutzer-Eingabe/Ausgabeschnittstellen, Peripherieeinheit-Schnittstellen und eine verbindende Busstruktur.
  • Wie des Weiteren bekannt ist, kann ein Computer seine CPU effektiv durch Verwenden von „Cloud-Computing“ erweitern, um eine oder mehrere Datenverarbeitungsfunktionen für den Computer auszuführen (z.B. einen Dienst, eine Anwendung, einen Algorithmus, eine arithmetische Logikfunktion usw.). Des Weiteren kann Cloud-Computing für umfangreiche Dienste, Anwendungen und/oder Funktionen durch mehrere Cloud-Computing-Ressourcen auf eine verteilte Weise ausgeführt werden, um die Reaktionszeit zum Abschließen des Dienstes, der Anwendung und/oder der Funktion zu verbessern. Zum Beispiel ist Hadoop ein Open-Source-Softwaregerüst, das verteilte Anwendungen unterstützt, indem eine Anwendungsausführung durch Tausende von Computern ermöglicht wird.
  • Zusätzlich zum Cloud-Computing kann ein Computer „Cloud-Speicherung“ als Teil seines Arbeitsspeichersystems verwenden. Wie bekannt ist, ermöglicht Cloud-Speicherung einem Benutzer, Daten, Anwendungen usw. über seinen Computer auf einem Internet-Speichersystem zu speichern. Das Internet-Speichersystem kann ein RAID- (Redundant Array of Independent Disks - redundantes Array von unabhängigen Platten) System und/oder ein verstreutes Speichersystem enthalten, das ein Fehlerkorrekturschema zum Verschlüsseln von Daten zur Speicherung verwendet.
  • Von verteilten Speichersystemen ist bekannt, dass sie einen Dreiphasenprozess zum konsistenten Schreiben in einen Arbeitsspeicher eines verstreuten Speichernetzwerks (DSN) verwenden, wobei die drei Phasen enthalten:
    1. 1. eine Schreibphase;
    2. 2. eine Zurverfügungsstellungsphase; und
    3. 3. eine Abschlussphase.
  • Die drei Phasen befassen sich mit Konsistenzproblemen, die sich aus verschiedenen Speichereinheiten des DSN ergeben können, das verschiedene Änderungen von codierten Datenausschnitten enthält, wobei Daten ein verstreuter Speicherfehler sind, der codiert wird, um die codierten Datenausschnitte zu erzeugen. Von den drei Phasen ist bekannt, dass sie einen Schwellenwertansatz verwenden, um den Schreibprozess zu der nächsten Phase vorzurücken oder den Prozess umzukehren, wenn Konflikte und Fehler auftauchen, um eine Konsistenz bei der Speicherung von Änderungen zu wahren.
  • Daher besteht beim Stand der Technik ein Bedarf, sich mit dem oben genannten Problem zu befassen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Verfahren für eine Datenverarbeitungseinheit eines verstreuten Speichernetzwerks (DSN) bereit, wobei das Verfahren aufweist: für eine Schreiboperation, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten des DSN geschrieben werden sollen, ein Bestimmen, ob die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei ein Datensegment eines Datenobjekts ein verstreuter Speicherfehler ist, der in die Gruppe von codierten Datenausschnitten encodiert ist; ein Senden einer Gruppe von Schreibanforderungen an die Speichereinheiten, wenn die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält; ein Empfangen von Antworten von mindestens einigen der Speichereinheiten, die sich auf die Gruppe von Schreibanforderungen beziehen; wenn eine Antwort von den Antworten eine Konfliktnachricht ist, ein Aktualisieren der Gruppe von Schreibanforderungen auf Grundlage der Konfliktnachricht, wobei die Konfliktnachricht angibt, dass eine frühere Version von mindestens einem codierten Datenausschnitt der Gruppe von codierten Datenausschnitten von einer Speichereinheit der Speichereinheiten gespeichert wird; und wenn eine Schreibschwellenwertanzahl der Antworten positive Schreibantworten sind, ein Senden einer Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten.
  • Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Speichersystem bereit, das ein erstes Modul aufweist, das, wenn es in einer Datenverarbeitungseinheit eines verstreuten Speichernetzwerks (DSN) betreibbar ist, die Datenverarbeitungseinheit veranlasst zum: Bestimmen für eine Schreiboperation, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten des DSN geschrieben werden sollen, ob die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei ein Datensegment eines Datenobjekts ein verstreuter Speicherfehler ist, der in die Gruppe von codierten Datenausschnitten encodiert ist; Senden einer Gruppe von Schreibanforderungen an die Speichereinheiten, wenn die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält; ein zweites Modul, das, wenn es in einer Speichereinheit der Speichereinheiten betreibbar ist, die Speichereinheit veranlasst zum: Bestimmen in Reaktion auf eine Schreibanforderung der Gruppe von Schreibanforderungen, ob eine frühere Version eines codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der Speichereinheit gespeichert wird; und wenn die frühere Version eines codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der Speichereinheit gespeichert wird, Senden einer Konfliktnachricht an die Datenverarbeitungseinheit; und ein drittes Modul, das, wenn es in der Datenverarbeitungseinheit betreibbar ist, die Datenverarbeitungseinheit veranlasst zum: Aktualisieren der Gruppe von Schreibanforderungen auf Grundlage der Konfliktnachricht.
  • Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Computerprogrammprodukt für eine Schreiboperation bereit, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten eines verstreuten Speichernetzwerks (DSN) geschrieben werden sollen, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung für ein Ausführen eines Verfahrens speichert, das die Schritte der Erfindung ausführt.
  • Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist und in den internen Arbeitsspeicher eines digitalen Computers geladen werden kann, wobei es Softwarecode-Abschnitte zum Ausführen der Schritte der Erfindung aufweist, wenn das Programm auf einem Computer ausgeführt wird.
  • Figurenliste
  • Im Folgenden werden Ausführungsformen der vorliegenden Erfindung allein zu Beispielzwecken unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei:
    • 1 ein schematisches Blockschaubild einer Ausführungsform eines verteilten Datenverarbeitungssystems gemäß der vorliegenden Erfindung ist;
    • 2 ein schematisches Blockschaubild einer Ausführungsform eines Datenverarbeitungskerns gemäß der vorliegenden Erfindung ist;
    • 3 bis 5 schematische Blockschaubilder einer Ausführungsform eines verstreuten Speichernetzwerks (DSN) gemäß der vorliegenden Erfindung sind;
    • 6 ein Ablaufplan ist, der ein Beispiel für ein Speichern von Daten gemäß der vorliegenden Erfindung veranschaulicht; und
    • 7 ein Ablaufplan ist, der ein weiteres Beispiel für ein Speichern von Daten gemäß der vorliegenden Erfindung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 1 ist ein schematisches Blockschaubild einer Ausführungsform eines verteilten Datenverarbeitungssystems 10, das eine Benutzereinheit 12 und/oder eine Benutzereinheit 14, eine verteilten Speicher- und/oder Aufgabenverarbeitungseinheit (DST) 16, eine verteilte Speicher- und/oder Aufgabennetzwerkverwaltungseinheit (DSTN) 18, eine DST-Integritätsverarbeitungseinheit 20 und ein verteiltes Speicher- und/oder Aufgabennetzwerk- (DSTN) Modul 22 enthält. Die Komponenten des verteilten Datenverarbeitungssystems 10 sind über ein Netzwerk 24 verbunden, das ein oder mehrere drahtlose und/oder drahtgebundene Kommunikationssysteme enthalten kann; ein oder mehrere nicht öffentliche Intranetsysteme und/oder öffentliche Internetsysteme; und/oder ein oder mehrere lokale Netzwerke (LAN) und/oder Weitverkehrsnetzwerke (WAN). Im Folgenden kann austauschbar auf das verteilte Datenverarbeitungssystem 10 auch als ein verstreutes Speichernetzwerk (DSN) verwiesen werden.
  • Das DSTN-Modul 22 enthält eine Mehrzahl von verteilten Speicher- und/oder Aufgaben- (DST) Ausführungseinheiten 36, die sich an geografisch verschiedenen Standorten befinden können (z.B., eine in Chicago, eine in Milwaukee usw.) Jede der DST-Ausführungseinheiten ist betreibbar, um verstreute fehlercodierte Daten zu speichern und/oder eine oder mehrere Aufgaben in Daten auf verteilte Weise auszuführen. Die Aufgaben können eine einfache Funktion (z.B. eine mathematische Funktion, eine Logikfunktion, eine Identifizierungsfunktion, eine Suchfunktion, eine Suchmaschinenfunktion, eine Ersetzungsfunktion usw.), eine komplexe Funktion (z.B. Komprimierung, Humansprachen- und oder Computersprachenübersetzung, Text-in-Stimme-Umwandlung, Stimme-in-Text-Umwandlung usw.), mehrere einfache und/oder komplexe Funktionen, ein oder mehrere Algorithmen, eine oder mehrere Anwendungen usw. sein. Im Folgenden kann austauschbar auf die DST-Ausführungseinheit als eine Speichereinheit verwiesen werden, und auf eine Gruppe von DST-Ausführungseinheiten kann austauschbar als eine Gruppe von Speichereinheiten verwiesen werden.
  • Jede der Benutzereinheiten 12 bis 14, die DST-Verarbeitungseinheit 16, die DSTN-Verwaltungseinheit 18 und die DST-Integritätsverarbeitungseinheit 20 enthalten einen Datenverarbeitungskern 26 und können eine tragbare Datenverarbeitungseinheit und/oder eine feststehende Datenverarbeitungseinheit sein. Eine tragbare Datenverarbeitungseinheit kann eine soziale Netzwerkeinheit, ein Spielgerät, ein Mobiltelefon, ein Smartphone, ein digitaler Assistent, ein digitales Musikabspielgerät, ein digitaler Videoplayer, ein Laptop-Computer, ein Handheld-Computer, ein Tablet, ein Videospiel-Controller und/oder jede andere tragbare Einheit sein, die einen Datenverarbeitungskern enthält. Eine feststehende Datenverarbeitungseinheit kann ein Computer (PC), ein Computerserver, eine Set-Top-Box für Kabel, ein Satellitenempfänger, ein Fernsehgerät, ein Drucker, ein Faxgerät, Unterhaltungselektronik, eine Videospielkonsole und/oder jeder Typ von privater oder geschäftlicher Datenverarbeitungsausrüstung sein. Die Benutzereinheit 12 und die DST-Verarbeitungseinheit 16 sind für die Aufnahme eines DST-Clientmoduls 34 konfiguriert
  • In Bezug auf Schnittstellen enthält jede Schnittstelle 30, 32 und 33 Software und/oder Hardware zum Unterstützen von einer oder mehreren indirekten und/oder direkten Kommunikationsverbindungen über das Netzwerk 24. Zum Beispiel unterstützt die Schnittstelle 30 eine Kommunikationsverbindung (z.B. drahtgebunden, drahtlos, direkt, über ein LAN, über das Netzwerk 24 usw.) zwischen der Benutzereinheit 14 und der DST-Verarbeitungseinheit 16. Als weiteres Beispiel unterstützt die Schnittstelle 32 Kommunikationsverbindungen (z.B. eine drahtgebundene Verbindung, eine drahtlose Verbindung, eine LAN-Verbindung und/oder jeden anderen Typ von Verbindung zu dem/von dem Netzwerk 24) zwischen der Benutzereinheit 12 und dem DSTN-Modul 22 und zwischen der DST-Verarbeitungseinheit 16 und dem DSTN-Modul 22. Als noch ein weiteres Beispiel unterstützt die Schnittstelle 33 eine Kommunikationsverbindung zu dem Netzwerk 24 für jede von der DSTN-Verwaltungseinheit 18 und DST-Integritätsverarbeitungseinheit 20.
  • Das verteilte Datenverarbeitungssystem 10 ist betreibbar, um Speicherung und Abruf von codierten Daten eines verstreuten Speicher- (DS) Fehlers zu unterstützen, verteilte Aufgabenverarbeitung in empfangenen Daten zu unterstützen und/oder verteilte Aufgabenverarbeitung in gespeicherten Daten zu unterstützen. Im Allgemeinen und in Bezug auf Speicherung und Abruf von codierten Daten eines DS-Fehlers unterstützt das verteilte Datenverarbeitungssystem 10 drei primäre Operationen: Speicherverwaltung, Datenspeicherung und -abruf und Datenspeicher-Integritätsprüfung. Gemäß diesen drei primären Funktionen können Daten codiert (z.B. unter Verwendung eines Informationsstreualgorithmus (IDA), wobei ein Encodierungsprozess für einen verstreuten Speicherfehler verwendet wird), in physisch verschiedenen Standorten verteilt gespeichert und anschließend zuverlässig und sicher abgerufen werden. Im Folgenden kann austauschbar auf „verteilt gespeichert“ auch als „verstreut gespeichert“ verwiesen werden. Ein derartiges System ist tolerant gegenüber einer beträchtlichen Anzahl von Fehlern (z.B. bis zu einer Fehlerstufe, die größer oder gleich einer Pillar-Breite sein kann (z.B. eine IDA-Breite des IDA) abzüglich eines Decodierschwellenwerts minus eins), die aus Fehlern einer einzelnen Speichereinheit (z.B. DST-Ausführungseinheit 36) und/oder Netzwerkausrüstungsfehlern ohne Datenverlust und ohne Notwendigkeit einer redundanten oder Sicherungskopie stammen kann. Des Weiteren ermöglicht das verteilte Datenverarbeitungssystem 10, dass die Daten für einen unbegrenzten Zeitraum ohne Datenverlust gespeichert werden können und ermöglicht dies auf sichere Weise (z.B. ist das System sehr widerstandsfähig gegenüber nicht autorisierten Versuchen von Zugriffen auf die Daten).
  • Die zweite primäre Funktion (d.h. Speichern und Abrufen von verteilten Daten) beginnt und endet mit einer Benutzereinheit 12 bis 14. Wenn zum Beispiel ein zweiter Typ der Benutzereinheit 14 Daten 40 hat, die in dem DSTN-Modul 22 gespeichert werden sollen, sendet er die Daten 40 über seine Schnittstelle 30 an die DST-Verarbeitungseinheit 16. Die Schnittstelle 30 arbeitet so, dass sie eine herkömmliche Dateisystemschnittstelle eines Betriebssystems (OS) nachahmt (z.B. Netzwerkdateisystem (NFS), Flash-Dateisystem (FFS), Plattendateisystem (DFS), Dateiübertragungsprotokoll (FTP), verteilte Dokumenterstellung und Versionsverwaltung auf Web-Grundlage (WebDAV) usw.) und/oder eine Block-Arbeitsspeicherschnittstelle (z.B. Small Computer System Interface (SCSI), Internet Small Computer System Interface (iSCSI) usw.). Außerdem kann die Schnittstelle 30 einen Benutzer-Identifizierungscode (ID) an die Daten 40 anhängen.
  • Zum Unterstützen der Speicherverwaltung führt die DSTN-Verwaltungseinheit 18 DS-Verwaltungsdienste aus. Ein derartiger DS-Verwaltungsdienst enthält die DSTN-Verwaltungseinheit 18, die verteilte Datenspeicherparameter erstellt (z.B. Vaulterstellung, verteilte Speicherparameter, Sicherheitsparameter, Fakturierungsinformationen, Benutzerprofilinformationen usw.) für eine einzelne Benutzereinheit 12 bis 14 oder als Teil einer Gruppe von Benutzereinheiten. Zum Beispiel koordiniert die DSTN-Verwaltungseinheit 18 die Erstellung eines Vaults (z.B. ein virtueller Arbeitsspeicherblock, der einem Abschnitt eines Gesamtnamensbereichs des DSN zugehörig ist) im Arbeitsspeicher des DSTN-Moduls 22 für eine Benutzereinheit, eine Gruppe von Einheiten oder für öffentlichen Zugriff, und erstellt pro Vault Encodierungsparameter für einen verstreuten Speicher- (DS) Fehler für einen Vault. Die DSTN-Verwaltungseinheit 18 kann eine Speicherung von Encodierungsparametern für einen DS-Fehler für jeden Vault von einer Mehrzahl von Vaults vereinfachen, indem Registry-Informationen für das verteilte Datenverarbeitungssystem 10 aktualisiert werden. Das Vereinfachen enthält ein Speichern von aktualisierten Systemregistry-Informationen in einem oder mehreren des DSTN-Moduls 22, der Benutzereinheit 12, der DST-Verarbeitungseinheit 16 und der DST-Integritätsverarbeitungseinheit 20.
  • Die Encodierungsparameter für einen DS-Fehler (z.B. oder die Encodierungsparameter eines verstreuten Speicherfehlers zum Codieren und Decodieren) enthalten Datensegmentierungsinformationen (z.B. in wie viele Segmente Daten (z.B. eine Datei, eine Gruppe von Dateien, ein Datenblock usw.) unterteilt sind), Segmentsicherheitsinformationen (z.B. nach Segmentverschlüsselung, Komprimierung, Integritätsprüfsumme usw.), Fehlercodierungsinformationen (z.B. Pillar-/IDA-Breite, Decodierschwellenwert, Leseschwellenwert, Schreibschwellenwert usw.), Ausschnittinformationen (z.B. die Anzahl von codierten Datenausschnitten, die für jedes Datensegment erstellt werden); und Ausschnittsicherheitsinformationen (z.B. nach codierter Datenausschnittverschlüsselung, Komprimierung, Integritätsprüfsumme usw.).
  • Die DSTN-Verwaltungseinheit 18 erstellt und speichert Benutzerprofilinformationen (z.B. eine Zugriffskontrollliste (ACL)) in einem lokalen Arbeitsspeicher und/oder in einem Arbeitsspeicher des DSTN-Moduls 22. Die Benutzerprofilinformationen enthalten Authentifizierungsinformationen, Genehmigungen und/oder die Sicherheitsparameter. Die Sicherheitsparameter können ein Verschlüsselungs-/Entschlüsselungsschema, einen oder mehrere Verschlüsselungsschlüssel, ein Schlüsselgenerierungsschema und/oder Datencodierungs-/-decodierungsschema enthalten.
  • Die DSTN-Verwaltungseinheit 18 erstellt Fakturierungsinformationen für einen bestimmten Benutzer, eine Benutzergruppe, einen Vaultzugriff, öffentlichen Vaultzugriff usw. Zum Beispiel verfolgt die DSTN-Verwaltungseinheit 18, wie oft ein Benutzer auf einen nicht öffentlichen Vault und/oder öffentliche Vaults zugreift, was zum Generieren von Fakturierungsinformationen nach Zugriff verwendet werden kann. In einem anderen Beispiel verfolgt die DSTN-Verwaltungseinheit 18 die Datenmenge, die von einer Benutzereinheit und/oder einer Benutzergruppe gespeichert und/oder abgerufen wird, was zum Generieren von Fakturierungsinformationen nach Datenmenge verwendet werden kann.
  • Ein anderer DS-Verwaltungsdienst enthält die DSTN-Verwaltungseinheit 18, die Netzwerkoperationen, Netzwerkverwaltung und/oder Netzwerkwartung ausführt. Zu Netzwerkoperationen zählen ein Authentifizieren von Benutzerdaten-Zuordnungsanforderungen (z.B. Lese- und/oder Schreibanforderungen), ein Verwalten von Vaulterstellungen, ein Erstellen von Authentifizierungsdaten für Benutzereinheiten, ein Hinzufügen/Löschen von Komponenten (z.B. Benutzereinheiten, DST-Ausführungseinheiten und/oder DST-Verarbeitungseinheiten) aus dem verteilten Datenverarbeitungssystem 10 und/oder ein Erstellen von Authentifizierungsdaten für DST-Ausführungseinheiten 36. Zur Netzwerkverwaltung zählt ein Überwachen von Geräten und/oder Einheiten auf Fehler, ein Verwalten von Vaultinformationen, ein Bestimmen von Geräte- und/oder Einheiten-Aktivierungszuständen, ein Bestimmen von Geräte- und/oder Einheitenladung und/oder ein Bestimmen jeder anderen Operation auf Systemebene, die sich auf das Leistungsniveau des Systems 10 auswirkt. Zur Netzwerkwartung zählt ein Vereinfachen von Ersetzen, Aktualisieren, Reparieren und/oder Erweitern eines Geräts und/oder einer Einheit des Systems 10.
  • Zum Unterstützen der Überprüfung der Datenspeicherintegrität in dem verteilten Datenverarbeitungssystem 10 führt die DST-Integritätsverarbeitungseinheit 20 ein Wiederaufbauen von „ungültigen“ oder fehlenden codierten Datenausschnitten aus. Auf einer hohen Ebene führt die DST-Integritätsverarbeitungseinheit 20 ein Wiederaufbauen durch periodische Versuche aus, codierte Datenausschnitte und/oder Ausschnittnamen der codierten Datenausschnitte aus dem DSTN-Modul 22 abzurufen/aufzulisten. Abgerufene codierte Ausschnitte werden auf Fehler aufgrund von Datenkorruption, veralteter Version usw. geprüft. Wenn ein Ausschnitt einen Fehler enthält, wird er als „ungültiger“ Ausschnitt gekennzeichnet. Codierte Datenausschnitte, die nicht empfangen und/oder nicht aufgelistet wurden, werden als fehlende Ausschnitte gekennzeichnet. Ungültige und/oder fehlende Ausschnitte werden anschließend unter Verwendung anderer abgerufener codierter Datenausschnitte wiederaufgebaut, die als gute Ausschnitte zum Erzeugen wiederaufgebauter Ausschnitte eingestuft werden. Die wiederaufgebauten Ausschnitte werden im Arbeitsspeicher des DSTN-Moduls 22 gespeichert. Zu beachten ist, dass die DST-Integritätsverarbeitungseinheit 20 eine separate Einheit sein kann, wie gezeigt, sie kann in dem DSTN-Modul 22 enthalten sein, sie kann in der DST-Verarbeitungseinheit 16 enthalten sein und/oder unter den DST-Ausführungseinheiten 36 verteilt sein. Jeder Ausschnittname ist für einen entsprechenden codierten Datenausschnitt eindeutig und enthält mehrere Felder, die dem Gesamtnamensbereich des DSN zugehörig sind. Zum Beispiel können die Felder eine Pillar-Nummer/einen Pillar-Index, eine Vaultkennung, eine eindeutig einer bestimmten Datei zur Speicherung zugehörige Objektnummer und eine Datensegmentkennung einer Mehrzahl von Datensegmenten enthalten, wobei die bestimmte Datei in die Mehrzahl von Datensegmenten unterteilt ist. Zum Beispiel unterscheidet sich jeder Ausschnittname einer Gruppe von Ausschnittnamen, die einer Gruppe von codierten Datenausschnitten entsprechen, die ein verstreuter Speicherfehler war, der aus einem gemeinsamen Datensegment codiert wurde, nur durch Einträge des Felds der Pillar-Nummer, da jeder eine gemeinsame Vaultkennung, eine gemeinsame Objektnummer und eine gemeinsame Datensegmentkennung benutzt.
  • Zum Unterstützen von verteilter Aufgabenverarbeitung in empfangenen Daten besitzt das verteilte Datenverarbeitungssystem 10 zwei primäre Operationen: DST- (verteilte Speicher- und/oder Aufgabenverarbeitung) Verwaltung und DST-Ausführung an empfangenen Daten. In Bezug auf den Speicherabschnitt der DST-Verwaltung funktioniert die DSTN-Verwaltungseinheit 18 wie vorher beschrieben. In Bezug auf die Aufgabenverarbeitung der DST-Verwaltung führt die DSTN-Verwaltungseinheit 18 Verwaltungsdienste für verteilte Aufgabenverwaltung (DTP) aus. Ein derartiger DTP-Verwaltungsdienst enthält die DSTN-Verwaltungseinheit 18, die DTP-Parameter (z.B. Benutzer-Vault-Zugehörigkeitsinformationen, Fakturierungsinformationen, Benutzer-Aufgabeninformationen usw.) für eine einzelne Benutzereinheit 12 bis 14 oder als Teil einer Gruppe von Benutzereinheiten erstellt.
  • Ein weiterer DTP-Verwaltungsdienst enthält die DSTN-Verwaltungseinheit 18, die DTP-Netzwerkoperationen, Netzwerkverwaltung (die im Wesentlichen dieselbe wie oben beschrieben ist) und/oder Netzwerkwartung ausführt (die im Wesentlichen dieselbe wie oben beschrieben ist). Zu Netzwerkoperationen zählt ein Authentifizieren von Benutzeraufgaben-Verarbeitungsanforderungen (z.B. gültige Anforderung, gültiger Benutzer usw.), ein Authentifizieren von Ergebnissen und/oder Teilergebnissen, ein Erstellen von DTP-Authentifizierungsdaten für Benutzereinheiten, ein Hinzufügen/Löschen von Komponenten (z.B. Benutzereinheiten, DST-Ausführungseinheiten und/oder DST-Verarbeitungseinheiten) aus dem verteilten Datenverarbeitungssystem und/oder ein Erstellen von DTP-Authentifizierungsdaten für DST-Ausführungseinheiten, sie sind aber nicht darauf beschränkt.
  • Zum Unterstützen von verteilter Aufgabenverarbeitung in gespeicherten Daten besitzt das verteilte Datenverarbeitungssystem 10 zwei primäre Operationen: DST- (verteilte Speicher- und/oder Aufgaben-) Verwaltung und DST-Ausführung in gespeicherten Daten. Wenn in Bezug auf die DST-Ausführung an gespeicherten Daten der zweite Typ der Benutzereinheit 14 eine Aufgabenanforderung 38 zur Ausführung durch das DSTN-Modul 22 hat, sendet er die Ausgabenanforderung 38 über ihre Schnittstelle 30 an die DST-Verarbeitungseinheit 16. In Bezug auf die DST-Verwaltung ist sie im Wesentlichen der DST-Verwaltung zum Unterstützen von verteilter Aufgabenverarbeitung in empfangenen Daten ähnlich.
  • 2 ist ein schematisches Blockschaubild einer Ausführungsform eines Datenverarbeitungskerns 26, der ein Verarbeitungsmodul 50, einen Arbeitsspeicher-Controller 52, einen Hauptarbeitsspeicher 54, eine Videografik-Verarbeitungseinheit 55, einen Eingabe/Ausgabe- (E/A) Controller 56, eine Peripheral Component Interconnect- (PCI) Schnittstelle 58, ein E/A-Schnittstellenmodul 60, mindestens ein E/A-Einheitenschnittstellenmodul 62, einen grundlegenden Nur-Lese-Speicher-(ROM) eines Eingabe-Ausgabe-Systems (BIOS) 64 und ein oder mehrere Arbeitsspeicher-Schnittstellenmodule enthält. Das eine oder die mehreren Arbeitsspeicher-Schnittstellenmodul(e) enthält bzw. enthalten eines oder mehrere von einem Universal Serial Bus- (USB) Schnittstellenmodul 66, einem Hostbusadapter- (HBA) Schnittstellenmodul 68, einem Netzwerk-Schnittstellenmodul 70, einem Flash-Schnittstellenmodul 72, einem Festplatten-Schnittstellenmodul 74 und einem DSTN-Schnittstellenmodul 76.
  • Das DSTN-Schnittstellenmodul 76 arbeitet so, dass es eine herkömmliche Dateisystemschnittstelle eines Betriebssystems (OS) nachahmt (z.B. Netzwerkdateisystem (NFS), Flash-Dateisystem (FFS), Plattendateisystem (DFS), Dateiübertragungsprotokoll (FTP), verteilte Dokumenterstellung und Versionsverwaltung auf Web-Grundlage (WebDAV) usw.) und/oder eine Block-Arbeitsspeicherschnittstelle (z.B. Small Computer System Interface (SCSI), Internet Small Computer System Interface (iSCSI) usw.). Das DSTN-Schnittstellenmodul 76 und/oder das Netzwerk-Schnittstellenmodul 70 können als die Schnittstelle 30 der Benutzereinheit von 1 arbeiten. Des Weiteren ist anzumerken, dass auf das E/A-Einheitenschnittstellenmodul 62 und/oder die Arbeitsspeicher-Schnittstellenmodule kollektiv oder einzeln als E/A-Anschlüsse verwiesen werden kann.
  • 3 bis 5 sind schematische Blockschaubilder einer Ausführungsform eines verstreuten Speichernetzwerks (DSN), das die verteilte Speicher- und Aufgaben- (DST) Verarbeitungseinheit 16 von 1, das Netzwerk 24 von 1 und eine Gruppe von DST-Ausführungseinheiten 1 bis n enthält. Jede DST-Ausführungseinheit enthält das Verarbeitungsmodul 50 von 2 und einen Arbeitsspeicher 88. Der Arbeitsspeicher 88 kann unter Verwendung von einem oder mehreren Solid-State-Speichern, Magnetplattenlaufwerkspeichern, optischen Plattenlaufwerkspeichern usw. umgesetzt werden. Im Folgenden kann austauschbar auf die Gruppe von DST-Ausführungseinheiten als eine Gruppe von Speichereinheiten verwiesen werden.
  • In dem DSN encodiert ein verstreuter Speicherfehler der DST-Verarbeitungseinheit 16 ein Datensegment eines Datenobjekts, um eine Gruppe von codierten Datenausschnitten zur Speicherung in der Gruppe von DST-Ausführungseinheiten 1 bis n zu erzeugen. Im Lauf der Zeit kann das Datensegment des Datenobjekts bearbeitet oder anderweitig modifiziert werden, und für jede Bearbeitung oder Modifizierung codiert der verstreute Speicherfehler der DST-Verarbeitungseinheit 16 das Datensegment, um eine Gruppe von codierten Datenausschnitten zu erstellen. Für jede Version (z.B. das Original oder anschließende Bearbeitungen und/oder Modifizierungen) der Gruppe von codierten Datenausschnitten nutzt jede Version gemeinsam eine ähnliche Gruppe von Ausschnittnamen, wobei jede Version einen anderen Änderungsstand hat (z.B. Änderungsstand 0 für die anfängliche Version, Änderungsstand 1 für die erste Bearbeitung usw.).
  • In dem DSN können mehrere Benutzereinheiten versuchen, die Gruppe von codierten Datenausschnitten zu im Wesentlichen demselben Zeitpunkt zu bearbeiten/modifizieren. In einem bestehenden DSN verwendet eine Schreiboperation einen Dreiphasenprozess, um eine Parallelität eines Schreibens von Daten in die Speichereinheiten zu wahren. Wenn eine Benutzereinheit eine Gruppe von codierten Datenausschnitten schreiben möchte, gleichgültig ob eine ursprüngliche Gruppe oder eine modifizierte/bearbeitete Gruppe, sendet der Benutzer eine Gruppe von Schreibanforderungen an die Speichereinheiten. Eine Schreibanforderung enthält einen der codierten Datenausschnitte und dessen entsprechenden Ausschnittnamen. Nach Empfang der Schreibanforderung bestimmt die Speichereinheit, ob für den Ausschnittnamen eine weitere Schreibanforderung in Bearbeitung ist (z.B. eine andere Schreibanforderung, die sich auf den codierten Datenausschnitt von einer anderen Benutzereinheit bezieht). Wenn zum Beispiel nach Empfang der Schreibanforderung und Überprüfung, dass keine weitere Schreibanforderung ausstehend ist, eine Dreiphasen-Schreiboperation ausstehend ist, sperrt die Speichereinheit den Zugriff auf den codierten Datenausschnitt, bis die Schreiboperation abgeschlossen ist. Wenn der Zugriff auf den codierten Datenausschnitt nicht gesperrt ist, sperrt ihn die Speichereinheit für die aktuelle Schreiboperation, speichert den codierten Datenausschnitt vorübergehend, gestattet aber keinen Zugriff darauf, und sendet eine Schreibantwortnachricht, die angibt, dass die Speichereinheit in der Lage ist, die Schreibanforderung des Benutzers zu verarbeiten.
  • Wenn die Benutzereinheit eine Schreibschwellenwertanzahl von positiven Schreibantworten von den Speichereinheiten erhält, sendet sie Zurverfügungsstellungsanforderungen an die Speichereinheiten. Nach Empfang der Zurverfügungstellungsanforderung stellt eine Speichereinheit den codierten Datenausschnitt für den Zugriff zur Verfügung und sendet eine Schreibverfügbarkeitsantwort an die Benutzereinheit.
  • Wenn die Benutzereinheit eine Schreibschwellenwertanzahl von positiven Schreibverfügbarkeitsantworten für die Speichereinheit erhält, sendet sie Schreibabschlussanforderungen an die Speichereinheiten. Nach Empfang der Schreibabschlussanforderungen aktualisiert eine Speichereinheit den Zustand des neu gespeicherten codierten Datenausschnitts als die neueste Version des codierten Datenausschnitts, gibt die Sperre frei und kann eine ältere Version des codierten Datenausschnitts löschen.
  • Wenn unter Bezugnahme auf 3 eine Benutzereinheit (z.B. eine DST-Verarbeitungseinheit oder Datenverarbeitungseinheit) eine Gruppe von codierten Datenausschnitten besitzt, die in der Speichereinheit gespeichert werden sollen, bestimmt sie, ob dies ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist. Die Datenverarbeitungseinheit trifft die Bestimmung auf Grundlage von einem oder mehrerem eines Erkennens, dass die Schreiboperation einem neuen virtuellen Speichervault zugehörig ist, eines Erkennens, dass eine den Daten zugehörige virtuelle DSN-Adresse vor kurzem zufällig generiert wurde, eines Erkennens, dass die Daten im Wesentlichen neue Daten sind, eines Erkennens, dass der Speichervault im Wesentlichen leer ist, eines Interpretierens eines historischen Zugriffdatensatzes, der angibt, dass Vorgänge zum Schreiben neuer Daten bei Weitem die Anzahl von Vorgängen zum Überschreiben von früher gespeicherten Daten übertreffen, einer Vorabbestimmung und eines dem Ausführen von neuen Schreiboperationen zugehörigen Musters.
  • Wenn die Schreiboperation ein erster Vorgang zum Schreiben ist, sendet die DST-Verarbeitungseinheit 16 über das Netzwerk 24 eine Gruppe von Schreibanforderungen 1 bis n an die Speichereinheiten, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält. Die Angabe des ersten Vorgangs des Schreibens kann in jeder Schreibanforderung einen Änderungsstand enthalten, der einer ersten Änderung (z.B. Null oder Eins) zugehörig ist. Alternativ kann ein Weglassen einer Änderungsstandangabe in jeder Schreibanforderung den ersten Vorgang zum Schreiben angeben. Zum Beispiel generiert die DST-Verarbeitungseinheit 16 eine Gruppe von Ausschnittnamen auf Grundlage von einem oder mehrerem von einem Attribut der Daten (z.B. ein Datenname), einem Attribut einer anfordernden Entität (z.B. eine virtuelle Vaultzugehörigkeit), und ein zufälliger Generierungsansatz generiert die Gruppe von Schreibanforderungen, die die Gruppe von Ausschnittnamen, die Gruppe von codierten Datenausschnitten (z.B. A1 bis An) und ein Weglassen eines Änderungsstands enthalten sollen; und sendet über das Netzwerk 24 die Gruppe von Schreibausschnittanforderungen zum Speichern an die Gruppe von DST-Ausführungseinheiten 1 bis n. In Reaktion auf eine Schreibanforderung bestimmt eine Speichereinheit, ob sie eine frühere Version eines codierten Datenausschnitts mit demselben Ausschnittnamen speichert. Zum Beispiel gibt das Verarbeitungsmodul 50 der DST-Ausführungseinheit 1 an, dass sie keine frühere Version des codierten Datenausschnitts speichert, wenn sie keinen Datensatz für eine Speicherung eines codierten Datenausschnitts mit diesem Ausschnittnamen hat. Als ein alternatives Beispiel gibt das Verarbeitungsmodul der DST-Ausführungseinheit 1 (oder Speichereinheit 1) an, dass sie eine frühere Version des codierten Datenausschnitts speichert, wenn sie einen Datensatz für eine Speicherung eines codierten Datenausschnitts mit diesem Ausschnittnamen hat.
  • Wenn die Speichereinheit aktuell die frühere Version des codierten Datenausschnitts nicht speichert, gibt die Speichereinheit eine positive Schreibantwort an die DST-Verarbeitungseinheit 16 aus. Die positive Schreibantwort gibt an, dass die entsprechende Schreibausschnittanforderung positiv ohne einen Konflikt aufgrund einer vorher gespeicherten Änderung des codierten Datenausschnitts verarbeitet wurde. Außerdem stellt die Speichereinheit den codierten Datenausschnitt für einen Zugriff zur Verfügung.
  • Wenn die DST-Verarbeitungseinheit 16 die positiven Schreibantworten von mindestens einigen der Speichereinheiten empfängt (z.B. einen Schreibschwellenwert), gibt die DST-Verarbeitungseinheit 16 eine Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten aus, um ein anschließendes Abrufen von mindestens einigen der gespeicherten codierten Datenausschnitte zu vereinfachen. Nach Empfang der Schreib-Festschreibanforderungen schließen die Speichereinheiten die Schreiboperation ab. In diesem Beispiel sind zwei Austausche zwischen der Benutzereinheit und den Speichereinheiten im Gegensatz zu drei Austauschen in dem Dreiphasen-Schreibprozess vorhanden.
  • 4 veranschaulicht ein weiteres Beispiel für ein Speichern von Daten. In diesem Beispiel bestimmt die DST-Verarbeitungseinheit 16, ob die Schreiboperation für eine Gruppe von codierten Datenausschnitten der erste Vorgang zum Schreiben ist. Wenn die Schreiboperation der erste Vorgang zum Schreiben ist, sendet die DST-Verarbeitungseinheit 16 über das Netzwerk 24 eine Gruppe von Schreibanforderungen an die Speichereinheiten, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält.
  • In diesem Beispiel befand sich die DST-Verarbeitungseinheit 16 im Irrtum; es war nicht der ersten Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten. Wie gezeigt, speichert jede der DST-Ausführungseinheiten 1 eine frühere Version eines codierten Datenausschnitts. Zum Beispiel bestimmt das Verarbeitungsmodul 50 der DST-Ausführungseinheit 1, dass sie zwei frühere Versionen des codierten Datenausschnitts speichert (Änderungen 1 und 2). Auf ähnliche Weise bestimmt eine DST-Ausführungseinheit 2, dass sie eine frühere Version speichert, und eine DST-Ausführungseinheit n bestimmt, dass sie ebenfalls zwei frühere Versionen speichert.
  • Wenn dies eintritt, senden die DST-Ausführungseinheiten Konfliktantworten an die DST-Verarbeitungseinheit 16, die angeben, dass bereits frühere Versionen der codierten Datenausschnitte gespeichert sind. Nach Empfang der Konfliktanforderungen bestimmt die DST-Verarbeitungseinheit 16, dass die Schreiboperation nicht der erste Vorgang ist. Daher gibt die DST-Verarbeitungseinheit 16 über das Netzwerk eine Gruppe von Leseanforderungen an die Speichereinheiten aus, die sich auf die Gruppe von codierten Datenausschnitten beziehen. Nachdem sie die Gruppe von Leseanforderungen ausgegeben hat, bestimmt die DST-Verarbeitungseinheit 16 einen aktuellen Änderungsstand für die Gruppe von codierten Datenausschnitten auf Grundlage von Leseantworten von mindestens einigen der Speichereinheiten. Zum Beispiel gibt die DST-Verarbeitungseinheit 16 an, dass der aktuelle Änderungsstand Stand 2 ist, wenn die DST-Verarbeitungseinheit 16 bestimmt, dass mindestens eine Decodierschwellenwertanzahl von codierten Datenausschnitten einer Änderung 2 von der Gruppe von DST-Ausführungseinheiten gespeichert wird, wobei empfangene Leseantworten Änderungsstände von gespeicherten codierten Datenausschnitten angeben.
  • Nachdem der aktuelle Änderungsstand bestimmt worden ist, sendet die DST-Verarbeitungseinheit 16 eine neue Gruppe von Schreibanforderungen an die Speichereinheiten, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält. Zum Beispiel bestimmt die DST-Verarbeitungseinheit 16 den nächsten Änderungsstand als Stand 3 auf Grundlage des aktuellen Änderungsstands 2 und nimmt den nächsten Änderungsstand von Stand 4 in die Gruppe von Schreibanforderungen auf. Wenn eine Schreibschwellenwertanzahl der positiven Schreibantworten empfangen wurde, sendet die DST-Verarbeitungseinheit 16 eine Gruppe von Zurverfügungsstellungsanforderungen an die Speichereinheiten, um zu ermöglichen, dass die Gruppe von codierten Datenausschnitten anschließend wiederhergestellt wird.
  • Wenn daher das Schreiben einer Gruppe von codierten Datenausschnitten der erste Vorgang ist, wird der Prozess von 3 unter Verwendung der zwei Austausche umgesetzt. Wenn sich herausstellt, dass es sich nicht um den ersten Vorgang handelt, wird der Prozess von 4 unter Verwendung der drei Austausche umgesetzt.
  • 5 veranschaulicht des Weiteren das andere Beispiel des Speicherns von Daten, wobei die DST-Verarbeitungseinheit 16 bei Empfang der Konfliktnachricht die Gruppe von Schreibanforderungen auf Grundlage der Konfliktnachricht aktualisiert. Das Aktualisieren der Gruppe von Schreibanforderungen enthält die DST-Verarbeitungseinheit 16, die einen aktuellen Änderungsstand für die Gruppe von codierten Datenausschnitten auf Grundlage der Konfliktnachricht von einer oder mehreren der Speichereinheiten bestimmt (z.B. Stand 2), die Gruppe von Schreibanforderungen aktualisiert, um einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten aufzunehmen (z.B. Änderungsstand 3), und die aktualisierte Gruppe von Schreibanforderungen an die Speichereinheiten sendet, wobei die aktualisierte Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und den nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält. Zum Beispiel sendet die DST-Verarbeitungseinheit 16 über das Netzwerk 24 die aktualisierte Gruppe von Schreibanforderungen an die Gruppe von DST-Ausführungseinheiten 1 bis n, wobei die aktualisierte Gruppe von Schreibanforderungen den Änderungsstand 3 enthält.
  • Wenn alternativ die Schreiboperation der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, und die DST-Verarbeitungseinheit 16 positive Schreibantworten von mindestens einigen der Speichereinheiten empfängt, und wenn eine Schreibschwellenwertanzahl der positiven Schreibantworten empfangen wurde, sendet die DST-Verarbeitungseinheit 16 eine Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten.
  • 6 ist ein Ablaufplan, der ein Beispiel für ein Speichern von Daten veranschaulicht. Insbesondere wird ein Verfahren zur Verwendung in Verbindung mit einer oder mehreren Funktionen und Merkmalen dargestellt, die in Verbindung mit den 1 bis 2, 3 bis 5 und auch 6 beschrieben wurden. Das Verfahren beginnt mit Schritt 200, an dem eine Datenverarbeitungsvorrichtung von einer oder mehreren Datenverarbeitungsvorrichtungen eines verstreuten Speichernetzwerks (DSN) für eine Schreiboperation bestimmt, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten des DSN geschrieben werden sollen, ob die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei ein Datensegment eines Datenobjekts ein verstreuter Speicherfehler ist, der in die Gruppe von codierten Datenausschnitten encodiert ist. Die Bestimmung kann auf Grundlage von einem oder mehrerem eines Erkennens, dass die Schreiboperation einem neuen virtuellen Speichervault zugehörig ist, eines Erkennens, dass eine dem Datenobjekt zugehörige virtuelle DSN-Adresse vor kurzem zufällig generiert wurde, eines Erkennens, dass das Datenobjekt im Wesentlichen aus neuen Daten besteht, eines Erkennens, dass der Speichervault im Wesentlichen leer ist, eines Interpretierens eines historischen Zugriffdatensatzes, der angibt, dass Vorgänge zum Schreiben neuer Daten bei Weitem die Anzahl von Vorgängen zum Überschreiben von früher gespeicherten Daten übertreffen, einer Vorabbestimmung und eines dem Ausführen von neuen Schreiboperationen zugehörigen Musters erfolgen. Das Verfahren fährt mit Schritt 210 fort, wenn die Datenverarbeitungseinheit bestimmt, dass die Schreiboperation nicht der erste Vorgang des Schreibens ist. Das Verfahren fährt mit Schritt 202 fort, wenn die Datenverarbeitungseinheit bestimmt, dass die Schreiboperation der erste Vorgang des Schreibens ist.
  • Wenn die Schreiboperation der erste Vorgang des Schreibens der Gruppe von codierten Datenausschnitten ist, fährt das Verfahren mit Schritt 202 fort, an dem die Datenverarbeitungseinheit eine Gruppe von Schreibanforderungen an die Speichereinheiten sendet, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält. Die Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält entweder ein Bereitstellen eines Änderungsstands von Null in jeder Schreibanforderung der Gruppe von Schreibanforderungen oder ein Weglassen einer Änderungsstandsangabe in jeder Schreibanforderung der Gruppe von Schreibanforderungen.
  • In Reaktion auf eine Schreibanforderung der Gruppe von Schreibanforderungen fährt das Verfahren mit Schritt 204 fort, in dem eine Speichereinheit von der Gruppe von Speichereinheiten bestimmt, ob eine frühere Version eines codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der Speichereinheit gespeichert wird. In Reaktion auf eine weitere Schreibanforderung der Gruppe von Schreibanforderungen bestimmt eine andere Speichereinheit von der Gruppe von Speichereinheiten, ob eine frühere Version eines anderen codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der anderen Speichereinheit gespeichert wird.
  • Wenn die frühere Version eines codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der Speichereinheit gespeichert wird, fährt das Verfahren mit Schritt 206 fort, in dem die Speichereinheit eine Konfliktnachricht an die Datenverarbeitungseinheit sendet. Wenn der andere codierte Datenausschnitt von der anderen Speichereinheit gespeichert wird, sendet die andere Speichereinheit eine weitere Konfliktnachricht, die angibt, dass die andere Speichereinheit eine frühere Version des anderen codierten Datenausschnitts speichert.
  • Das Verfahren fährt mit Schritt 208 fort, in dem die Datenverarbeitungseinheit auf Grundlage der Konfliktnachricht die Gruppe von Schreibanforderungen aktualisiert. Das Aktualisieren enthält die Datenverarbeitungseinheit, die einen aktuellen Änderungsstand für die Gruppe von codierten Datenausschnitten auf Grundlage der Konfliktnachricht von einer oder mehreren der Speichereinheiten bestimmt, die Gruppe von Schreibanforderungen aktualisiert, um einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten aufzunehmen, und die aktualisierte Gruppe von Schreibanforderungen an die Speichereinheiten sendet, wobei die aktualisierte Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und den nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält.
  • Wenn alternativ die Schreiboperation der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, empfängt die Datenverarbeitungseinheit positive Schreibantworten von mindestens einigen der Speichereinheiten, und wenn eine Schreibschwellenwertanzahl der positiven Schreibantworten empfangen wurde, sendet die Datenverarbeitungseinheit eine Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten.
  • Wenn die Schreiboperation nicht der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, fährt das Verfahren mit Schritt 210 fort, in dem die Datenverarbeitungseinheit eine Gruppe von Leseanforderungen an die Speichereinheiten sendet, die sich auf die Gruppe von codierten Datenausschnitten beziehen. Das Verfahren fährt mit Schritt 212 fort, in dem die Datenverarbeitungseinheit einen aktuellen Änderungsstand für die Gruppe von codierten Datenausschnitten auf Grundlage von Leseantworten von mindestens einigen der Speichereinheiten bestimmt (z.B. einen nächsten Änderungsstand). Das Verfahren fährt mit Schritt 214 fort, in dem die Datenverarbeitungseinheit die Gruppe von Schreibanforderungen an die Speichereinheiten sendet, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und den nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält. Wenn eine Schreibschwellenwertanzahl der positiven Schreibantworten empfangen wurde, fährt das Verfahren mit Schritt 216 fort, in dem die Datenverarbeitungseinheit eine Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten sendet.
  • Das oben in Verbindung mit der Datenverarbeitungseinheit und den Speichereinheiten beschriebene Verfahren kann alternativ von anderen Modulen des verstreuten Speichernetzwerks oder von anderen Einheiten ausgeführt werden. Zum Beispiel kann jede Kombination eines ersten Moduls, eines zweiten Moduls, eines dritten Moduls, eines vierten Moduls usw. der Datenverarbeitungseinheit und der Speichereinheiten das oben beschriebene Verfahren ausführen. Außerdem kann mindestens ein Arbeitsspeicherabschnitt (z.B. ein erster Arbeitsspeicherabschnitt, ein zweiter Arbeitsspeicherabschnitt, ein dritter Arbeitsspeicherabschnitt, ein vierter Arbeitsspeicherabschnitt, ein fünfter Arbeitsspeicherabschnitt, ein sechster Arbeitsspeicherabschnitt usw. eines nichtflüchtigen computerlesbaren Speichermediums und/oder einer computerlesbaren Arbeitsspeichereinheit), der betriebliche Anweisungen speichert, bei Ausführung durch ein oder mehrere Verarbeitungsmodule von einer oder mehreren Verarbeitungseinheiten und/oder durch die Speichereinheiten des verstreuten Speichernetzwerks (DSN) die eine oder die mehreren Datenverarbeitungseinheiten und/oder die Speichereinheiten veranlassen, irgendwelche oder alle der oben beschriebenen Verfahrensschritte auszuführen.
  • 7 ist ein Ablaufplan, der ein weiteres Beispiel für ein Speichern von Daten veranschaulicht. Insbesondere wird ein Verfahren zum Verwenden in Verbindung mit einer oder mehreren Funktionen und Merkmalen dargestellt, die in Verbindung mit den 1 bis 2, 3 bis 5 und auch 7 beschrieben wurden. Das Verfahren beginnt mit Schritt 230, an dem ein Verarbeitungsmodul einer Datenverarbeitungsvorrichtung von einer oder mehreren Datenverarbeitungsvorrichtungen eines verstreuten Speichernetzwerks (DSN) für eine Schreiboperation bestimmt, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten des DSN geschrieben werden sollen, ob die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei ein Datensegment eines Datenobjekts ein verstreuter Speicherfehler ist, der in die Gruppe von codierten Datenausschnitten encodiert ist. Das Verfahren verzweigt sich zu Schritt 240, wenn die Schreiboperation nicht der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist. Das Verfahren fährt mit Schritt 232 fort, wenn die Schreiboperation der erste Vorgang ist.
  • Wenn die Schreiboperation der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, fährt das Verfahren mit Schritt 232 fort, an dem das Verarbeitungsmodul eine Gruppe von Schreibanforderungen an die Speichereinheiten sendet, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält. Das Verfahren fährt mit Schritt 235 fort, wobei das Verarbeitungsmodul Antworten von mindestens einigen der Speichereinheiten empfängt, die sich auf die Gruppe von Schreibanforderungen beziehen. Wenn keine der Antworten eine Konfliktnachricht enthält, verzweigt sich das Verfahren zu Schritt 238. Wenn mindestens eine Antwort die Konfliktnachricht enthält, fährt das Verfahren mit Schritt 236 fort.
  • Wenn eine Antwort von den Antworten die Konfliktnachricht ist, fährt das Verfahren mit Schritt 236 fort, in dem das Verarbeitungsmodul die Gruppe von Schreibanforderungen auf Grundlage der Konfliktnachricht aktualisiert, wobei die Konfliktnachricht angibt, dass eine frühere Version von mindestens einem codierten Datenausschnitt der Gruppe von codierten Datenausschnitten von einer Speichereinheit der Gruppe von Speichereinheiten gespeichert wird. Das Aktualisieren der Gruppe von Schreibanforderungen enthält das Verarbeitungsmodul, das einen aktuellen Änderungsstand für die Gruppe von codierten Datenausschnitten auf Grundlage der Konfliktnachricht von einer oder mehreren der Speichereinheiten bestimmt, die Gruppe von Schreibanforderungen aktualisiert, um einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten aufzunehmen, und die aktualisierte Gruppe von Schreibanforderungen an die Speichereinheiten sendet, wobei die aktualisierte Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und den nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält. Wenn keine der Antworten die Konfliktnachricht enthält, und wenn eine Schreibschwellenwertanzahl der Antworten aus positiven Schreibantworten besteht, fährt das Verfahren mit Schritt 238 fort, in dem das Verarbeitungsmodul eine Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten sendet.
  • Wenn die Schreiboperation nicht der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, fährt das Verfahren mit Schritt 240 fort, in dem das Verarbeitungsmodul eine Gruppe von Leseanforderungen an die Speichereinheiten sendet, die sich auf die Gruppe von codierten Datenausschnitten beziehen. Alternativ sendet das Verarbeitungsmodul eine Gruppe von Listenanforderungen an die Speichereinheiten, die sich auf die Ausschnittnamen der Gruppe von codierten Datenausschnitten beziehen. Das Verfahren fährt mit Schritt 242 fort, in dem das Verarbeitungsmodul einen aktuellen Änderungsstand für die Gruppe von codierten Datenausschnitten auf Grundlage von Leseantworten (z.B. oder alternativ von Listenantworten) von mindestens einigen der Speichereinheiten bestimmt.
  • Das Verfahren fährt mit Schritt 244 fort, in dem das Verarbeitungsmodul die Gruppe von Schreibanforderungen an die Speichereinheiten sendet, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält. Wenn eine Schreibschwellenwertanzahl der positiven Schreibantworten empfangen wurde, fährt das Verfahren mit Schritt 246 fort, in dem das Verarbeitungsmodul eine Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten sendet.
  • Das oben in Verbindung mit dem Datenverarbeitungsmodul beschriebene Verfahren kann alternativ von anderen Modulen des verstreuten Speichernetzwerks oder von anderen Einheiten ausgeführt werden. Zum Beispiel führt jede Kombination eines ersten Moduls, eines zweiten Moduls, eines dritten Moduls, eines vierten Moduls usw. des Verarbeitungsmoduls das oben beschriebene Verfahren aus. Außerdem kann mindestens ein Arbeitsspeicherabschnitt (z.B. ein erster Arbeitsspeicherabschnitt, ein zweiter Arbeitsspeicherabschnitt, ein dritter Arbeitsspeicherabschnitt, ein vierter Arbeitsspeicherabschnitt, ein fünfter Arbeitsspeicherabschnitt, ein sechster Arbeitsspeicherabschnitt usw. eines nichtflüchtigen computerlesbaren Speichermediums und/oder einer computerlesbaren Arbeitsspeichereinheit), der betriebliche Anweisungen speichert, bei Ausführung durch ein oder mehrere Verarbeitungsmodule des verstreuten Speichernetzwerks (DSN) die eine oder die mehreren Datenverarbeitungseinheiten veranlassen, irgendwelche oder alle der oben beschriebenen Verfahrensschritte auszuführen.
  • Die Begriffe „im Wesentlichen“ und „ungefähr“ wie sie hierin verwendet sein können, stellen eine in der Industrie akzeptierte Toleranz für den entsprechenden Begriff und/oder eine Relativität zwischen Elementen bereit. Eine derartige in der Industrie akzeptierte Toleranz reicht von weniger als einem Prozent bis zu fünfzig Prozent und bezieht sich auf Komponentenwerte, Prozessvariationen von integrierten Schaltungen, Temperaturabweichungen, Anstiegs- und Abfallzeiten und/oder thermisches Rauschen. Eine derartige Relativität zwischen Elementen reicht von einer Differenz von einigen Prozent bis zu Größenklassendifferenzen. Wie möglicherweise ebenfalls hierin verwendet, enthalten der bzw. die Begriffe „betriebsfähig verbunden mit“, „verbunden mit“ und/oder „verbindend“ ein direktes Verbinden zwischen Elementen und/oder indirektes Verbinden zwischen Elementen über ein dazwischenliegendes Element (z.B. enthält ein Element eine Komponente, ein Element, eine Schaltung und/oder ein Modul), wobei das dazwischenliegende Element für ein indirektes Verbinden die Informationen eines Signals nicht modifiziert, aber dessen Strompegel, Spannungspegel und/oder Leistungspegel anpassen kann. Wie des Weiteren möglicherweise hierin verwendet, enthält ein abgeleitetes Verbinden (d.h. wobei ein Element mit einem anderen mittels Ableitung verbunden wird) ein direktes und indirektes Verbinden zwischen zwei Elementen auf dieselbe Weise wie „verbunden mit“. Wie noch des Weiteren möglicherweise hierin verwendet, gibt der Begriff „betreibbar zum“ oder „betriebsfähig verbunden mit“ an, dass ein Element eines oder mehreres von Stromanschlüssen, einem Eingang bzw. Eingängen, einem Ausgang bzw. Ausgängen usw. enthält, um bei Aktivierung eine oder mehrere seiner entsprechenden Funktionen auszuführen, und des Weiteren eine abgeleitete Verbindung mit einem oder mehreren anderen Elementen enthalten kann. Wie noch des Weiteren möglicherweise hierin verwendet, enthält der Begriff „zugehörig zu“ ein direktes und/oder indirektes Verbinden von separaten Elementen und/oder einem Element, das in ein anderes Element eingebettet ist. Wie möglicherweise hierin verwendet, gibt der Begriff „vergleicht positiv“ an, dass ein Vergleich zwischen zwei oder mehreren Elementen, Signalen usw. eine gewünschte Beziehung bereitstellt. Wenn zum Beispiel die gewünschte Beziehung darin besteht, dass Signal 1 eine größere Größenklasse als Signal 2 hat, kann ein positiver Vergleich erreicht werden, wenn die Größenklasse von Signal 1 größer als diejenige von Signal 2 ist, oder wenn die Größeklasse von Signal 2 kleiner als diejenige von Signal 1 ist.
  • Wie möglicherweise ebenfalls hierin verwendet, können die Begriffe „Verarbeitungsmodul“, „Verarbeitungsschaltung“ und/oder „Verarbeitungseinheit“ eine einzelne Verarbeitungseinheit oder eine Mehrzahl von Verarbeitungseinheiten sein. Eine derartige Verarbeitungseinheit kann ein Mikroprozessor, ein Mikrocontroller, ein digitaler Signalprozessor, ein Mikrocomputer, eine Zentraleinheit, ein feldprogrammierbares Gate-Array, eine programmierbare Logikeinheit, eine Zustandsmaschine, eine logische Schaltung, eine analoge Schaltung, eine digitale Schaltung und/oder jede Einheit sein, die Signale (analog und/oder digital) auf Grundlage einer festen Programmierung der Schaltung und/oder von betrieblichen Anweisungen bearbeitet. Das Verarbeitungsmodul, ein Modul, eine Verarbeitungsschaltung und/oder eine Verarbeitungseinheit kann ein Arbeitsspeicher und/oder ein integriertes Arbeitsspeicherelement sein oder des Weiteren enthalten, das eine einzelne Arbeitsspeichereinheit, eine Mehrzahl von Arbeitsspeichereinheiten und/oder eingebettete Schaltung eines anderen Verarbeitungsmoduls, eines Modul, einer Verarbeitungsschaltung und/oder einer Verarbeitungseinheit sein kann. Eine derartige Arbeitsspeichereinheit kann ein Nur-Lese-Speicher, Direktzugriffspeicher, flüchtiger Speicher, nicht flüchtiger Speicher, statischer Speicher, dynamischer Speicher, Flash-Speicher, Cache-Speicher und/oder jede Einheit sein, die digitale Informationen speichert. Zu beachten ist, wenn das Verarbeitungsmodul, das Modul, die Verarbeitungsschaltung und/oder die Verarbeitungseinheit mehr als eine Verarbeitungseinheit enthält, dass die Verarbeitungseinheiten zentral positioniert sein können (z.B. direkt über eine drahtgebundene und/oder drahtlose Busstruktur miteinander verbunden sind) oder verteilt positioniert sein können (z.B. Cloud-Computing mittels indirekter Verbindung über ein lokales Netzwerk und/oder ein Weitverkehrsnetzwerk). Des Weiteren ist zu beachten, wenn das Verarbeitungsmodul, das Modul, die Verarbeitungsschaltung und/oder die Verarbeitungseinheit eine oder mehrere ihrer Funktionen über eine Zustandsmaschine, eine analoge Schaltung, eine digitale Schaltung und/oder eine logische Schaltung umsetzen, dass der Arbeitsspeicher und/oder das Arbeitsspeicherelement, der bzw. das die entsprechenden betrieblichen Anweisungen speichert, in die Schaltung eingebettet sein oder sich außerhalb davon befinden kann, wobei die Schaltung die Zustandsmaschine, die analoge Schaltung, die digitale Schaltung und/oder die logische Schaltung aufweist. Zu beachten ist noch des Weiteren, dass fest programmierte und/oder betriebliche Anweisungen, die mindestens einem der Schritte und/oder mindestens einer der Funktionen entsprechen, die in einer oder mehreren der Figuren veranschaulicht wurden, von dem Arbeitsspeicherelement gespeichert und von dem Verarbeitungsmodul, dem Modul, der Verarbeitungsschaltung und/oder der Verarbeitungseinheit ausgeführt werden können. Eine derartige Arbeitsspeichereinheit oder ein derartiges Arbeitsspeicherelement kann in einem Herstellungsgegenstand enthalten sein.
  • Die vorliegende Erfindung wurde oben mithilfe von Verfahrensschritten beschrieben, die die Leistung von angegebenen Funktionen und deren Beziehungen veranschaulichen. Die Grenzen und Abfolge dieser Funktionsbausteine und Verfahrensschritte wurden hierin aus Gründen einer einfacheren Beschreibung willkürlich definiert. Alternative Grenzen und Abfolgen können definiert werden, solange die angegebenen Funktionen und Beziehungen entsprechend ausgeführt werden. Alle derartigen alternativen Grenzen und Abfolgen liegen somit innerhalb des Schutzumfangs der beanspruchten Erfindung. Des Weiteren wurden die Grenzen dieser Funktionsbausteine aus Gründen einer einfacheren Beschreibung willkürlich definiert. Alternative Grenzen könnten definiert werden, solange bestimmte signifikante Funktionen entsprechend ausgeführt werden. Desgleichen können auch Ablaufplanblöcke hierin willkürlich definiert sein, um eine bestimmte signifikante Funktionalität zu veranschaulichen. In dem genutzten Umfang könnten die Grenzen und der Ablauf von Ablaufplanblöcken auch anders definiert sein und trotzdem die bestimmte signifikante Funktionalität ausführen. Derartige alternative Definitionen von sowohl von Funktionsbausteinen als auch Ablaufplanblöcken und Abfolgen liegen somit innerhalb des Schutzumfangs der beanspruchten Erfindung. Ein Fachmann wird auch erkennen, dass die Funktionsbausteine und andere veranschaulichende Blöcke, Module und Komponenten hierin wie veranschaulicht oder durch diskrete Komponenten, anwendungsspezifische integrierte Schaltungen, Prozessoren, die entsprechende Software ausführen und dergleichen oder jede Kombination davon umgesetzt werden können.
  • Die vorliegende Erfindung kann auch zumindest in Teilen in Bezug auf eine oder mehrere Ausführungsformen beschrieben worden sein. Eine Ausführungsform der vorliegenden Erfindung wird hierin verwendet, um die vorliegende Erfindung, einen Aspekt davon, ein Merkmal davon, ein Konzept davon und/oder ein Beispiel dafür zu veranschaulichen. Eine physische Ausführungsform einer Vorrichtung, eines Herstellungsgegenstands, einer Maschine und/oder eines Prozesses, die die vorliegende Erfindung verkörpert, kann einen oder mehrere der Aspekte, Merkmale, Konzepte, Beispiele usw. enthalten, die unter Bezugnahme auf eine oder mehrere hierin erörterte Ausführungsformen beschrieben wurden. Des Weiteren können die Ausführungsformen von Figur zu Figur dieselben oder ähnlich benannte Funktionen, Schritte, Module usw. enthalten, die dieselben oder verschiedene Bezugszeichen verwenden können, und daher können die Funktionen, Schritte, Module usw. dieselben oder verschiedene Funktionen, Schritte, Module usw. sein.
  • Sofern nicht speziell Gegenteiliges festgestellt wird, können Signale zu, von und/oder zwischen Elementen in einer Figur von allen der hierin dargestellten Figuren analog oder digital, zeitkontinuierlich oder zeitdiskret und unsymmetrisch oder differenziell sein. Wenn zum Beispiel ein Signalpfad als unsymmetrischer Pfad gezeigt wird, stellt er auch einen differenziellen Signalpfad dar. Wenn desgleichen ein Signalpfad als ein differenzieller Pfad gezeigt wird, stellt er auch einen unsymmetrischen Signalpfad dar. Obwohl eine oder mehrere spezielle Architekturen hierin beschrieben werden, können andere Architekturen ebenfalls umgesetzt werden, die einen oder mehrere Datenbusse, die nicht ausdrücklich gezeigt wurden, eine direkte Konnektivität zwischen Elementen und/oder eine indirekte Verbindung zwischen anderen Elementen verwenden, wie von einem Fachmann erkannt werden wird.
  • Der Begriff „Modul“ wird in der Beschreibung der verschiedenen Ausführungsformen der vorliegenden Erfindung verwendet. Ein Modul enthält ein Verarbeitungsmodul, einen Funktionsblock, Hardware und/oder Software, die im Arbeitsspeicher zum Ausführen von einer oder mehreren Funktionen gespeichert ist, wie hierin beschrieben sein kann. Zu beachten ist, wenn das Modul über Hardware umgesetzt wird, dass die Hardware unabhängig und/oder in Verbindung mit Software und/oder Firmware arbeiten kann. Wie hierin verwendet, kann ein Modul ein oder mehrere untergeordnete Module enthalten, von denen jedes ein oder mehrere Module sein kann.
  • Zwar wurden spezielle Kombinationen von verschiedenen Funktionen und Merkmalen der vorliegenden Erfindung hierin ausdrücklich beschrieben, doch sind andere Kombinationen dieser Merkmale und Funktionen ebenfalls möglich. Die vorliegende Erfindung wird nicht durch die speziellen, hierin offenbarten Beispiele begrenzt und verkörpert ausdrückliche diese weiteren Kombinationen.

Claims (18)

  1. Verfahren für eine Schreiboperation, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten eines verstreuten Speichernetzwerks (DSN) geschrieben werden sollen, wobei das Verfahren aufweist: ein Bestimmen durch eine Datenverarbeitungseinheit, ob die Schreiboperation einen ersten Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei ein Datensegment eines Datenobjekts ein verstreuter Speicherfehler ist, der in die Gruppe von codierten Datenausschnitten encodiert ist; wenn die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, ein Senden einer Gruppe von Schreibanforderungen an die Speichereinheiten durch die Datenverarbeitungseinheit, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält; ein Bestimmen in Reaktion auf eine Schreibanforderung der Gruppe von Schreibanforderungen durch eine Speichereinheit der Speichereinheiten, ob eine frühere Version eines codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der Speichereinheit gespeichert wird; wenn die frühere Version eines codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der Speichereinheit gespeichert wird, ein Senden einer Konfliktnachricht an die Datenverarbeitungseinheit durch die Speichereinheit; und ein Aktualisieren der Gruppe von Schreibanforderungen durch die Datenverarbeitungseinheit auf Grundlage der Konfliktnachricht.
  2. Verfahren nach Anspruch 1, wobei die Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten eines aufweist von: ein Bereitstellen eines Änderungsstands von Null in jeder Schreibanforderung der Gruppe von Schreibanforderungen; und ein Weglassen einer Änderungsstandsangabe in jeder Schreibanforderung der Gruppe von Schreibanforderungen.
  3. Verfahren nach einem der vorhergehenden Ansprüche, des Weiteren aufweisend: wenn die Schreiboperation nicht der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist: ein Senden einer Gruppe von Leseanforderungen an die Speichereinheiten, die sich auf die Gruppe von codierten Datenausschnitten beziehen, durch die Datenverarbeitungseinheit; ein Bestimmen eines aktuellen Änderungsstands für die Gruppe von codierten Datenausschnitten durch die Datenverarbeitungseinheit auf Grundlage von Leseantworten von mindestens einigen der Speichereinheiten; ein Senden der Gruppe von Schreibanforderungen an die Speichereinheiten durch die Datenverarbeitungseinheit, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält; und wenn eine Schreibschwellenwertanzahl von positiven Schreibantworten empfangen wurde, ein Senden einer Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten durch die Datenverarbeitungseinheit.
  4. Verfahren nach einem der vorhergehenden Ansprüche, des Weiteren aufweisend: wenn die Schreiboperation der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist: ein Empfangen von positiven Schreibantworten von mindestens einigen der Speichereinheiten; und wenn eine Schreibschwellenwertanzahl der positiven Schreibantworten empfangen wurde, ein Senden einer Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten durch die Datenverarbeitungseinheit.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Aktualisieren der Gruppe von Schreibanforderungen aufweist: ein Bestimmen eines aktuellen Änderungsstands für die Gruppe von codierten Datenausschnitten durch die Datenverarbeitungseinheit auf Grundlage der Konfliktnachricht von einer oder mehreren der Speichereinheiten; ein Aktualisieren der Gruppe von Schreibanforderungen durch die Datenverarbeitungseinheit, um einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten aufzunehmen; und ein Senden der aktualisierten Gruppe von Schreibanforderungen an die Speichereinheiten durch die Datenverarbeitungseinheit, wobei die aktualisierte Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und den nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält.
  6. Verfahren nach einem der vorhergehenden Ansprüche, des Weiteren aufweisend: ein Bestimmen in Reaktion auf eine weitere Schreibanforderung der Gruppe von Schreibanforderungen durch eine andere Speichereinheit der Speichereinheiten, ob eine frühere Version eines anderen codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der anderen Speichereinheit gespeichert wird; und wenn der andere codierte Datenausschnitt von der anderen Speichereinheit gespeichert wird, ein Senden einer anderen Konfliktnachricht durch die andere Speichereinheit, die angibt, dass die andere Speichereinheit eine frühere Version des anderen codierten Datenausschnitts speichert.
  7. Verfahren für eine Datenverarbeitungsvorrichtung eines verstreuten Speichernetzwerks (DSN), wobei das Verfahren aufweist: ein Bestimmen für eine Schreiboperation, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten des DSN geschrieben werden sollen, ob die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei ein Datensegment eines Datenobjekts ein verstreuter Speicherfehler ist, der in die Gruppe von codierten Datenausschnitten encodiert ist; wenn die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, ein Senden einer Gruppe von Schreibanforderungen an die Speichereinheiten, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält; ein Empfangen von Antworten von mindestens einigen der Speichereinheiten, die sich auf die Gruppe von Schreibanforderungen beziehen; wenn eine Antwort von den Antworten eine Konfliktnachricht ist, ein Aktualisieren der Gruppe von Schreibanforderungen auf Grundlage der Konfliktnachricht, wobei die Konfliktnachricht angibt, dass eine frühere Version von mindestens einem codierten Datenausschnitt der Gruppe von codierten Datenausschnitten von einer Speichereinheit der Speichereinheiten gespeichert wird; und wenn eine Schreibschwellenwertanzahl der Antworten aus positiven Schreibantworten besteht, ein Senden einer Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten.
  8. Verfahren nach Anspruch 7, wobei das Aktualisieren der Gruppe von Schreibanforderungen aufweist: ein Bestimmen eines aktuellen Änderungsstands für die Gruppe von codierten Datenausschnitten auf Grundlage der Konfliktnachricht von einer oder mehreren der Speichereinheiten; ein Aktualisieren der Gruppe von Schreibanforderungen, um einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten aufzunehmen; und ein Senden der aktualisierten Gruppe von Schreibanforderungen an die Speichereinheiten, wobei die aktualisierte Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und den nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält.
  9. Verfahren nach einem der Ansprüche 7 oder 8, wobei die Angabe des ersten Vorgang des Schreibens der Gruppe von codierten Datenausschnitten eines aufweist von: einem Bereitstellen eines Änderungsstands von Null in jeder Schreibanforderung der Gruppe von Schreibanforderungen; und einem Weglassen einer Änderungsstandsangabe in jeder Schreibanforderung der Gruppe von Schreibanforderungen.
  10. Verfahren nach einem der Ansprüche 7 bis 9, des Weiteren aufweisend: wenn die Schreiboperation nicht der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist: ein Senden einer Gruppe von Leseanforderungen an die Speichereinheiten, die sich auf die Gruppe von codierten Datenausschnitten bezieht; ein Bestimmen eines aktuellen Änderungsstands für die Gruppe von codierten Datenausschnitten auf Grundlage von Leseantworten von mindestens einigen der Speichereinheiten; ein Senden der Gruppe von Schreibanforderungen an die Speichereinheiten, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält; und wenn eine Schreibschwellenwertanzahl der positiven Schreibantworten empfangen wurde, ein Senden einer Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten.
  11. Speichersystem, aufweisend: ein erstes Modul, das, wenn es in einer Datenverarbeitungseinheit eines verstreuten Speichernetzwerks (DSN) betreibbar ist, die Datenverarbeitungseinheit veranlasst zum: Bestimmen für eine Schreiboperation, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten des DSN geschrieben werden sollen, ob die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei ein Datensegment eines Datenobjekts ein verstreuter Speicherfehler ist, der in die Gruppe von codierten Datenausschnitten encodiert ist; Senden einer Gruppe von Schreibanforderungen an die Speichereinheiten, wenn die Schreiboperation ein erster Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, eine Gruppe von Ausschnittnamen und eine Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten enthält; ein zweites Modul, das, wenn es in einer Speichereinheit der Speichereinheiten betreibbar ist, die Speichereinheit veranlasst zum: Bestimmen in Reaktion auf eine Schreibanforderung der Gruppe von Schreibanforderungen, ob eine frühere Version eines codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der Speichereinheit gespeichert wird; und wenn die frühere Version eines codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der Speichereinheit gespeichert wird, Senden einer Konfliktnachricht an die Datenverarbeitungseinheit; und ein drittes Modul, das, wenn es in der Datenverarbeitungseinheit betreibbar ist, die Datenverarbeitungseinheit veranlasst zum: Aktualisieren der Gruppe von Schreibanforderungen auf Grundlage der Konfliktnachricht.
  12. Speichersystem nach Anspruch 11, wobei die Angabe des ersten Vorgangs des Schreibens der Gruppe von codierten Datenausschnitten eines aufweist von: einem Bereitstellen eines Änderungsstands von Null in jeder Schreibanforderung der Gruppe von Schreibanforderungen; und einem Weglassen einer Änderungsstandsangabe in jeder Schreibanforderung der Gruppe von Schreibanforderungen.
  13. Speichersystem nach einem der Ansprüche 11 bis 12, des Weiteren aufweisend: ein viertes Modul, das, wenn es in der Datenverarbeitungseinheit betreibbar ist, die Datenverarbeitungseinheit veranlasst zum: wenn die Schreiboperation nicht der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist: Senden einer Gruppe von Leseanforderungen an die Speichereinheiten, die sich auf die Gruppe von codierten Datenausschnitten bezieht; Bestimmen eines aktuellen Änderungsstands für die Gruppe von codierten Datenausschnitten auf Grundlage von Leseantworten von mindestens einigen der Speichereinheiten; Senden der Gruppe von Schreibanforderungen an die Speichereinheiten, wobei die Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält; und wenn eine Schreibschwellenwertanzahl von positiven Schreibantworten empfangen wurde, Senden einer Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten.
  14. Speichersystem nach einem der Ansprüche 11 bis 13, wobei das erste Modul, das, wenn es in der Datenverarbeitungseinheit betreibbar ist, die Datenverarbeitungseinheit des Weiteren veranlasst zum: wenn die Schreiboperation der erste Vorgang zum Schreiben der Gruppe von codierten Datenausschnitten ist: Empfangen von positiven Schreibantworten von mindestens einigen der Speichereinheiten; und wenn eine Schreibschwellenwertanzahl der positiven Schreibantworten empfangen wurde, Senden einer Gruppe von Schreib-Festschreibanforderungen an die Speichereinheiten.
  15. Speichersystem nach einem der Ansprüche 11 bis 14, wobei das erste Modul, das, wenn es in der Datenverarbeitungseinheit betreibbar ist, die Datenverarbeitungseinheit veranlasst, die Gruppe von Schreibanforderungen zu aktualisieren durch: ein Bestimmen eines aktuellen Änderungsstands für die Gruppe von codierten Datenausschnitten auf Grundlage der Konfliktnachricht von einer oder mehreren der Speichereinheiten; ein Aktualisieren der Gruppe von Schreibanforderungen, um einen nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten aufzunehmen; und ein Senden der aktualisierten Gruppe von Schreibanforderungen an die Speichereinheiten, wobei die aktualisierte Gruppe von Schreibanforderungen die Gruppe von codierten Datenausschnitten, die Gruppe von Ausschnittnamen und den nächsten Änderungsstand für die Gruppe von codierten Datenausschnitten enthält.
  16. Speicherungssystem nach einem der Ansprüche 11 bis 15, des Weiteren aufweisend: ein viertes Modul, das, wenn es in einer anderen Speichereinheit der Speichereinheiten betreibbar ist, die andere Speichereinheit veranlasst zum: Bestimmen in Reaktion auf eine weitere Schreibanforderung der Gruppe von Schreibanforderungen, ob eine frühere Version eines anderen codierten Datenausschnitts der Gruppe von codierten Datenausschnitten aktuell von der anderen Speichereinheit gespeichert wird; und wenn der andere codierte Datenausschnitt von der anderen Speichereinheit gespeichert wird, Senden einer anderen Konfliktnachricht, die angibt, dass die andere Speichereinheit eine frühere Version des anderen codierten Datenausschnitts speichert.
  17. Computerprogrammprodukt für eine Schreiboperation, die sich auf eine Gruppe von codierten Datenausschnitten bezieht, die in Speichereinheiten eines verstreuten Speichernetzwerks (DSN) geschrieben werden sollen, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.
  18. Computerprogramm, das auf einem computerlesbaren Medium gespeichert und in den internen Arbeitsspeicher eines digitalen Computers ladbar ist, das Softwarecode-Abschnitte aufweist, um das Verfahren nach einem der Ansprüche 1 bis 10 auszuführen, wenn das Programm auf einem Computer ausgeführt wird.
DE112017000530.2T 2016-04-29 2017-02-20 Konsistentes Speichern von Daten in einem verstreuten Speichernetzwerk Pending DE112017000530T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/142,297 2016-04-29
US15/142,297 US10628399B2 (en) 2016-04-29 2016-04-29 Storing data in a dispersed storage network with consistency
PCT/IB2017/050949 WO2017187280A1 (en) 2016-04-29 2017-02-20 Storing data in dispersed storage network with consistency

Publications (1)

Publication Number Publication Date
DE112017000530T5 true DE112017000530T5 (de) 2018-10-18

Family

ID=60158450

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017000530.2T Pending DE112017000530T5 (de) 2016-04-29 2017-02-20 Konsistentes Speichern von Daten in einem verstreuten Speichernetzwerk

Country Status (6)

Country Link
US (1) US10628399B2 (de)
JP (1) JP6931005B2 (de)
CN (1) CN109154880B (de)
DE (1) DE112017000530T5 (de)
GB (1) GB2565932B (de)
WO (1) WO2017187280A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11151265B2 (en) * 2019-04-29 2021-10-19 International Business Machines Corporation Secure data storage based on obfuscation by distribution
CN112748867B (zh) * 2019-10-31 2024-04-19 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备以及计算机程序产品

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4092732A (en) 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
US5485474A (en) 1988-02-25 1996-01-16 The President And Fellows Of Harvard College Scheme for information dispersal and reconstruction
US5454101A (en) 1992-09-15 1995-09-26 Universal Firmware Industries, Ltd. Data storage system with set lists which contain elements associated with parents for defining a logical hierarchy and general record pointers identifying specific data sets
US5987622A (en) 1993-12-10 1999-11-16 Tm Patents, Lp Parallel computer system including parallel storage subsystem including facility for correction of data in the event of failure of a storage device in parallel storage subsystem
US6175571B1 (en) 1994-07-22 2001-01-16 Network Peripherals, Inc. Distributed memory switching hub
US5848230A (en) 1995-05-25 1998-12-08 Tandem Computers Incorporated Continuously available computer memory systems
US5774643A (en) 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
US5809285A (en) 1995-12-21 1998-09-15 Compaq Computer Corporation Computer system having a virtual drive array controller
US6012159A (en) 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
US5802364A (en) 1996-04-15 1998-09-01 Sun Microsystems, Inc. Metadevice driver rename/exchange technique for a computer system incorporating a plurality of independent device drivers
US5890156A (en) 1996-05-02 1999-03-30 Alcatel Usa, Inc. Distributed redundant database
US6058454A (en) 1997-06-09 2000-05-02 International Business Machines Corporation Method and system for automatically configuring redundant arrays of disk memory devices
US6088330A (en) 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US5991414A (en) 1997-09-12 1999-11-23 International Business Machines Corporation Method and apparatus for the secure distributed storage and retrieval of information
US6272658B1 (en) 1997-10-27 2001-08-07 Kencast, Inc. Method and system for reliable broadcasting of data files and streams
JPH11161505A (ja) 1997-12-01 1999-06-18 Matsushita Electric Ind Co Ltd メディア送出装置
JPH11167443A (ja) 1997-12-02 1999-06-22 Casio Comput Co Ltd インターフェイス装置
US6415373B1 (en) 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6374336B1 (en) 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
WO2000011554A1 (en) 1998-08-19 2000-03-02 Boris Nikolaevich Vilkov A system and method for identification of transformation of memory device addresses
US6356949B1 (en) 1999-01-29 2002-03-12 Intermec Ip Corp. Automatic data collection device that receives data output instruction from data consumer
US6609223B1 (en) 1999-04-06 2003-08-19 Kencast, Inc. Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter
US6571282B1 (en) 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US6718361B1 (en) 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
DE60131900T2 (de) 2000-10-26 2008-12-04 Flood, James C. jun., Portland Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
US7146644B2 (en) 2000-11-13 2006-12-05 Digital Doors, Inc. Data security system and method responsive to electronic attacks
US8176563B2 (en) 2000-11-13 2012-05-08 DigitalDoors, Inc. Data security system and method with editor
US7140044B2 (en) 2000-11-13 2006-11-21 Digital Doors, Inc. Data security system and method for separation of user communities
US7103915B2 (en) 2000-11-13 2006-09-05 Digital Doors, Inc. Data security system and method
GB2369206B (en) 2000-11-18 2004-11-03 Ibm Method for rebuilding meta-data in a data storage system and a data storage system
US6785783B2 (en) 2000-11-30 2004-08-31 International Business Machines Corporation NUMA system with redundant main memory architecture
US7080101B1 (en) 2000-12-01 2006-07-18 Ncr Corp. Method and apparatus for partitioning data for storage in a database
US20030084020A1 (en) 2000-12-22 2003-05-01 Li Shu Distributed fault tolerant and secure storage
US6857059B2 (en) 2001-01-11 2005-02-15 Yottayotta, Inc. Storage virtualization system and methods
US20020161846A1 (en) 2001-01-29 2002-10-31 Ulrich Thomas R. Data path controller architecture
US20030037261A1 (en) 2001-03-26 2003-02-20 Ilumin Corporation Secured content delivery system and method
US6879596B1 (en) 2001-04-11 2005-04-12 Applied Micro Circuits Corporation System and method for systolic array sorting of information segments
US7024609B2 (en) 2001-04-20 2006-04-04 Kencast, Inc. System for protecting the transmission of live data streams, and upon reception, for reconstructing the live data streams and recording them into files
GB2377049A (en) 2001-06-30 2002-12-31 Hewlett Packard Co Billing for utilisation of a data storage array
US6944785B2 (en) 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US7636724B2 (en) 2001-08-31 2009-12-22 Peerify Technologies LLC Data storage system and method by shredding and deshredding
US7024451B2 (en) 2001-11-05 2006-04-04 Hewlett-Packard Development Company, L.P. System and method for maintaining consistent independent server-side state among collaborating servers
US7003688B1 (en) 2001-11-15 2006-02-21 Xiotech Corporation System and method for a reserved memory area shared by all redundant storage controllers
US7171493B2 (en) 2001-12-19 2007-01-30 The Charles Stark Draper Laboratory Camouflage of network traffic to resist attack
WO2004012337A2 (en) 2002-07-29 2004-02-05 Robert Halford Multi-dimensional data protection and mirroring method for micro level data
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US20040122917A1 (en) 2002-12-18 2004-06-24 Menon Jaishankar Moothedath Distributed storage system for data-sharing among client computers running defferent operating system types
EP1618478A4 (de) 2003-03-13 2007-10-03 Drm Technologies L L C Sicherer strömungsbehälter
US7185144B2 (en) 2003-11-24 2007-02-27 Network Appliance, Inc. Semi-static distribution technique
GB0308264D0 (en) 2003-04-10 2003-05-14 Ibm Recovery from failures within data processing systems
GB0308262D0 (en) 2003-04-10 2003-05-14 Ibm Recovery from failures within data processing systems
US7415115B2 (en) 2003-05-14 2008-08-19 Broadcom Corporation Method and system for disaster recovery of data from a storage device
US7613945B2 (en) 2003-08-14 2009-11-03 Compellent Technologies Virtual disk drive system and method
US7899059B2 (en) 2003-11-12 2011-03-01 Agere Systems Inc. Media delivery using quality of service differentiation within a media stream
US8332483B2 (en) 2003-12-15 2012-12-11 International Business Machines Corporation Apparatus, system, and method for autonomic control of grid system resources
US7206899B2 (en) 2003-12-29 2007-04-17 Intel Corporation Method, system, and program for managing data transfer and construction
US7222133B1 (en) 2004-02-05 2007-05-22 Unisys Corporation Method for reducing database recovery time
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
US7231578B2 (en) 2004-04-02 2007-06-12 Hitachi Global Storage Technologies Netherlands B.V. Techniques for detecting and correcting errors using multiple interleave erasure pointers
JP4446839B2 (ja) 2004-08-30 2010-04-07 株式会社日立製作所 ストレージ装置及びストレージ管理装置
US7680771B2 (en) 2004-12-20 2010-03-16 International Business Machines Corporation Apparatus, system, and method for database provisioning
US7386758B2 (en) 2005-01-13 2008-06-10 Hitachi, Ltd. Method and apparatus for reconstructing data in object-based storage arrays
US7672930B2 (en) 2005-04-05 2010-03-02 Wal-Mart Stores, Inc. System and methods for facilitating a linear grid database with data organization by dimension
US8595435B2 (en) 2009-07-30 2013-11-26 Cleversafe, Inc. Dispersed storage write process
US8171101B2 (en) 2005-09-30 2012-05-01 Cleversafe, Inc. Smart access to a dispersed data storage network
US7546427B2 (en) 2005-09-30 2009-06-09 Cleversafe, Inc. System for rebuilding dispersed data
US7953937B2 (en) 2005-09-30 2011-05-31 Cleversafe, Inc. Systems, methods, and apparatus for subdividing data for storage in a dispersed data storage grid
US7574570B2 (en) 2005-09-30 2009-08-11 Cleversafe Inc Billing system for information dispersal system
US8285878B2 (en) 2007-10-09 2012-10-09 Cleversafe, Inc. Block based access to a dispersed data storage network
US7904475B2 (en) 2007-10-09 2011-03-08 Cleversafe, Inc. Virtualized data storage vaults on a dispersed data storage network
US7574579B2 (en) 2005-09-30 2009-08-11 Cleversafe, Inc. Metadata management system for an information dispersed storage system
US20070214285A1 (en) 2006-03-08 2007-09-13 Omneon Video Networks Gateway server
US8819179B2 (en) * 2007-10-09 2014-08-26 Cleversafe, Inc. Data revision synchronization in a dispersed storage network
US8549351B2 (en) 2007-10-09 2013-10-01 Cleversafe, Inc. Pessimistic data reading in a dispersed storage network
US8572429B2 (en) 2007-10-09 2013-10-29 Cleversafe, Inc. Optimistic data writing in a dispersed storage network
US9152489B2 (en) * 2009-12-29 2015-10-06 Cleversafe, Inc. Revision synchronization of a dispersed storage network
US9898373B2 (en) 2010-04-26 2018-02-20 International Business Machines Corporation Prioritizing rebuilding of stored data in a dispersed storage network
US9092386B2 (en) * 2010-04-26 2015-07-28 Cleversafe, Inc. Indicating an error within a dispersed storage network
US8625635B2 (en) 2010-04-26 2014-01-07 Cleversafe, Inc. Dispersed storage network frame protocol header
US9231768B2 (en) 2010-06-22 2016-01-05 International Business Machines Corporation Utilizing a deterministic all or nothing transformation in a dispersed storage network
CN103297448B (zh) * 2012-02-24 2016-08-03 华为技术有限公司 私有云存储的融合方法及系统
US9424326B2 (en) 2012-09-13 2016-08-23 International Business Machines Corporation Writing data avoiding write conflicts in a dispersed storage network
US9277011B2 (en) 2012-10-30 2016-03-01 International Business Machines Corporation Processing an unsuccessful write request in a dispersed storage network
US9521197B2 (en) 2012-12-05 2016-12-13 International Business Machines Corporation Utilizing data object storage tracking in a dispersed storage network
CN103067471B (zh) 2012-12-24 2019-01-11 北京华科力扬科技有限公司 一种分布式存储的数据获取方法
US9274908B2 (en) 2013-02-26 2016-03-01 International Business Machines Corporation Resolving write conflicts in a dispersed storage network
US9652470B2 (en) 2013-07-01 2017-05-16 International Business Machines Corporation Storing data in a dispersed storage network
US9594639B2 (en) 2014-01-06 2017-03-14 International Business Machines Corporation Configuring storage resources of a dispersed storage network
US9778987B2 (en) 2014-01-31 2017-10-03 International Business Machines Corporation Writing encoded data slices in a dispersed storage network
US9542239B2 (en) 2014-04-30 2017-01-10 International Business Machines Corporation Resolving write request conflicts in a dispersed storage network
US9690520B2 (en) 2014-06-30 2017-06-27 International Business Machines Corporation Recovering an encoded data slice in a dispersed storage network
US10069915B2 (en) 2015-02-27 2018-09-04 International Business Machines Corporation Storing data in a dispersed storage network
CN104866435B (zh) * 2015-06-06 2018-05-15 成都云祺科技有限公司 一种连续数据保护方法

Also Published As

Publication number Publication date
JP6931005B2 (ja) 2021-09-01
GB2565932B (en) 2019-08-28
GB201818999D0 (en) 2019-01-09
GB2565932A (en) 2019-02-27
CN109154880B (zh) 2021-08-13
US10628399B2 (en) 2020-04-21
JP2019515381A (ja) 2019-06-06
CN109154880A (zh) 2019-01-04
WO2017187280A1 (en) 2017-11-02
US20170316037A1 (en) 2017-11-02

Similar Documents

Publication Publication Date Title
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE112017000220T5 (de) Effektiver, mit einem Geheimschlüssel verschlüsselter sicherer Datenabschnitt
DE102013208930B4 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE102013210642B4 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE202019005484U1 (de) Inkrementale Merkmalsentwicklung und Arbeitsbelastungserfassung in Datenbanksystemen
DE112012002762T5 (de) Replikationen von Datenobjekten von einem Quellserver auf einen Zielserver
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE202015009260U1 (de) Effiziente Datenlesungen von verteilten Speichersystemen
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE112012005275T5 (de) Datenauswahl zur Sicherung von Datenspeichern
DE112019000309B4 (de) Dynamisches batching von berechtigungen in einem verteilten speichernetzwerk
DE112013005875T5 (de) Umgebungskonfigurationsserver, Computersystem und Umgebungskonfigurationsverfahren
DE102012221813A1 (de) Verfahren zur optimierung der speicherzuordnung in einer virtuellen arbeitsplatzumgebung
DE102019111068A1 (de) Datenspeichersystem mit LUN-Archivierung in die Cloud unter Verwendung einer Volume-to-Object(Volumen-zu-Objekt)-Umsetzung
DE112017002940T5 (de) Standard- und Nicht-Standard-Datenzugriff auf verstreute Speichernetzwerke
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
DE102014116369A1 (de) Verwaltung von sprachmarkern bei internationaler datenspeicherung
DE112018001561B4 (de) Verteiltes speichernetzwerk
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE102016204710A1 (de) Sichern und Wiederherstellen von Klondaten
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
DE112011103367T5 (de) Replizieren von Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

R084 Declaration of willingness to licence