DE112018000227B4 - Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk - Google Patents

Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk Download PDF

Info

Publication number
DE112018000227B4
DE112018000227B4 DE112018000227.6T DE112018000227T DE112018000227B4 DE 112018000227 B4 DE112018000227 B4 DE 112018000227B4 DE 112018000227 T DE112018000227 T DE 112018000227T DE 112018000227 B4 DE112018000227 B4 DE 112018000227B4
Authority
DE
Germany
Prior art keywords
edss
partial
data
updating
eds
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112018000227.6T
Other languages
English (en)
Other versions
DE112018000227T5 (de
Inventor
Adam Gray
Wesley Leggette
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 DE112018000227T5 publication Critical patent/DE112018000227T5/de
Application granted granted Critical
Publication of DE112018000227B4 publication Critical patent/DE112018000227B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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]

Abstract

Verfahren zum Ausführen durch ein oder mehrere Verarbeitungsmodule von einer oder mehreren Datenverarbeitungseinheiten eines verteilten Speichernetzwerks, DSN (10), wobei das Verfahren aufweist:Empfangen einer Anforderung zum Aktualisieren eines oder mehrerer Datensegmente eines Datenobjekts (300);Ermitteln, ob eine oder mehrere codierte Datenscheiben, EDSs, einer Mehrzahl von EDSs, die einem oder mehreren Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind (302);wenn eine oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die den Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, Auswählen mindestens einer EDS aus der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die betroffen wäre, und mindestens einer weiteren EDS aus der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während eines Teilaktualisierungsprozesses, der auf die eine von mehreren EDSs angewendet wird, nicht betroffen wäre (304); undDurchführen des Teilaktualisierungsprozesses (306, 308, 310, 312) für die mindestens eine EDS von der einen von mehreren teilaktualisierungsfähigen EDSs, die während des Teilaktualisierungsprozesses betroffen wäre, der auf die eine von mehreren EDSs angewendet wird, unter Ausschluss der mindestens einen weiteren EDS von der einen von mehreren teilaktualisierungsfähigen EDSs, die während des Teilaktualisierungsprozesses nicht betroffen wäre.

Description

  • HINTERGRUND DER ERFINDUNG
  • TECHNISCHES GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemein auf Computernetzwerke und insbesondere auf ein Verteilen von fehlercodierten Daten.
  • BESCHREIBUNG DER VERWANDTEN TECHNIK
  • Es ist bekannt, dass Datenverarbeitungseinheiten Daten übertragen, verarbeiten und/oder speichern. Derartige Datenverarbeitungseinheiten reichen von schnurlosen Smartphones, Laptops, Tablets, Personal Computern (PCs), Arbeitsstationen und Videospieleinheiten bis hin zu Datenzentren, die täglich Millionen von Websuchen, Börsenkäufen oder Online-Käufen unterstützen. Im Allgemeinen enthält eine Datenverarbeitungseinheit eine Zentraleinheit (CPU), ein Speichersystem, Benutzereingabe/ -ausgabe-Schnittstellen, Schnittstellen zu peripheren Einheiten und eine Verbindungsbusstruktur.
  • Wie ferner bekannt ist, kann die CPU eines Computers effektiv erweitert werden, indem „Cloud-Computing“ verwendet wird, um eine oder mehrere Datenverarbeitungsfunktionen (z.B. einen Dienst, eine Anwendung, einen Algorithmus, eine arithmetische Logikfunktion usw.) für den Computer auszuführen. Ferner kann für große Dienste, Anwendungen und/oder Funktionen Cloud-Computing von mehreren Cloud-Computing-Ressourcen in einer verteilten Weise durchgeführt werden, um die Antwortzeit für ein Ausführen des Dienstes, der Anwendung und/oder der Funktion zu verbessern. Beispielsweise ist Hadoop ein Open-Source-Software-Framework, das verteilte Anwendungen unterstützt und die Ausführung von Anwendungen durch Tausende von Computern ermöglicht.
  • Zusätzlich zum Cloud-Computing kann bei einem Computer ein „Cloud-Speicher“ als Teil seines Speichersystems verwendet werden. Bekanntermaßen ermöglicht der Cloud-Speicher einem Benutzer, über seinen Computer Dateien, Anwendungen usw. auf einem Internet-Speichersystem zu speichern. Das Internet-Speichersystem kann ein RAID-System (Redundant Array of Independent Disks) und/oder ein verteiltes Speichersystem enthalten, das ein Fehlerkorrekturschema verwendet, um Daten für die Speicherung zu codieren.
  • Im Stand der Technik beschreibt US 2014 / 0 325 309 A1 ein Verfahren zum Aktualisieren der in einem verteilten Speichernetz gespeicherten Daten. US 2012 / 0 102 316 A1 beschreibt ein Verfahren zur Speicherung kodierter Datenscheiben in einem verteilten Speichernetz. US 2014 / 0 351 624 A1 beschreibt ein Verfahren zur Modifizierung von Daten, die in einem verteilten Speichernetzwerk (DSN) gespeichert sind.
  • Gegenüber dem Stand der Technik wird ein verbessertes Verfahren zum Ausführen durch ein oder mehrere Verarbeitungsmodule von einer oder mehreren Datenverarbeitungseinheiten eines verteilten Speichernetzwerks (DSN) offenbart, welches eine Leistungssteigerung, einen verbesserten Zugriff und eine erhöhte Systemeffizienz bietet.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Gemäß einem Aspekt wird ein Verfahren zum Ausführen durch ein oder mehrere Verarbeitungsmodule einer oder mehrerer Datenverarbeitungseinheiten eines verteilten Speichernetzwerks (DSN) bereitgestellt, wobei das Verfahren aufweist: Empfangen einer Anforderung zum Aktualisieren eines oder mehrerer Datensegmente eines Datenobjekts; Ermitteln, ob eine oder mehrere codierte Datenscheiben (Encoded Data Slices - EDSs) einer Mehrzahl von EDSs, die dem einen oder den mehreren Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind; wenn eine oder mehrere codierte Datenscheiben (EDSs) aus einer Mehrzahl von EDSs, die den Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, Auswählen mindestens einer EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während eines Teilaktualisierungsprozesses, der auf die eine von mehreren EDSs angewendet wird, nicht betroffen wären, und Ausführen des Teilaktualisierungsprozesses für die mindestens eine EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während des Teilaktualisierungsprozesses betroffen wären, der auf die eine von mehreren EDSs angewendet werden würde, unter Ausschluss der mindestens einen weiteren EDS von der einen von mehreren teilaktualisierungsfähigen EDSs, die für teilweises Aktualisieren geeignet sind, die während des Teilaktualisierungsprozesses nicht betroffen wäre.
  • Gemäß einem weiteren Aspekt wird eine Datenverarbeitungseinheit bereitgestellt, die aufweist: eine Schnittstelle zum Verbinden mit einem Netzwerk; einen Speicher; und ein erstes Verarbeitungsmodul, das funktionsfähig mit der Schnittstelle und dem Speicher verbunden ist, wobei das erste Verarbeitungsmodul funktionsmäßig in der Lage ist zum: Empfangen einer Anforderung zum Aktualisieren eines oder mehrerer Datensegmente eines Datenobjekts; Ermitteln, ob eine oder mehrere codierte Datenscheiben (EDSs) einer Mehrzahl von EDSs, die dem einen oder den mehreren Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind; wenn eine oder mehrere codierte Datenscheiben (EDSs) aus einer Mehrzahl von EDSs, die den Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, Auswählen mindestens einer EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die betroffen wäre, und mindestens einer weiteren EDS aus der einen von mehreren EDSs, die für eine Teilaktualisierung geeignet sind, die während eines Teilaktualisierungsprozesses, der auf die eine von mehreren EDSs angewendet wird, nicht betroffen wäre; und Ausführen des Teilaktualisierungsprozesses für die mindestens eine EDS von der einen von mehreren teilaktualisierungsfähigen EDS, die während des Teilaktualisierungsprozesses, der auf die eine von mehreren EDSs angewendet würde, unter Ausschluss der mindestens einen weiteren EDS von der einen von mehreren teilaktualisierungsfähigen EDS, die während des Teilaktualisierungsprozesses nicht betroffen wäre.
  • Gemäß einem weiteren Aspekt wird ein Computerprogrammprodukt bereitgestellt, das ein durch einen Computer lesbares Speichermedium mit darin verkörperten Programmanweisungen aufweist, wobei die Programmanweisungen von einer oder mehreren Datenverarbeitungseinheiten eines verteilten Speichernetzwerks (Dispersed Storage Network - DSN) ausgeführt werden können, um die folgenden Schritte auszuführen: Empfangen einer Anforderung zum Aktualisieren eines oder mehrerer Datensegmente eines Datenobjekts; Ermitteln, ob eine oder mehrere codierte Datenscheiben (EDSs) einer Mehrzahl von EDSs, die dem einen oder den mehreren Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind; wenn eine oder mehrere codierte Datenscheiben (EDSs) aus einer Mehrzahl von EDSs, die den Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, Auswählen mindestens einer EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die betroffen wäre, und mindestens einer weiteren EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während eines Teilaktualisierungsprozesses, der auf die eine von mehreren EDSs angewendet wird, nicht betroffen wäre; und Ausführen des Teilaktualisierungsprozesses für die mindestens eine EDS von der einen von mehreren teilaktualisierungsfähigen EDSs, die während des Teilaktualisierungsprozesses betroffen wäre, der auf die eine von mehreren EDSs angewendet werden würde, unter Ausschluss der mindestens einen weiteren EDS von der einen von mehreren teilaktualisierungsfähigen EDSs, die während des Teilaktualisierungsprozesses nicht betroffen wären.
  • KURZBESCHREIBUNG DER MEHREREN ANSICHTEN DER ZEICHNUNG(EN)
  • Ausführungsformen der Erfindung werden nun lediglich beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
    • 1 eine schematische Blockdarstellung eines verteilten Speichernetzwerks (DSN) gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 2 eine schematische Blockdarstellung eines Datenverarbeitungskerns gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 3 eine schematische Blockdarstellung eines Beispiels für eine Fehlercodierung von Daten eines verteilten Speichers gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 4 eine schematische Blockdarstellung eines allgemeinen Beispiels einer Fehlercodierfunktion gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 5 eine schematische Blockdarstellung eines speziellen Beispiels einer Fehlercodierfunktion gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 6 eine schematische Blockdarstellung eines Beispiels für einen Scheibenbezeichnung einer codierten Datenscheibe (EDS) gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 7 eine schematische Blockdarstellung eines Beispiels für das Fehlerdecodieren von Daten eines verteilten Speichers gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 8 eine schematische Blockdarstellung eines allgemeinen Beispiels einer Fehlerdecodierfunktion gemäß einer Ausführungsform der vorliegenden Erfindung ist;
    • 9 ein Schaltplan einer EDS ist, die aus einem Teilaktualisierungsprozess gemäß einer Ausführungsform der vorliegenden Erfindung resultiert;
    • 10 ein Schaltplan für ein weiteres Beispiel einer EDS ist, die sich aus einem Teilaktualisierungsprozess ergibt, der auf der Verwendung eines Offset gemäß einer Ausführungsform der vorliegenden Erfindung beruht;
    • 11 ein Schaltplan für ein weiteres Beispiel einer EDS ist, die sich aus einem Teilaktualisierungsprozess ergibt, der auf der Verwendung eines Offset gemäß einer Ausführungsform der vorliegenden Erfindung beruht; und
    • 12 eine Logikdarstellung eines Beispiels für ein Verfahren zum teilweisen Aktualisieren von DSN-Inhalten gemäß einer Ausführungsform der vorliegenden Erfindung ist.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • 1 ist eine schematische Blockdarstellung einer Ausführungsform eines verteilten Speichernetzwerks (DSN) 10, das eine Mehrzahl von Datenverarbeitungseinheiten 12 bis 16, eine Verwaltungseinheit 18, eine integrierte Verarbeitungseinheit 20 und einen DSN-Speicher 22 enthält. Die Komponenten des DSN 10 sind mit einem Netzwerk 24 verbunden, das ein oder mehrere drahtlose und/oder drahtgebundene Datenübertragungssysteme, ein oder mehrere nichtöffentliche Intranetsysteme und/oder öffentliche Internetsysteme und/oder ein oder mehrere lokale Netzwerke (LAN) und/oder Weitverkehrsnetze (WAN) enthalten kann.
  • Der DSN-Speicher 22 enthält eine Mehrzahl von Speichereinheiten 36, die sich an geografisch unterschiedlichen Standorten (z.B. in Chicago, Milwaukee usw.), an einem gemeinsamen Standort oder einer Kombination davon befinden können. Wenn der DSN-Speicher 22 beispielsweise acht Speichereinheiten 36 enthält, befindet sich jede Speichereinheit an einem anderen Standort. Wenn in einem weiteren Beispiel der DSN-Speicher 22 acht Speichereinheiten 36 enthält, befinden sich alle acht Speichereinheiten am gleichen Standort. Wenn in einem noch weiteren Beispiel der DSN-Speicher 22 acht Speichereinheiten 36 enthält, befinden sich ein erstes Paar Speichereinheiten an einem ersten gemeinsamen Standort, ein zweites Paar Speichereinheiten an einem zweiten gemeinsamen Standort, ein drittes Paar Speichereinheiten an einem dritten gemeinsamen Standort und ein viertes Paar Speichereinheiten an einem vierten gemeinsamen Standort. Es ist zu beachten, dass ein DSN-Speicher 22 mehr oder weniger als acht Speichereinheiten 36 enthalten kann. Weiterhin ist zu beachten, dass jede Speichereinheit 36 einen Datenverarbeitungskern (wie in 2 oder in Komponenten davon dargestellt) und eine Mehrzahl von Speichereinheiten zum Speichern verteilter fehlercodierter Daten enthält.
  • Jede der Datenverarbeitungseinheiten 12 bis 16, die Verwaltungseinheit 18 und die integrierte Verarbeitungseinheit 20 enthalten einen Datenverarbeitungskern 26, der Netzwerkschnittstellen 30 bis 33 enthält. Bei den Datenverarbeitungseinheiten 12 bis 16 kann es sich jeweils um eine tragbare Datenverarbeitungseinheit und/oder eine feste Datenverarbeitungseinheit handeln. Bei der tragbaren Datenverarbeitungseinheit kann es sich um eine Einheit eines sozialen Netzwerks, eine Spieleinheit, ein Mobiltelefon, ein Smartphone, einen digitalen Assistenten, einen digitalen Musikplayer, einen digitalen Videoplayer, ein Laptop, einen Handheld-Computer, ein Tablett, einen Videospiel-Controller und/oder jede andere tragbare Einheit handeln, die einen Datenverarbeitungskern enthält. Bei einer festen Datenverarbeitungseinheit kann es sich um einen Computer (PC), einen Computerserver, eine Kabel-Set-Top-Box, einen Satellitenempfänger, ein Fernsehgerät, einen Drucker, ein Faxgerät, Heimunterhaltungsgeräte, eine Videospielkonsole und/oder jede Art von Heim- oder Büro-Datenverarbeitungsausrüstung handeln. Es ist zu beachten, dass es sich bei der Verwaltungseinheit 18 und der integrierten Verarbeitungseinheit 20 um separate Datenverarbeitungseinheiten, eine gemeinsame Datenverarbeitungseinheit und/oder um in eine oder mehrere der Datenverarbeitungseinheiten 12 bis 16 und/oder in eine oder mehrere der Speichereinheiten 36 integrierte Datenverarbeitungseinheit handeln kann.
  • Jede Schnittstelle 30, 32 und 33 enthält Software und Hardware zum indirekten und/oder direkten Unterstützen einer oder mehrerer Datenübertragungsverbindungen über das Netzwerk 24. So unterstützt beispielsweise die Schnittstelle 30 eine Datenübertragungsverbindung (z.B. drahtgebunden, drahtlos, direkt, über ein LAN, über das Netzwerk 24, etc.) zwischen den Datenverarbeitungseinheiten 14 und 16. Weiterhin beispielhaft unterstützt die Schnittstelle 32 Datenübertragungsverbindungen (z.B. eine drahtgebundene Verbindung, eine drahtlose Verbindung, eine LAN-Verbindung und/oder jede andere Art von Verbindung zum/vom Netzwerk 24) zwischen den Datenverarbeitungseinheiten 12 und 16 und dem DSN-Speicher 22. In einem nochmals weiteren Beispiel unterstützt die Schnittstelle 33 eine Datenübertragungsverbindung für die Verwaltungseinheit 18 oder die integrierte Verarbeitungseinheit 20 mit dem Netzwerk 24.
  • Die Datenverarbeitungseinheiten 12 und 16 enthalten ein Client-Modul 34 für verteilte Speicher (Dispersed Storage - DS), das es der Datenverarbeitungseinheit ermöglicht, verteilte Speicherfehler-Daten (z.B. Daten 40), wie sie nachfolgend in Bezug auf eine oder mehrere der 3 bis 8 beschrieben sind, zu codieren und zu decodieren. In dieser beispielhaften Ausführungsform fungiert die Datenverarbeitungseinheit 16 als Verarbeitungsmittel des verteilten Speichers für die Datenverarbeitungseinheit 14. In dieser Rolle codiert und decodiert die Datenverarbeitungseinheit 16 Fehlerdaten des verteilten Speichers im Auftrag der Datenverarbeitungseinheit 14. Mit der Verwendung von verteilter Speicherfehlercodierung und -decodierung ist das DSN 10 tolerant gegenüber einer erheblichen Anzahl von Speicherausfällen (die Anzahl der Ausfälle beruht auf Parametern der verteilten Speicherfehler-Codierfunktion) ohne Datenverlust und ohne die Notwendigkeit einer redundanten oder Sicherungskopie der Daten. Darüber hinaus speichert das DSN 10 Daten auf unbestimmte Zeit ohne Datenverlust und auf sichere Weise (das System ist beispielsweise sehr widerstandsfähig gegen unbefugte Zugriffe auf die Daten).
  • Im Betrieb erbringt die Verwaltungseinheit 18 DS-Management-Dienstleistungen. So legt beispielsweise die Verwaltungseinheit 18 verteilte Datenspeicherparameter (z.B. Tresorerstellung, verteilte Speicherparameter, Sicherheitsparameter, Abrechnungsinformationen, Benutzerprofilinformationen usw.) für Datenverarbeitungseinheiten 12 bis 14 einzeln oder als Teil einer Gruppe von Benutzereinheiten fest. Gemäß einem speziellen Beispiel koordiniert die Verwaltungseinheit 18 ein Erstellen eines Tresors (z.B. eines virtuellen Speicherblocks, der einem Teil eines gesamten Bezeichnungsraums des DSN zugehörig ist) innerhalb des DSN-Speichers 22 für eine Benutzereinheit, eine Gruppe von Einheiten oder für den öffentlichen Zugriff und legt pro Tresor Fehlercodierparameter für einen Tresor fest. Die Verwaltungseinheit 18 ermöglicht das Speichern von DS-Fehlercodierparametern für jeden Tresor durch Aktualisieren der Registrierungsinformationen des DSN 10, wobei die Registrierungsinformationen im DSN-Speicher 22, einer Datenverarbeitungseinheit 12 bis 16, der Verwaltungseinheit 18 und/oder der integrierten Verarbeitungseinheit 20 gespeichert sein können.
  • Die Verwaltungseinheit 18 erstellt und speichert Benutzerprofilinformationen (z.B. eine Zugriffskontrollliste (Access Control List - ACL)) im lokalen Speicher und/oder im Speicher des DSN-Speichers 22. Zu Benutzerprofilinformationen gehören Berechtigungsprüfungs-Informationen, Berechtigungen und/oder die Sicherheitsparameter. Als Sicherheitsparameter kommen ein Verschlüsselungs/Entschlüsselungs-Schema, ein oder mehrere Verschlüsselungsschlüssel, ein Schlüsselerzeugungsschema und/oder ein Datencodier/-decodier-Schema infrage.
  • Die Verwaltungseinheit 18 erstellt Abrechnungsinformationen für einen bestimmten Benutzer, eine Benutzergruppe, einen Tresorzugang, öffentlichen Tresorzugang usw. So verfolgt beispielsweise die Verwaltungseinheit 18 die Anzahl der Zugriffe eines Benutzers auf einen nichtöffentlichen Tresor und/oder öffentliche Tresore, aus denen eine Abrechnung pro Zugriff erzeugt werden kann. In einem weiteren Fall verfolgt die Verwaltungseinheit 18 die Menge der von einer Benutzereinheit und/oder einer Benutzergruppe gespeicherten und/oder abgerufenen Daten, mit denen Abrechnungsinformationen pro Datenmenge erzeugt werden können.
  • Gemäß einem weiteren Beispiel führt die Verwaltungseinheit 18 Netzwerkoperationen, Netzwerkverwaltung und/oder Netzwerkwartung durch. Zu Netzwerkoperationen gehören Berechtigungsprüfung von Benutzerdaten-Zuordnungsanforderungen (z.B. Lese- und/oder Schreibanforderungen), ein Verwalten des Erstellens von Depots, das Einrichten von Authentifizierungs-Anmeldeinformationen für Benutzereinheiten, das Hinzufügen/Löschen von Komponenten (z.B. Benutzereinheiten, Speichereinheiten und/oder Datenverarbeitungseinheiten mit einem DS-Client-Modul 34) zu/von dem DSN 10 und/oder ein Einrichten von Berechtigungsprüfungs-Anmeldeinformationen für die Speichereinheiten 36. Zur Netzwerkverwaltung gehören Überwachen von Elementen und/oder von Einheiten auf Fehler, Aufrechterhalten von Tresorinformationen, Ermitteln des Aktivierungsstatus von Elementen und/oder Einheiten, Ermitteln der Belastung von Elementen und/oder Einheiten und/oder Ermitteln aller anderen Operationen auf Systemebene, die das Leistungsniveau des DSN 10 beeinflussen. Zur Netzwerkwartung gehört Ermöglichen des Austauschs, der Aufrüstung, der Reparatur und/oder der Erweiterung eines Elements und/oder einer Einheit des DSN 10.
  • Die integrierte Verarbeitungseinheit 20 führt ein erneutes Erstellen von „schlechten“ oder fehlenden codierten Datenscheiben durch. Auf höherer Ebene führt die integrierte Verarbeitungseinheit 20 ein erneutes Erstellen durch, indem sie periodisch versucht, codierte Datenscheiben und/oder Scheibenbezeichnungen der codierten Datenscheiben aus dem DSN-Speicher 22 abzurufen/aufzulisten. Abgerufene codierte Scheiben werden auf Fehler aufgrund von Datenkorruption, veralteter Version usw. überprüft. Wenn eine Scheibe einen Fehler enthält, wird sie als „schlechte“ Scheibe gekennzeichnet. Codierten Datenscheiben, die nicht empfangen und/oder nicht aufgelistet wurden, werden als fehlende Scheiben gekennzeichnet. Schlechte und/oder fehlende Scheiben werden anschließend mit anderen abgerufenen codierten Datenscheiben, die als gute Scheiben gelten, wiederhergestellt, um neu erstellte Scheiben zu erzeugen. Die neu erstellten Scheiben werden im DSN-Speicher 22 gespeichert.
  • 2 ist eine schematische Blockdarstellung einer Ausführungsform eines Datenverarbeitungskerns 26, der ein Verarbeitungsmodul 50, eine Speichersteuerung 52, einen Hauptspeicher 54, eine Videografik-Verarbeitungseinheit 55, einen Ein/Ausgabe-(E/A-) Controller 56, eine Peripheriekomponentenverbindungs- (PCI-) Schnittstelle 58, ein E/A-Schnittstellenmodul 60, mindestens ein E/A-Einheiten-Schnittstellenmodul 62, ein Basis-Eingabe-Ausgabe-System (BIOS) 64 mit Nur-Lese-Speicher (ROM) und ein oder mehrere Speicherschnittstellenmodule enthält. Das eine oder die mehreren Speicherschnittstellenmodule enthalten ein oder mehrere universelle serielle Bus- (USB-) Schnittstellenmodule 66, ein Host-Bus-Adapter- (HBA-) Schnittstellenmodul 68, ein Netzwerkschnittstellenmodul 70, ein Flash-Schnittstellenmodul 72, ein Festplatten-Schnittstellenmodul 74 und ein DSN-Schnittstellenmodul 76.
  • Das DSN-Schnittstellenmodul 76 ahmt eine herkömmliche Betriebssystem- (OS-) Dateisystemschnittstelle nach (z.B. Netzwerk-Dateisystem (Network File System - NFS), Flash-Dateisystem (Flash File System - FFS), Festplatten-Dateisystem (Disk File System - DFS), Dateiübertragungsprotokoll (File Transfer Protocol - FTP), webbasierte verteilte Autorisierung und Versionierung (Web-based Distributed Authoring and Versioning - WebDAV), usw.) und/oder eine Blockspeicherschnittstelle (z.B. Small Computer System Interface (SCSI), Internet Small Computer System Interface (iSCSI), usw.). Das DSN-Schnittstellenmodul 76 und/oder das Netzwerkschnittstellenmodul 70 können als eine oder mehrere der Schnittstellen 30 bis 33 in 1 fungieren. Es ist zu beachten, dass das EA-Einheiten-Schnittstellenmodul 62 und/oder die Speicherschnittstellenmodule 66 bis 76 gemeinsam oder einzeln als EA-Anschlüsse bezeichnet werden können.
  • 3 ist eine schematische Blockdarstellung eines Beispiels für eine verteilte Speicherfehlercodierung von Daten. Wenn eine Datenverarbeitungseinheit 12 oder 16 Daten zum Speichern hat, fehlercodiert ein verteilter Speicher die Daten gemäß einem Prozess zum Fehlercodieren eines verteilten Speichers, der auf Parametern zum Fehlercodieren bei verteilten Speichern beruht. Die Parameter für das Fehlercodieren bei verteilten Speichern enthalten eine Codierfunktion (z.B. Informationsdispersions-Algorithmus, Reed-Solomon, Cauchy Reed-Solomon, systematisches Codieren, nichtsystematisches Codieren, Online-Codes, usw.), ein Datensegmentprotokoll (z.B. Datensegmentgröße, fest, variabel, usw.) und Codierwerte pro Datensegment. Die Codierwerte pro Datensegment enthalten die Gesamtzahl (T) der codierten Datenscheiben pro Codierung eines Datensegments (d.h. die gesamte Säulenbreite, in einem Satz von codierten Datenscheiben); eine Decodierschwellenzahl (D) von codierten Datenscheiben eines Satzes von codierten Datenscheiben, die zum Wiederherstellen des Datensegments benötigt werden; eine Leseschwellenzahl (R) von codierten Datenscheiben, um eine Anzahl von codierten Datenscheiben pro Satz anzugeben, die zum Decodieren des Datensegments aus dem Speicher gelesen werden sollen; und/oder eine Schreibschwellenzahl (W), um eine Anzahl von codierten Datenscheiben pro Satz anzugeben, die genau gespeichert werden müssen, bevor das codierte Datensegment als ordnungsgemäß gespeichert gilt. Die Parameter für das Fehlercodieren von verteilten Speichern können auch Scheibenbildungs-(Slicing-) Informationen (z.B. die Anzahl der codierten Datenscheiben, die für jedes Datensegment erstellt werden) und/oder Scheiben-Sicherheitsinformationen (z.B. Verschlüsselung pro codierter Datenscheibe, Kompression, Integritätsprüfsumme usw.) enthalten.
  • In dem vorliegenden Beispiel wurde Cauchy Reed-Solomon als Codierfunktion ausgewählt (ein allgemeines Beispiel ist in 4 dargestellt und ein spezielles Beispiel ist in 5 dargestellt); das Datensegmentierungsprotokoll dient zum Unterteilen des Datenobjekts in Datensegmente fester Größe; und die Codierwerte pro Datensegment enthalten: eine Säulenbreite von 5, einen Decodierschwellenwert von 3, einen Leseschwellenwert von 4 und einen Schreibschwellenwert von 4. Gemäß dem Datensegmentierungsprotokoll teilt die Datenverarbeitungseinheit 12 oder 16 die Daten (z.B. eine Datei (z.B. Text, Video, Audio, usw.), ein Datenobjekt oder eine andere Datenanordnung) in eine Mehrzahl von Datensegmenten fester Größe (z.B. 1 bis Y mit fester Größe im Bereich von Kilobyte bis Terabyte oder mehr). Die Anzahl der erzeugten Datensegmente ist abhängig von der Größe der Daten und dem Datensegmentierungsprotokoll.
  • Die Datenverarbeitungseinheit 12 oder 16 fehlercodiert dann in einem verteilten Speicher ein Datensegment unter Verwendung der ausgewählten Codierfunktion (z.B. Cauchy Reed-Solomon), um einen Satz codierter Datenscheiben zu erzeugen. 4 veranschaulicht eine allgemeine Cauchy Reed-Solomon-Codierfunktion, die eine Codiermatrix (EM), eine Datenmatrix (DM) und eine codierte Matrix (CM) enthält. Die Größe der Codiermatrix (EM) ist abhängig von der Säulenbreitenzahl (T) und der Decodierschwellenzahl (D) der pro Datensegment ausgewählten Codierwerte. Zum Herstellen der Datenmatrix (DM) wird das Datensegment in eine Mehrzahl von Datenblöcken unterteilt, und die Datenblöcke werden in eine Anzahl von D Zeilen mit Z Datenblöcken pro Zeile angeordnet. Es ist zu beachten, dass Z eine Funktion der Anzahl der aus dem Datensegment erstellten Datenblöcke und der Decodierschwellenzahl (D) ist. Die codierte Matrix wird durch Matrix-Multiplikation der Datenmatrix mit der Codiermatrix erzeugt.
  • 5 veranschaulicht ein spezielles Beispiel für Cauchy Reed-Solomon-Codieren mit einer Säulennummer (T) von fünf und einer Decodierschwellenzahl von drei. In diesem Beispiel wird ein erstes Datensegment in zwölf Datenblöcke (D1 bis D12) unterteilt. Die codierte Matrix enthält fünf Zeilen codierter Datenblöcke, wobei die erste Zeile von X11 bis X14 einer ersten codierten Datenscheibe (EDS 1_1) entspricht, die zweite Zeile von X21 bis X24 einer zweiten codierten Datenscheibe (EDS 2_1) entspricht, die dritte Zeile von X31 bis X34 einer dritten codierten Datenscheibe (EDS 3_1) entspricht, die vierte Zeile von X41 bis X44 einer vierten codierten Datenscheibe (EDS 4_1) entspricht und die fünfte Zeile von X51 bis X54 einer fünften codierten Datenscheibe (EDS 5_1) entspricht. Es ist zu beachten, dass die zweite Nummer der EDS-Bezeichnung der Datensegmentnummer entspricht.
  • Um auf die Erläuterung von 3 zurückzukommen, erstellt die Datenverarbeitungseinheit außerdem eine Scheiben-Bezeichnung (Slice Name - SN) für jede codierte Datenscheibe (EDS) im Satz der codierten Datenscheiben. Ein typisches Format für eine Scheiben-Bezeichnung 80 ist in 6 dargestellt. Wie dargestellt, enthält die Scheiben-Bezeichnung (SN) 80 eine Säulennummer der codierten Datenscheibe (z.B. eine von 1 bis T), eine Datensegmentnummer (z.B. eine von 1 bis Y), eine Tresorkennung (ID), eine Datenobjektkennung (ID) und kann weiterhin Informationen der Revisionsebene der codierten Datenscheiben enthalten. Die Scheiben-Bezeichnung fungiert zumindest teilweise als DSN-Adresse für die codierte Datenscheibe für Speichern im und Abrufen aus dem DSN-Speicher 22.
  • Als Ergebnis des Codierens erzeugt die Datenverarbeitungseinheit 12 oder 16 eine Mehrzahl von Sätzen von codierten Datenscheiben, die mit ihren jeweiligen Scheiben-Bezeichnungen den Speichereinheiten zum Speichern bereitgestellt werden. Wie dargestellt, enthält der erste Satz von codierten Datenscheiben EDS 1_1 bis EDS 5_1, und der erste Satz von Scheiben-Bezeichnungen enthält SN 1_1 bis SN 5_1, und der letzte Satz von codierten Datenscheiben enthält EDS 1_Y bis EDS 5_Y, und der letzte Satz von Scheiben-Bezeichnungen enthält SN 1_Y bis SN 5_Y.
  • 7 ist ein schematische Blockdarstellung eines Beispiels für Fehlerdecodieren in einem verteilten Speicher eines Datenobjekts, das im Beispiel von 4 im verteilten Speicher fehlercodiert und gespeichert wurde. In diesem Beispiel ruft die Datenverarbeitungseinheit 12 oder 16 aus den Speichereinheiten mindestens die Decodierschwellenzahl von codierten Datenscheiben pro Datensegment ab. Gemäß einem speziellen Beispiel ruft die Datenverarbeitungseinheit eine Leseschwellenanzahl von codierten Datenscheiben ab.
  • Um ein Datensegment aus einer Decodierschwellenzahl von codierten Datenscheiben wiederherzustellen, verwendet die Datenverarbeitungseinheit eine Decodierfunktion, wie in 8 dargestellt. Wie gezeigt, ist die Decodierfunktion im Wesentlichen eine Umkehrung der Codierfunktion von 4. Die codierte Matrix enthält eine Decodierschwellenzahl von Zeilen (z.B. drei in diesem Beispiel), und die Decodiermatrix ist eine Umkehrung der Codiermatrix, die die entsprechenden Zeilen der codierten Matrix enthält. Wenn die codierte Matrix beispielsweise die Zeilen 1, 2 und 4 enthält, wird die Codiermatrix auf die Zeilen 1, 2 und 4 reduziert und dann invertiert, um die Decodiermatrix zu erzeugen.
  • Unter erneuter Bezugnahme auf 3 wird ein Datensegmentierungsprotokoll verwendet, um ein Datenobjekt in kleinere Segmente mit Codierwerten pro Datensegment zu segmentieren. Das Datensegmentieren kann eine Reihe von Vorteilen bereitstellen, darunter und ohne darauf beschränkt zu sein, Leistungssteigerung, verbesserter Zugriff und erhöhte Systemeffizienz. Einige Datentypen wie Metadaten, Indexknoten oder andere strukturierte Daten werden schrittweise aktualisiert und sind somit einem teilweisen Aktualisierungsprozess zugänglich. So kann beispielsweise ein DSN ein erstes Datensegment zusammen mit Metadaten für das Datenobjekt speichern. In diesem Beispiel ist der Zugriff auf das erste Daten-Byte schneller möglich, während das System ein effizientes Streaming der verbleibenden Bytes ermöglicht, indem es dem System ermöglicht, Metadaten für das Objekt zu laden.
  • Beim Aktualisieren von Attributen eines Objekts mit eingebettetem Inhalt kann die Systemleistung negativ beeinflusst werden, da die DS-Einheiten möglicherweise immer größere Datenmengen neu zusammenstellen und übertragen und die zugehörigen Metadaten aus dem Datenobjekt heraus analysieren müssen, selbst wenn triviale Operationen wie eine einfache Attributänderung ausgeführt werden. Diese Art von strukturierten Daten kann z.B. beim Nachbilden des POSIX-Workflow bei der Objektspeicherung üblich sein, bei der die Zugriffsteuerung für Datenobjekte und/oder Zeitstempel so häufig wie bei jedem Zugriff manipuliert werden können. Die 9 bis 11 sind Schemata von teilweise aktualisierten EDSs, die sich aus einem Teilaktualisierungsprozess ergeben, der auf der Verwendung eines Offset beruht. Der Prozess der teilweisen Aktualisierung kann beispielsweise als Erweiterung des dsnet-Protokolls mit den in den 9 bis 11 beschriebenen Operationen betrachtet werden. Gemäß einem speziellen Beispiel fügt der Teilaktualisierungsprozess in 9 einen Offset an der vorgesehenen Offsetposition und einen neuen Inhalt 94 in die EDS 1_1 am Offset ein, ohne den vorhandenen Dateninhalt 92 zu überschreiben, der vor dem Teilaktualisierungsprozess vorhanden war (d.h., der bestehende Dateninhalt 92 wird hinter den neuen Dateninhalt 94 verschoben).
  • 10 ist ein Schaltplan für ein weiteres Beispiel einer EDS, die sich aus einem teilweisen Aktualisierungsprozess ergibt, der auf der Verwendung eines Offset beruht. In diesem Beispiel fügt der Teilaktualisierungsprozess einen Offset an einer vorgesehenen Offsetposition und einen neuen Dateninhalt 94 in den vorhandenen Dateninhalt 92 ein und ersetzt den vorhandenen Dateninhalt 92 bis zur Länge des neuen Dateninhalts 94.
  • 11 ist ein Schaltplan für ein weiteres Beispiel eines EDS, das sich aus einem teilweisen Aktualisierungsprozess ergibt, der auf der Verwendung eines Offset beruht. Als spezielles Beispiel werden im Teilaktualisierungsprozess ein Offset und entweder ein Datenbereich oder eine Endposition bereitgestellt, wobei der Teilaktualisierungsprozess Dateninhalt 96 aus dem vorhandenen Dateninhalt 92 entfernt. In diesem Beispiel enthält der Prozess der teilweisen Aktualisierung Einfügen des Offset an der Offsetposition und entfernt Daten, bis entweder ein Endpunkt empfangen oder der angegebene Datenbereich entfernt wird.
  • 12 ist eine Logikdarstellung eines Beispiels für ein Verfahren zum teilweisen Aktualisieren von DSN-Inhalten gemäß einer Ausführungsform der vorliegenden Erfindung. Als spezielles Beispiel empfängt der DSN im Schritt 300 die Anforderung, ein oder mehrere Datensegmente eines Datenobjekts teilweise zu aktualisieren. Das DSN ermittelt im Schritt 302, ob die zu aktualisierenden Datensegmente für teilweises Aktualisieren geeignet sind, und wenn die zu aktualisierenden Datensegmente für teilweises Aktualisieren geeignet sind, ermittelt das DSN im Schritt 304 ferner, welche EDSs, die den zu aktualisierenden Datensegmenten zugehörig sind, von der teilweisen Aktualisierung betroffen sein werden. Unter Bezugnahme auf 5 und unter Verwendung des speziellen Beispiels der Cauchy Reed-Solomon-Codierung kann das DSN ermitteln, welche EDSs von dem teilweisen Aktualisieren betroffen sein werden, auf der Grundlage eines Produkts einer Matrixoperation. Im Beispiel von 5 entspricht die erste Zeile von X11 bis X14 einer ersten codierten Datenscheibe (EDS 1_1) und X11 =aD1 + bD5 +D9. Wenn also lediglich D1 teilweise aktualisiert werden soll, muss die erste codierte Datenscheibe (EDS 1_1) teilweise aktualisiert werden, zusammen mit allen codierten Datenscheiben, die D1 enthalten.
  • Sobald die von dem teilweisen Aktualisieren betroffenen EDSs ermittelt wurden, sendet das DSN im Schritt 306 eine Protokollnachricht mit der EDS-Scheiben-Bezeichnung, der Revisionsnummer für die zu ändernde EDS (Scheibe) und der Revisionsnummer für die neue (teilweise aktualisierte) EDS an die SU, wobei der Offset im Schritt 308 in die betroffenen EDSs eingefügt werden kann und neue Inhalte vorangestellt, angehängt, eingefügt und veraltete Daten gelöscht werden können, wie durch das DSN im Schritt 310 festgelegt. Die Revisionsnummern für die betroffene EDS werden im Schritt 312 aktualisiert. In einem alternativen Beispiel können neue Revisionsnummern für alle EDS bereitgestellt werden, die dem teilweise aktualisierten Datensegment zugehörig sind, auch wenn ein oder mehrere EDSs von dem teilweisen Aktualisieren nicht betroffen sind. Unter Verwendung dieses Beispiels werden die für ein Durchführen einer Modifikation erforderlichen Aggregatdaten mit der eigentlichen Änderung selbst korreliert, anstatt von der Datenquelle abhängig zu sein, die aktualisiert wird.
  • Es wird darauf hingewiesen, dass die hierin verwendeten Terminologien wie Bitstrom, Stream, Signalfolge usw. (oder ihre Entsprechungen) austauschbar verwendet werden, um digitale Informationen zu beschreiben, deren Inhalt einer Reihe von gewünschten Arten entspricht (z.B. Daten, Video, Sprache, Audio usw., von denen jede allgemein als „Daten“ bezeichnet werden kann).
  • Die hierin verwendeten Ausdrücke „im Wesentlichen“ und „ungefähr“ stellen eine branchenübliche Toleranz für den entsprechenden Ausdruck und/oder die Relativität zwischen den Elementen dar. Eine solche branchenübliche Toleranz liegt zwischen weniger als einem Prozent und fünfzig Prozent und entspricht Komponentenwerten, Prozessschwankungen bei integrierten Schaltungen, Temperaturschwankungen, Anstiegs- und Abfallzeiten und/oder thermischem Rauschen, ist aber nicht darauf beschränkt. Eine solche Relativität zwischen den Elementen reicht von einer Differenz von wenigen Prozent bis hin zu Größenunterschieden. Der/die hierin außerdem verwendeten Ausdrücke „konfiguriert, um“, „funktionsfähig verbunden, um“, „verbunden, um“, „verbunden mit“ und/oder „Verbindung“ beinhalten eine direkte Verbindung zwischen den Elementen und/oder eine indirekte Verbindung zwischen den Elementen über ein dazwischenliegendes Element (z.B. ein Element enthält, ist aber nicht beschränkt auf, eine Komponente, ein Element, eine Schaltung und/oder ein Modul), wobei, zum Beispiel bei der indirekten Verbindung, das dazwischenliegende Element die Informationen eines Signals nicht ändert, sondern seinen aktuellen Wert, Spannungswert und/oder Leistungswert anpassen kann. Der hierin weiterhin verwendete Ausdruck abgeleitete Verbindung (d.h., wenn ein Element durch Inferenz mit einem anderen Element verbunden ist) enthält die direkte und indirekte Verbindung zwischen zwei Elementen auf die gleiche Weise wie der Ausdruck „verbunden, um“. Die hierin des Weiteren verwendeten Ausdrücke „konfiguriert, um“, „betriebsfähig, um“, „verbunden, um“ oder „funktionsfähig verbunden, um“ geben an, dass ein Element einen oder mehrere Stromanschlüsse, Eingänge, Ausgänge usw. enthält, um bei Aktivierung eine oder mehrere seiner entsprechenden Funktionen auszuführen, und kann ferner eine abgeleitete Verbindung mit einem oder mehreren anderen Elementen beinhalten. Der hierin des Weiteren verwendete Ausdruck „zugeordnet zu“ enthält die direkte und/oder indirekte Verbindung von einzelnen Elementen und/oder ein Empfänger, das in ein anderes Element eingebettet ist.
  • Der hierin möglicherweise verwendete Ausdruck „vergleicht günstig“ gibt an, dass ein Vergleich zwischen zwei oder mehr Elementen, Signalen usw. eine gewünschte Beziehung ergibt. Wenn beispielsweise die gewünschte Beziehung darin besteht, dass das Signal 1 einen größeren Betrag als das Signal 2 aufweist, kann ein günstiger Vergleich erzielt werden, wenn der Betrag des Signals 1 größer als der des Signals 2 ist oder wenn der Betrag des Signals 2 kleiner als der des Signals 1 ist. Der hierin verwendete Ausdruck „vergleicht ungünstig“ bedeutet, dass ein Vergleich zwischen zwei oder mehr Elementen, Signalen usw. nicht die gewünschte Beziehung liefert.
  • Bei den hierin außerdem verwendeten Ausdrücken „Verarbeitungsmodul“, „Verarbeitungsschaltung“, „Prozessor“ und/oder „Verarbeitungseinheit“ kann es sich um eine einzelne Verarbeitungseinheit oder eine Mehrzahl von Verarbeitungseinheiten handeln. Eine solche Verarbeitungseinheit kann ein Mikroprozessor, ein Mikrocontroller, ein digitaler Signalprozessor, ein Mikrocomputer, eine Zentraleinheit, ein vor Ort programmierbares Gate-Array, eine programmierbare Logikeinheit, eine Zustandsmaschine, eine Logikschaltung, eine analoge Schaltung, eine digitale Schaltung, eine digitale Schaltung und/oder jede Einheit sein, die (analoge und/oder digitale) Signale auf der Grundlage einer harten Codierung der Schaltung und/oder Betriebsanweisungen manipuliert. Das Verarbeitungsmodul, Modul, die Verarbeitungsschaltung und/oder die Verarbeitungseinheit kann ein Speicher und/oder ein integriertes Speicherelement sein oder weiter enthalten, das eine einzelne Speichereinheit, eine Mehrzahl von Speichereinheiten und/oder eine eingebettete Schaltung eines anderen Verarbeitungsmoduls, Moduls, einer Verarbeitungsschaltung und/oder einer Verarbeitungseinheit sein kann. Eine solche Speichereinheit kann ein Nur-Lese-Speicher, Direktzugriffspeicher, flüchtiger Speicher, nichtflüchtiger Speicher, statischer Speicher, dynamischer Speicher, Flash-Speicher, Cache-Speicher und/oder jede Einheit sein, die digitale Informationen speichert. Es ist zu beachten, dass, wenn das Verarbeitungsmodul, das Modul, die Verarbeitungsschaltung und/oder die Verarbeitungseinheit mehr als eine Verarbeitungseinheit enthält, die Verarbeitungseinheiten zentral angeordnet sein können (z.B. direkt über eine drahtgebundene und/oder drahtlose Busstruktur miteinander verbunden) oder dezentral angeordnet sein können (z.B. Cloud Computing über indirekte Verbindung über ein lokales Netzwerk und/oder ein Wide Area Network). Weiterhin ist zu beachten, dass, wenn das Verarbeitungsmodul, Modul, die Verarbeitungsschaltung und/oder die Verarbeitungseinheit eine oder mehrere seiner/ihrer Funktionen über eine Zustandsmaschine, eine analoge Schaltung, eine digitale Schaltung und/oder eine logische Schaltung implementiert, der Speicher und/oder das Speicherelement, der bzw. das die entsprechenden Betriebsanweisungen speichert, in die Schaltung oder außerhalb der Schaltung, die die Zustandsmaschine, die analoge Schaltung, die digitale Schaltung und/oder die logische Schaltung aufweist, eingebettet sein kann. Des Weiteren ist zu beachten, dass das Speicherelement fest codierte und/oder Betriebsanweisungen speichern und das Verarbeitungsmodul, das Modul, die Verarbeitungsschaltung und/oder die Verarbeitungseinheit diese ausführen kann, die mindestens einigen der in einer oder mehreren der Figuren dargestellten Schritten und/oder Funktionen entsprechen. Eine solche Speichereinheit oder ein solches Speicherelement kann in einem Herstellungsgegenstand enthalten sein.
  • Eine oder mehrere Ausführungsformen wurden vorstehend mit Hilfe von Verfahrensschritten beschrieben, die ein Ausführen bestimmter Funktionen und deren Beziehungen veranschaulichen. Die Grenzen und die Reihenfolge dieser funktionalen Bausteine und Verfahrensschritte wurden hierin zur Vereinfachung der Beschreibung beliebig definiert. Alternative Grenzen und Sequenzen können definiert werden, solange die angegebenen Funktionen und Beziehungen entsprechend ausgeführt werden. Derartige alternative Grenzen oder Sequenzen liegen somit im Umfang und Geist der Ansprüche. Darüber hinaus wurden die Grenzen dieser funktionalen Bausteine aus Gründen der einfachen Beschreibung beliebig definiert. Alternative Grenzen können definiert werden, solange die bestimmten wesentlichen Funktionen angemessen ausgeführt werden. Ebenso können hierin auch Blöcke von Ablaufplänen beliebig definiert worden sein, um bestimmte wesentliche Funktionalitäten zu veranschaulichen.
  • Soweit verwendet, hätten die Grenzen und die Reihenfolge der Blöcke des Ablaufplans anders definiert werden können und dennoch die bestimmte wesentliche Funktionalität ausführen. Solche alternativen Definitionen von Funktionsbausteinen und Blöcken des Ablaufplans und Sequenzen liegen somit im Umfang und Geist der Ansprüche. Ein Fachmann wird außerdem erkennen, dass die funktionalen Bausteine und andere veranschaulichende Blöcke, Module und Komponenten, die hierin enthalten sind, wie abgebildet oder durch einzelne Komponenten, anwendungsspezifische integrierte Schaltungen, Prozessoren, die geeignete Software ausführen, und dergleichen oder eine Kombination derselben, implementiert werden können.
  • Darüber hinaus kann ein Ablaufplan eine Anzeige „Start“ und/oder „Fortsetzen“ enthalten. Die Anzeigen „Start“ und „Fortsetzen“ zeigen an, dass die dargestellten Schritte optional in andere Routinen integriert oder anderweitig verwendet werden können. In diesem Zusammenhang bezeichnet „Start“ den Beginn des ersten vorgestellten Schrittes und kann weiteren, nicht spezifisch dargestellten Aktivitäten vorausgehen. Darüber hinaus spiegelt die „Fortsetzen“-Anzeige wider, dass die dargestellten Schritte mehrfach ausgeführt werden können und/oder ihnen andere, nicht spezifisch dargestellte Aktivitäten folgen können. Während ein Ablaufplan eine bestimmte Reihenfolge von Schritten anzeigt, sind auch andere Reihenfolgen möglich, sofern die Prinzipien der Kausalität eingehalten werden.
  • Die eine oder mehreren Ausführungsformen werden hierin verwendet, um einen oder mehrere Aspekte, ein oder mehrere Merkmale, ein oder mehrere Konzepte und/oder ein oder mehrere Beispiele zu veranschaulichen. Eine physische Ausführungsform einer Vorrichtung, eines Herstellungsgegenstandes, einer Maschine und/oder eines Prozesses kann einen oder mehrere der in Bezug auf eine oder mehrere der hierin erläuterten Ausführungsformen beschriebenen Aspekte, Merkmale, Konzepte, Beispiele usw. enthalten. Darüber hinaus können die Ausführungsformen von Figur zu Figur die gleichen oder ähnlich bezeichnete Funktionen, Schritte, Module usw. enthalten, die die gleichen oder unterschiedliche Referenznummern verwenden können, und daher kann es sich bei den Funktionen, Schritten, Modulen usw. um die gleichen oder ähnliche Funktionen, Schritte, Module usw. oder verschiedene handeln.
  • Sofern nicht ausdrücklich anders angegeben, können Signale zu, von und/oder zwischen Elementen in einer der hierin dargestellten Figuren analog oder digital, zeit-kontinuierlich oder zeit-diskret und asymmetrisch oder differenziell sein. Wenn beispielsweise ein Signalweg als asymmetrischer Pfad dargestellt wird, stellt er auch einen differenziellen Signalweg dar. Wenn ein Signalweg als Differenzweg dargestellt wird, stellt er ebenfalls einen asymmetrischen-Signalweg dar. Während eine oder mehrere bestimmte Architekturen hierin beschrieben werden, können auch andere Architekturen implementiert werden, die einen oder mehrere nicht ausdrücklich dargestellte Datenbusse, eine direkte Konnektivität zwischen den Elementen und/oder indirekte Verbindung zwischen anderen Elementen verwenden, wie sie von einem Fachmann anerkannt werden.
  • Der Ausdruck „Modul“ wird in der Beschreibung einer oder mehrerer Ausführungsformen verwendet. Ein Modul implementiert eine oder mehrere Funktionen über eine Einheit wie beispielsweise einen Prozessor oder eine andere Verarbeitungseinheit oder eine andere Hardware, die in Verbindung mit einem Speicher, der Betriebsanweisungen speichert, verwendet werden kann. Ein Modul kann unabhängig und/oder in Verbindung mit Software und/oder Firmware betrieben werden. Wie hierin verwendet, kann ein Modul außerdem ein oder mehrere Teilmodule enthalten, bei denen es sich jeweils um ein oder mehrere Module handeln kann.
  • Ein hierin des Weiteren verwendeter durch einen Computer lesbarer Speicher enthält ein oder mehrere Speicherelemente. Bei einem Speicherelement kann es sich um eine separate Speichereinheit, mehrere Speichereinheiten oder eine Reihe von Speicherplätzen innerhalb einer Speichereinheit handeln. Eine solche Speichereinheit kann ein Nur-Lese-Speicher, Direktzugriffspeicher, flüchtiger Speicher, nichtflüchtiger Speicher, statischer Speicher, dynamischer Speicher, Flash-Speicher, Cache-Speicher und/oder jede Einheit sein, die digitale Informationen speichert. Die Speichereinheit kann in Form eines Halbleiterspeichers, eines Festplattenspeichers, eines Cloud-Speichers, eines USB-Sticks, eines Serverspeichers, eines Speichers einer Datenverarbeitungseinheit und/oder eines anderen physikalischen Mediums zum Speichern digitaler Informationen vorliegen.
  • Zwar wurden bestimmte Kombinationen verschiedener Funktionen und Merkmale der einen oder mehreren Ausführungsformen hierin ausdrücklich beschrieben, andere Kombinationen dieser Merkmale und Funktionen sind jedoch ebenfalls möglich. Die vorliegende Offenbarung ist durch die hierin offenbarten Beispiele nicht eingeschränkt und bezieht diese anderen Kombinationen ausdrücklich ein.

Claims (25)

  1. Verfahren zum Ausführen durch ein oder mehrere Verarbeitungsmodule von einer oder mehreren Datenverarbeitungseinheiten eines verteilten Speichernetzwerks, DSN (10), wobei das Verfahren aufweist: Empfangen einer Anforderung zum Aktualisieren eines oder mehrerer Datensegmente eines Datenobjekts (300); Ermitteln, ob eine oder mehrere codierte Datenscheiben, EDSs, einer Mehrzahl von EDSs, die einem oder mehreren Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind (302); wenn eine oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die den Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, Auswählen mindestens einer EDS aus der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die betroffen wäre, und mindestens einer weiteren EDS aus der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während eines Teilaktualisierungsprozesses, der auf die eine von mehreren EDSs angewendet wird, nicht betroffen wäre (304); und Durchführen des Teilaktualisierungsprozesses (306, 308, 310, 312) für die mindestens eine EDS von der einen von mehreren teilaktualisierungsfähigen EDSs, die während des Teilaktualisierungsprozesses betroffen wäre, der auf die eine von mehreren EDSs angewendet wird, unter Ausschluss der mindestens einen weiteren EDS von der einen von mehreren teilaktualisierungsfähigen EDSs, die während des Teilaktualisierungsprozesses nicht betroffen wäre.
  2. Verfahren nach Anspruch 1, das ferner aufweist: Aktualisieren einer Revisionsnummer für die mindestens eine EDS von der einen von mehreren EDSs, für die teilweises Aktualisieren geeignet sind, für die ein Teilaktualisierungsprozess durchgeführt wird.
  3. Verfahren nach Anspruch 1, das ferner aufweist: Aktualisieren einer Revisionsnummer für alle codierten Datenscheiben, EDSs, aus der Mehrzahl von EDSs, die einem oder mehreren Datensegmenten des Datenobjekts zugehörig sind, wenn der Teilaktualisierungsprozess auf mindestens eine EDS von der einen von mehreren EDSs angewendet wird, die für teilweises Aktualisieren geeignet sind.
  4. Verfahren nach Anspruch 1, wobei das Ermitteln, ob eine oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die den Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, auf dem Datenobjekt mit eingebettetem Inhalt beruht.
  5. Verfahren nach Anspruch 1, wobei das Ausführen des Teilaktualisierungsprozesses für die mindestens eine EDS von der einen von mehreren teilaktualisierungsfähigen EDSs eine Operation beinhaltet, die mindestens einen Offset in allen EDSs enthält, an denen teilweises Aktualisieren durchgeführt wird.
  6. Verfahren nach Anspruch 5, wobei das Ausführen des Teilaktualisierungsprozesses Einfügen des mindestens einen Offset in die mindestens eine EDS von der einen von mehreren EDSs beinhaltet, die für teilweises Aktualisieren geeignet sind; und wobei aktualisierter Inhalt in die mindestens eine EDS von der einen von mehreren EDSs eingefügt wird, die für teilweises Aktualisieren geeignet sind, ohne Inhalte zu überschreiben, die in der mindestens einen EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, vor dem Durchführen des Teilaktualisierungsprozesses vorhanden sind.
  7. Verfahren nach Anspruch 5, wobei das Ausführen des Teilaktualisierungsprozesses Einfügen des mindestens einen Offset in die mindestens eine EDS von der einen von mehreren EDSs beinhaltet, die für teilweises Aktualisieren geeignet sind; und wobei aktualisierte Inhalte, die in die mindestens eine EDS von der einen von mehreren EDSs eingefügt werden, die für teilweises Aktualisieren geeignet sind, mindestens einen Inhalt überschreiben, der in der mindestens einen EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, vor dem Ausführen des Teilaktualisierungsprozesses vorhanden ist.
  8. Verfahren nach Anspruch 5, wobei es mindestens eine Endposition für mindestens eine der EDSs gibt, an denen teilweises Aktualisieren durchgeführt wird, und wobei das Ausführen des Teilaktualisierungsprozesses Entfernen von Inhalten beinhaltet, die in der mindestens einen EDS von der einen von mehreren EDSs vorhanden sind, die für teilweises Aktualisieren geeignet sind, bevor der Teilaktualisierungsprozess zwischen dem mindestens einen Offset und der Endposition durchgeführt wird.
  9. Verfahren nach Anspruch 5, bei dem mindestens ein Bereich für mindestens eine der EDSs vorhanden ist, an denen teilweises Aktualisieren durchgeführt wird, wobei das Ausführen des Teilaktualisierungsprozesses Entfernen von Inhalten beinhaltet, die in der mindestens einen EDS von der einen von mehreren EDSs vorhanden sind, die für teilweises Aktualisieren geeignet sind, bevor der Teilaktualisierungsprozess für den Bereich durchgeführt wird, der an dem mindestens einen Offset beginnt.
  10. Verfahren nach Anspruch 1, wobei das Ermitteln, ob eine oder mehrere codierte Datenscheiben (EDSs) aus einer Mehrzahl von EDSs, die den Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, darauf beruht, dass es sich bei der einen oder den mehreren codierten Datenscheiben (EDSs), die bestimmten Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, um ein Produkt einer Fehlercodierfunktion des verteilten Speichers der bestimmten Datensegmente des zu aktualisierenden Datenobjekts handelt.
  11. Datenverarbeitungseinheit, die aufweist: eine Schnittstelle zum Verbinden mit einem Netzwerk; einen Speicher; und ein erstes Verarbeitungsmodul, das funktionsfähig mit der Schnittstelle und dem Speicher verbunden ist, wobei das erste Verarbeitungsmodul funktionsmäßig in der Lage ist zum: Empfangen einer Anforderung, ein oder mehrere Datensegmente eines Datenobjekts zu aktualisieren; Ermitteln, ob eine oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die einem oder mehreren Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind; wenn eine oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die den Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, Auswählen mindestens einer EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die betroffen wäre, und mindestens einer weiteren EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während eines Teilaktualisierungsprozesses, der auf die eine oder die anderen EDS angewendet wird, nicht betroffen wäre; und Ausführen des Teilaktualisierungsprozesses für die mindestens eine EDS von der einen von mehreren teilaktualisierungsfähigen EDSs, die während des Teilaktualisierungsprozesses betroffen wäre, der auf die eine von mehreren EDSs angewendet werden würde, während die mindestens eine weitere EDS von der einen von mehreren teilaktualisierungsfähigen EDSs ausgeschlossen wird, die während des Teilaktualisierungsprozesses nicht betroffen wäre.
  12. Datenverarbeitungseinheit nach Anspruch 11, wobei das erste Verarbeitungsmodul ferner funktionsmäßig in der Lage ist zum: Aktualisieren einer Revisionsnummer für die mindestens eine EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, für die ein Teilaktualisierungsprozess durchgeführt wird.
  13. Datenverarbeitungseinheit nach Anspruch 11, wobei das erste Verarbeitungsmodul ferner funktionsmäßig in der Lage ist zum: Aktualisieren einer Revisionsnummer für alle codierten Datenscheiben, EDSs, von der Mehrzahl von EDSs, die einem oder mehreren Datensegmenten des Datenobjekts zugehörig sind, wenn der Teilaktualisierungsprozess auf mindestens eine EDS von der einen von mehreren EDSs angewendet wird, die für teilweises Aktualisieren geeignet sind.
  14. Datenverarbeitungseinheit nach Anspruch 11, wobei das erste Verarbeitungsmodul ferner funktionsmäßig in der Lage ist zum: Ermitteln, ob eine oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die den Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren auf der Grundlage der Tatsache geeignet sind, dass das Datenobjekt eingebetteten Inhalt enthält.
  15. Datenverarbeitungseinheit nach Anspruch 11, wobei das erste Verarbeitungsmodul ferner funktionsmäßig in der Lage ist zum: Einschließen einer Operation, die mindestens einen Offset in allen EDSs enthält, an denen teilweises Aktualisieren durchgeführt wird.
  16. Datenverarbeitungseinheit nach Anspruch 15, wobei die Operation, die mindestens einen Offset in allen EDSs enthält, an denen teilweises Aktualisieren durchgeführt wird, Einfügen des mindestens einen Offset in die mindestens eine EDS von der einen der mehreren EDSs enthält, die für teilweises Aktualisieren geeignet sind, und ferner Einfügen aktualisierter Inhalte in die mindestens eine EDS von der einen von mehreren EDSs enthält, die für teilweises Aktualisieren geeignet sind, ohne Inhalte zu überschreiben, die in der mindestens einen EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, vor dem Durchführen des Teilaktualisierungsprozesses vorhanden sind.
  17. Datenverarbeitungseinheit nach Anspruch 15, wobei das erste Verarbeitungsmodul ferner funktionsmäßig in der Lage ist zum: Einfügen des mindestens einen Offset in die mindestens eine EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind; und wobei aktualisierte Inhalte, die in die mindestens eine EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, eingefügt werden, mindestens einen Inhalt, der in der mindestens einen EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, vorhanden ist, vor dem Durchführen des Teilaktualisierungsprozesses überschreiben.
  18. Datenverarbeitungseinheit nach Anspruch 15, wobei die Operation, die mindestens einen Offset in allen EDSs enthält, an denen teilweises Aktualisieren durchgeführt wird, Einfügen des mindestens einen Offset in die mindestens eine EDS von der einen von mehreren EDSs enthält, die für teilweises Aktualisieren geeignet sind, und ferner Einfügen einer Endposition für mindestens eine der EDSs enthält, an denen teilweises Aktualisieren durchgeführt wird, und wobei das Ausführen des Teilaktualisierungsprozesses Entfernen von Inhalten beinhaltet, die in der mindestens einen EDS von der einen von mehreren EDSs vorhanden sind, die für teilweises Aktualisieren geeignet sind, bevor der Teilaktualisierungsprozess zwischen dem mindestens einen Offset und der Endposition ausgeführt wird.
  19. Datenverarbeitungseinheit nach Anspruch 15, wobei die Operation, die mindestens einen Offset in allen EDSs enthält, an denen teilweises Aktualisieren durchgeführt wird, Einfügen des mindestens einen Offset in die mindestens eine EDS von der einen von mehreren EDSs enthält, die für teilweises Aktualisieren geeignet sind, und ferner mindestens einen Bereich für mindestens eine der EDSs enthält, an denen teilweises Aktualisieren durchgeführt wird, wobei das Ausführen des Teilaktualisierungsprozesses Entfernen von Inhalten beinhaltet, die in der mindestens einen EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, vorhanden sind, bevor der Teilaktualisierungsprozess für den Bereich ausgeführt wird, der an dem mindestens einen Offset beginnt.
  20. Datenverarbeitungseinheit nach Anspruch 11, worin das erste Verarbeitungsmodul ferner funktionsmäßig in der Lage ist zum: Ermitteln, ob eine oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die den Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, beruhend darauf, dass es sich bei der einen oder den mehreren codierten Datenscheiben, EDSs, die bestimmten Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, um ein Produkt einer Fehlercodierfunktion eines verteilten Speichers der bestimmten Datensegmente des zu aktualisierenden Datenobjekts handelt.
  21. Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit darin verkörperten Programmbefehlen aufweist, wobei die Programmbefehle durch eine oder mehrere Datenverarbeitungseinheiten eines verteilten Speichernetzwerks, DSN (10), ausgeführt werden können, um die folgenden Schritte auszuführen: Empfangen einer Anforderung zum Aktualisieren eines oder mehrerer Datensegmente eines Datenobjekts; Ermitteln, ob eine oder mehrere codierte Datenscheiben, EDSs, einer Mehrzahl von EDSs, die einem oder mehreren Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind; wenn eine oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die den Datensegmenten des zu aktualisierenden Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, Auswählen mindestens einer EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die betroffen wäre, und mindestens einer weiteren EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während eines Teilaktualisierungsprozesses, der auf die eine von mehreren EDSs angewendet wird, nicht betroffen wäre; und Durchführen des Teilaktualisierungsprozesses für die mindestens eine EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während des Teilaktualisierungsprozesses betroffen wäre, der auf die eine von mehreren EDSs angewendet wird, unter Ausschluss der mindestens einen weiteren EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, die während des Teilaktualisierungsprozesses nicht betroffen wäre.
  22. Computerprogrammprodukt nach Anspruch 21, wobei die Programmanweisungen durch eine oder mehrere Datenverarbeitungseinheiten eines verteilten Speichernetzwerks, DSN, ausgeführt werden können, um ferner den folgenden Schritt auszuführen: Aktualisieren einer Revisionsnummer für die mindestens eine EDS von der einen von mehreren EDSs, die für teilweises Aktualisieren geeignet sind, für die ein Teilaktualisierungsprozess durchgeführt wird.
  23. Computerprogrammprodukt nach Anspruch 21, wobei die Programmanweisungen durch eine oder mehrere Datenverarbeitungseinheiten eines verteilten Speichernetzwerks, DSN, ausgeführt werden können, um ferner den folgenden Schritt auszuführen: Aktualisieren einer Revisionsnummer für alle codierte Datenscheiben, EDSs, der Mehrzahl von EDSs, die einem oder mehreren Datensegmenten des Datenobjekts zugehörig sind, wenn der Teilaktualisierungsprozess auf mindestens eine EDS von der einen von mehreren EDSs angewendet wird, die für teilweises Aktualisieren geeignet sind.
  24. Computerprogrammprodukt nach Anspruch 21, wobei das Ermitteln, ob ein oder mehrere codierte Datenscheiben, EDSs, aus einer Mehrzahl von EDSs, die den Datensegmenten des Datenobjekts zugehörig sind, für teilweises Aktualisieren geeignet sind, auf dem Datenobjekt mit eingebettetem Inhalt beruht.
  25. Computerprogramm, das Programmcodemittel zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 10 umfasst, wenn das Programm von einem Computer ausgeführt wird.
DE112018000227.6T 2017-03-15 2018-02-27 Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk Active DE112018000227B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/459,259 US10235241B2 (en) 2017-03-15 2017-03-15 Method for partial updating data content in a distributed storage network
US15/459,259 2017-03-15
PCT/IB2018/051222 WO2018167590A1 (en) 2017-03-15 2018-02-27 Method for partial updating data content in a distributed storage network

Publications (2)

Publication Number Publication Date
DE112018000227T5 DE112018000227T5 (de) 2019-09-05
DE112018000227B4 true DE112018000227B4 (de) 2023-12-07

Family

ID=63519349

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018000227.6T Active DE112018000227B4 (de) 2017-03-15 2018-02-27 Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk

Country Status (6)

Country Link
US (2) US10235241B2 (de)
JP (1) JP7139347B2 (de)
CN (1) CN110419029B (de)
DE (1) DE112018000227B4 (de)
GB (1) GB2574990B (de)
WO (1) WO2018167590A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235241B2 (en) 2017-03-15 2019-03-19 International Business Machines Corporation Method for partial updating data content in a distributed storage network
CN111444138B (zh) * 2019-01-16 2024-03-15 深圳市茁壮网络股份有限公司 一种文件局部修改方法及系统
US10838660B2 (en) * 2019-04-22 2020-11-17 International Business Machines Corporation Identifying and processing predefined dispersed storage network workflows
JP7212800B2 (ja) 2019-10-21 2023-01-25 本田技研工業株式会社 鞍乗型車両

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102316A1 (en) 2010-06-09 2012-04-26 Cleversafe, Inc. Storing encoded data slices in a dispersed storage network
US20140325309A1 (en) 2011-10-04 2014-10-30 Cleversafe, Inc. Updating data stored in a dispersed storage network
US20140351624A1 (en) 2010-06-22 2014-11-27 Cleversafe, Inc. Data modification in a dispersed storage network

Family Cites Families (85)

* 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
WO2002035359A2 (en) 2000-10-26 2002-05-02 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
US7146644B2 (en) 2000-11-13 2006-12-05 Digital Doors, Inc. Data security system and method responsive to electronic attacks
US7103915B2 (en) 2000-11-13 2006-09-05 Digital Doors, Inc. Data security system and method
US7140044B2 (en) 2000-11-13 2006-11-21 Digital Doors, Inc. Data security system and method for separation of user communities
US8176563B2 (en) 2000-11-13 2012-05-08 DigitalDoors, Inc. Data security system and method with editor
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
US20020080888A1 (en) 2000-12-22 2002-06-27 Li Shu Message splitting and spatially diversified message routing for increasing transmission assurance and data security over distributed networks
US6857059B2 (en) 2001-01-11 2005-02-15 Yottayotta, Inc. Storage virtualization system and methods
US6754773B2 (en) 2001-01-29 2004-06-22 Snap Appliance, Inc. Data engine with metadata processor
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
GB0308262D0 (en) 2003-04-10 2003-05-14 Ibm Recovery from failures within data processing systems
GB0308264D0 (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
JP2007502470A (ja) 2003-08-14 2007-02-08 コンペレント・テクノロジーズ 仮想ディスク・ドライブのシステムおよび方法
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
US7574579B2 (en) 2005-09-30 2009-08-11 Cleversafe, Inc. Metadata management system for an information dispersed storage system
US7904475B2 (en) 2007-10-09 2011-03-08 Cleversafe, Inc. Virtualized data storage vaults on a dispersed data storage network
US8285878B2 (en) 2007-10-09 2012-10-09 Cleversafe, Inc. Block based access to a dispersed data storage network
US7574570B2 (en) 2005-09-30 2009-08-11 Cleversafe Inc Billing system for information dispersal system
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
US20070214285A1 (en) 2006-03-08 2007-09-13 Omneon Video Networks Gateway server
US8762343B2 (en) * 2009-12-29 2014-06-24 Cleversafe, Inc. Dispersed storage of software
JP5822452B2 (ja) * 2010-10-22 2015-11-24 株式会社インテック ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
US8555130B2 (en) * 2011-10-04 2013-10-08 Cleversafe, Inc. Storing encoded data slices in a dispersed storage unit
US20170017671A1 (en) * 2012-04-25 2017-01-19 International Business Machines Corporation Deleting data in a dispersed storage network
US9875158B2 (en) * 2012-08-31 2018-01-23 International Business Machines Corporation Slice storage 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
US9591076B2 (en) 2014-09-08 2017-03-07 International Business Machines Corporation Maintaining a desired number of storage units
US20160094649A1 (en) * 2014-09-30 2016-03-31 Code 42 Software, Inc. Node-to-node data distribution
US10270468B2 (en) * 2014-12-19 2019-04-23 Aalborg Universitet Method for file updating and version control for linear erasure coded and network coded storage
US10437671B2 (en) * 2015-06-30 2019-10-08 Pure Storage, Inc. Synchronizing replicated stored data
CN105930103B (zh) 2016-05-10 2019-04-16 南京大学 一种分布式存储ceph的纠删码覆盖写方法
US10177785B2 (en) * 2016-08-23 2019-01-08 Western Digital Technologies, Inc. Error detecting code with partial update
US10235241B2 (en) 2017-03-15 2019-03-19 International Business Machines Corporation Method for partial updating data content in a distributed storage network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102316A1 (en) 2010-06-09 2012-04-26 Cleversafe, Inc. Storing encoded data slices in a dispersed storage network
US20140351624A1 (en) 2010-06-22 2014-11-27 Cleversafe, Inc. Data modification in a dispersed storage network
US20140325309A1 (en) 2011-10-04 2014-10-30 Cleversafe, Inc. Updating data stored in a dispersed storage network

Also Published As

Publication number Publication date
CN110419029B (zh) 2023-01-17
US10691541B2 (en) 2020-06-23
JP2020510256A (ja) 2020-04-02
US20180267855A1 (en) 2018-09-20
DE112018000227T5 (de) 2019-09-05
JP7139347B2 (ja) 2022-09-20
WO2018167590A1 (en) 2018-09-20
GB2574990A (en) 2019-12-25
GB201914709D0 (en) 2019-11-27
GB2574990B (en) 2020-05-20
US20190171525A1 (en) 2019-06-06
CN110419029A (zh) 2019-11-05
US10235241B2 (en) 2019-03-19

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
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE102013208930B4 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE112019000309B4 (de) Dynamisches batching von berechtigungen in einem verteilten speichernetzwerk
DE202014010898U1 (de) Hierarchische Stückelung von Objekten in einem dezentralen Speichersystem
DE102005051980B4 (de) System und Verfahren zur Netzwerkübertragung eines Informationsverarbeitungssystem-Images
DE112012002762T5 (de) Replikationen von Datenobjekten von einem Quellserver auf einen Zielserver
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE10350590A1 (de) Verfahren und Vorrichtung zum Sichern von Daten bei mehreren unabhängigen Schreib-Lese-Speichern
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE112017002940T5 (de) Standard- und Nicht-Standard-Datenzugriff auf verstreute Speichernetzwerke
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE112014000251T5 (de) Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen
DE112011101793T5 (de) Gemeinsame Datennutzung bei Dateiklonen
DE112017000167B4 (de) Verteilte Datendeduplizierung in einem Prozessorraster
DE112018001561B4 (de) Verteiltes speichernetzwerk
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE112011103367T5 (de) Replizieren von Daten
DE112012000282T5 (de) Anwendungswiederherstellung in einem Dateisystem
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
DE112012002796T5 (de) Übertragen von in virtuellen Datenträgern organisierten deduplizierten Daten in einen Zielsatz von physischen Medien

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016110000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence