DE112018000193T5 - Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern - Google Patents

Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern Download PDF

Info

Publication number
DE112018000193T5
DE112018000193T5 DE112018000193.8T DE112018000193T DE112018000193T5 DE 112018000193 T5 DE112018000193 T5 DE 112018000193T5 DE 112018000193 T DE112018000193 T DE 112018000193T DE 112018000193 T5 DE112018000193 T5 DE 112018000193T5
Authority
DE
Germany
Prior art keywords
memory
data
zones
storage
writes
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.)
Granted
Application number
DE112018000193.8T
Other languages
English (en)
Other versions
DE112018000193B4 (de
Inventor
Andrew Dominic Baptist
Ilya Volvovski
Praveen Viraraghavan
Manish Motwani
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 DE112018000193T5 publication Critical patent/DE112018000193T5/de
Application granted granted Critical
Publication of DE112018000193B4 publication Critical patent/DE112018000193B4/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
    • 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
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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

Ein Verfahren zur Ausführung durch eine Speichereinheit in einem verstreuten Speichernetzwerk (DSN) enthält ein Auswählen einer Speicherzone einer Arbeitsspeichereinheit der Speichereinheit auf Grundlage von Zonenzuweisungsparametern und ein Kennzeichnen der ausgewählten Speicherzone als für Schreibvorgänge offen. Ein Datenausschnitt wird über ein Netzwerk zur Speicherung empfangen. Der Datenausschnitt wird sequenziell an einem Arbeitsspeicher-Speicherort von einer Speicherzone auf Grundlage eines Bestimmens geschrieben, dass die Speicherzone als für Schreibvorgänge offen gekennzeichnet ist. Ein dem Datenausschnitt entsprechender Zeiger, der die Speicherzone und den Arbeitsspeicher-Speicherplatz angibt, wird generiert. Eine Leseanforderung wird über das Netzwerk von einer anfordernden Entität empfangen, die den Datenausschnitt angibt. Der Datenausschnitt wird aus der Arbeitsspeichereinheit auf Grundlage des Zeigers abgerufen und wird zu der anfordernden Entität übertragen.

Description

  • HINTERGRUND DER ERFINDUNG
  • TECHNISCHES GEBIET DER ERFINDUNG
  • Die Erfindung betrifft allgemein Computernetzwerke und insbesondere ein Zerstreuen von fehlerencodierten Daten.
  • BESCHREIBUNG DES EINSCHLÄGIGEN STANDS DER TECHNIK
  • 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 hin 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 durch Verwenden von „Cloud Computing“ effektiv 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 eine „Cloud-Speicherung“ als Teil seines Arbeitsspeichersystems verwenden. Wie bekannt ist, ermöglicht die 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 Encodieren von Daten zur Speicherung verwendet.
  • Figurenliste
  • Im Folgenden werden Ausführungsformen der Erfindung allein zu Beispielzwecken unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei:
    • 1 ein schematisches Blockschaubild einer Ausführungsform eines verstreuten oder verteilten Speichernetzwerks (DSN) gemäß der vorliegenden Erfindung ist;
    • 2 ein schematisches Blockschaubild einer Ausführungsform eines Datenverarbeitungskerns gemäß der vorliegenden Erfindung ist;
    • 3 ein schematisches Blockschaubild eines Beispiels für verstreute Speicherfehlerencodierung von Daten gemäß der vorliegenden Erfindung ist;
    • 4 ein schematisches Blockschaubild eines allgemeinen Beispiels für eine Fehlerencodierungsfunktion gemäß der vorliegenden Erfindung ist;
    • 5 ein schematisches Blockschaubild eines spezifischen Beispiels für eine Fehlerencodierungsfunktion gemäß der vorliegenden Erfindung ist;
    • 6 ein schematisches Blockschaubild eines Beispiels für einen Ausschnittnamen eines encodierten Datenausschnitts (EDS) gemäß der vorliegenden Erfindung ist;
    • 7 ein schematisches Blockschaubild eines Beispiels für verstreute Speicherfehlerdecodierung von Daten gemäß der vorliegenden Erfindung ist;
    • 8 ein schematisches Blockschaubild eines allgemeinen Beispiels für eine Fehlerdecodierungsfunktion gemäß der vorliegenden Erfindung ist;
    • 9 ein schematisches Blockschaubild einer Ausführungsform eines verstreuten oder verteilten Speichernetzwerks (DSN) gemäß der vorliegenden Erfindung ist; und
    • 10 eine Logikdarstellung eines Beispiels für ein Verfahren zum sequenziellen Speichern in Zonen gemäß der vorliegenden Erfindung ist.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 1 ist ein schematisches Blockschaubild einer Ausführungsform eines verstreuten oder verteilten Speichernetzwerks (DSN) 10, das eine Mehrzahl von Datenverarbeitungseinheiten 12 bis 16, eine Verwaltungseinheit 18, eine Integritätsverarbeitungseinheit 20 und einen DSN-Arbeitsspeicher 22 enthält. Die Komponenten des DSN 10 sind über ein Netzwerk 24 verbunden, das ein oder mehrere drahtlose und/oder drahtgebundene Kommunikationssysteme; ein oder mehrere nicht öffentliche Intranetsysteme und/oder öffentliche Internetsysteme; und/oder ein oder mehrere lokale Netzwerke (LAN) und/oder Weitverkehrsnetzwerke (WAN) enthalten kann.
  • Der DSN-Arbeitsspeicher 22 enthält eine Mehrzahl von Speichereinheiten 36, die sich an geografisch verschiedenen Standorten (z.B. eine in Chicago, eine in Milwaukee usw.), an einem gemeinsamen Standort oder einer Kombination davon befinden können. Wenn der DSN-Arbeitsspeicher 22 zum Beispiel acht Speichereinheiten 36 enthält, ist jede Speichereinheit an einem anderen Standort positioniert. Wenn der DSN-Arbeitsspeicher 22 in einem weiteren Beispiel acht Speichereinheiten 36 enthält, befinden sich alle acht Speichereinheiten an demselben Standort. Wenn der DSN-Arbeitsspeicher 22 in noch einem weiteren Beispiel acht Speichereinheiten 36 enthält, befindet sich ein erstes Paar von Speichereinheiten an einem ersten gemeinsamen Standort, ein zweites Paar von Speichereinheiten befindet sich an einem zweiten gemeinsamen Standort, ein drittes Paar von Speichereinheiten befindet sich an einem dritten gemeinsamen Standort und ein viertes Paar von Speichereinheiten befindet sich an einem vierten gemeinsamen Standort. Zu beachten ist, dass ein DSN-Arbeitsspeicher 22 mehr oder weniger als acht Speichereinheiten 36 enthalten kann. Ferner ist zu beachten, dass jede Speichereinheit 36 einen Datenverarbeitungskern (wie in 2 gezeigt, oder Komponenten davon) und eine Mehrzahl von Arbeitsspeichereinheiten zum Speichern von verstreuten fehlerencodierten Daten enthält.
  • In verschiedenen Ausführungsformen arbeitet jede der Speichereinheiten als eine verteilte Speicher- und Aufgaben- (DST) Ausführungseinheit und ist betreibbar, um verstreute fehlerencodierte Daten zu speichern und/oder eine oder mehrere Aufgaben auf verteilte Weise an Daten 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 auf eine Speichereinheit austauschbar als auf eine verstreute Speicher- und Aufgaben- (DST) Ausführungseinheit verwiesen werden, und auf eine Gruppe von Speichereinheiten kann austauschbar als eine Gruppe von DST-Ausführungseinheiten verwiesen werden.
  • Jede der Datenverarbeitungseinheiten 12 bis 16, die Verarbeitungseinheit 18 und die Integritätsverarbeitungseinheit 20 enthalten einen Datenverarbeitungskern 26, der Netzwerkschnittstellen 30 bis 33 enthält. Die Datenverarbeitungseinheiten 12 bis 16 können jeweils 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. Es ist anzumerken, dass jede Verwaltungseinheit 18 und die Integritätsverarbeitungseinheit 20 separate Datenverarbeitungseinheiten sein können, zum Beispiel eine allgemeine Datenverarbeitungseinheit sein können und/oder in eine oder mehrere der Datenverarbeitungseinheiten 12 bis 16 und/oder in eine oder mehrere der Speichereinheiten 36 integriert sein können. In verschiedenen Ausführungsformen können die Datenverarbeitungseinheiten 12 bis 16 Benutzereinheiten enthalten und/oder können von einer anfordernden Entität verwendet werden, die Zugriffsanforderungen generiert, um Daten aus Speichereinheiten in dem DSN zu lesen oder in dieses zu schreiben.
  • Jede Schnittstelle 30, 32 und 33 enthält Software und Hardware zum indirekten und/oder direkten Unterstützen von einer oder mehreren 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 Datenverarbeitungseinheiten 14 und 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 Datenverarbeitungseinheiten 12 und 16 und dem DSN-Arbeitsspeicher 22. Als noch weiteres Beispiel unterstützt die Schnittstelle 33 eine Kommunikationsverbindung zu dem Netzwerk 24 sowohl für die Verwaltungseinheit 18 als auch die Integritätsverarbeitungseinheit 20.
  • Die Datenverarbeitungseinheiten 12 und 16 enthalten ein verstreutes Speicher- (DS) Clientmodul 34, das der Datenverarbeitungseinheit ermöglicht, eine verstreute Speicherfehlerencodierung und -decodierung von Daten vorzunehmen, wie im Folgenden unter Bezugnahme auf eine oder mehrere der 3 bis 8 beschrieben. In dieser beispielhaften Ausführungsform arbeitet die Datenverarbeitungseinheit 16 als verstreuter Speicherverarbeitungs-Agent für die Datenverarbeitungseinheit 14. In dieser Rolle nimmt die Datenverarbeitungseinheit 16 eine verstreute Speicherfehlerencodierung und -decodierung von Daten für die Datenverarbeitungseinheit 14 vor. Durch die Verwendung der verstreuten Speicherfehlerencodierung und -decodierung toleriert das DSN 10 eine signifikante Anzahl von Speichereinheitfehlern (die Anzahl von Fehlern beruht auf Parametern der verstreuten Speicherfehler-Encodierungsfunktion) ohne Datenverlust und ohne Notwendigkeit von redundanten oder Sicherungskopien der Daten. Ferner speichert das DSN 10 Daten für einen unbegrenzten Zeitraum ohne Datenverlust und auf sichere Weise (z.B. ist das System sehr widerstandsfähig gegenüber nicht autorisierten Versuchen von Zugriffen auf die Daten).
  • Während des Betriebs führt die Verwaltungseinheit 18 DS-Verwaltungsdienste aus. Zum Beispiel erstellt die Verwaltungseinheit 18 verteilte Datenspeicherparameter (z.B. Vaulterstellung, verteilte Speicherparameter, Sicherheitsparameter, Fakturierungsinformationen, Benutzerprofilinformationen usw.) einzeln oder als Teil einer Gruppe von Benutzereinheiten für die Datenverarbeitungseinheiten 12 bis 14. Als spezielles Beispiel koordiniert die Verwaltungseinheit 18 die Erstellung eines Vaults (z.B. ein virtueller Arbeitsspeicherblock, der einem Abschnitt eines Gesamtnamensbereichs des DSN zugehörig ist) im DSN-Arbeitsspeicher 22 für eine Benutzereinheit, eine Gruppe von Einheiten oder für öffentlichen Zugriff, und erstellt pro Vault verstreute Speicher- (DS) Fehlerencodierungsparameter für einen Vault. Die Verwaltungseinheit 18 vereinfacht das Speichern von DS-Fehlerencodierungsparametern für jeden Vault durch Aktualisieren von Registry-Informationen für das DSN 10, wobei die Registry-Informationen in dem DSN-Arbeitsspeicher 22, einer Datenverarbeitungseinheit 12 bis 16, der Verwaltungseinheit 18 und/oder der Integritätsverarbeitungseinheit 20 gespeichert werden können.
  • Die DSN-Verwaltungseinheit 18 erstellt und speichert Benutzerprofilinformationen (z.B. eine Zugriffskontrollliste (ACL)) in einem lokalen Arbeitsspeicher und/oder in einem Arbeitsspeicher des DSN-Arbeitsspeichers 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 Datenencodierungs-/-decodierungsschema enthalten.
  • Die DSN-Verwaltungseinheit 18 erstellt Fakturierungsinformationen für einen bestimmten Benutzer, eine Benutzergruppe, einen Vaultzugriff, öffentlichen Vaultzugriff usw. Zum Beispiel verfolgt die DSN-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 DSN-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.
  • In einem weiteren Beispiel führt die Verwaltungseinheit 18 Netzwerkoperationen, Netzwerkverwaltung und/oder Netzwerkwartung aus. 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, Speichereinheiten und/oder Datenverarbeitungseinheiten mit einem DS-Clientmodul 34) zu/aus dem verteilten DSN 10 und/oder ein Erstellen von Authentifizierungsdaten für die Speichereinheiten 36. Zur Netzwerkverwaltung zählen 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 Einheitenlasten und/oder ein Bestimmen irgendeiner anderen Operation auf Systemebene, die sich auf das Leistungsniveau des DSN 10 auswirkt. Zur Netzwerkwartung zählt ein Vereinfachen für das Ersetzen, Aktualisieren, Reparieren und/oder Erweitern einer Einheit und/oder einer Einheit des DSN10.
  • Die Integritätsverarbeitungseinheit 20 führt einen Wiederaufbau von „ungültigen“ oder fehlenden encodierten Datenausschnitten aus. Auf einer hohen Ebene führt die Integritätsverarbeitungseinheit 20 ein Wiederaufbauen durch periodische Versuche aus, encodierte Datenausschnitte und/oder Ausschnittnamen der encodierten Datenausschnitte aus dem DSN-Arbeitsspeicher 22 abzurufen/aufzulisten. Abgerufene encodierte 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. Encodierte 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 encodierter Datenausschnitte wiederaufgebaut, die als gute Ausschnitte zum Erzeugen von wiederaufgebauten Ausschnitten eingestuft werden. Die wiederaufgebauten Ausschnitte werden im DSN-Arbeitsspeicher 22 gespeichert.
  • 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 Nur-Lese-Speicher (ROM) eines grundlegenden 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 mehreres 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 DSN-Schnittstellenmodul 76.
  • Das DSN-Schnittstellenmodul 76 arbeitet so, dass es eine herkömmliche Dateisystemschnittstelle eines Betriebssystems (OS) (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.) nachahmt. Das DSN-Schnittstellenmodul 76 und/oder das Netzwerk-Schnittstellenmodul 70 können als eine oder mehrere der Schnittstellen 30 bis 33 von 1 arbeiten. Zu beachten ist, dass auf das E/A-Einheitenschnittstellenmodul 62 und/oder die Arbeitsspeicher-Schnittstellenmodule 66 bis 76 kollektiv oder einzeln als E/A-Anschlüsse verwiesen werden kann.
  • 3 ist ein schematisches Blockschaubild eines Beispiels für eine verstreute Speicherfehlerencodierung von Daten. Wenn eine Datenverarbeitungseinheit 12 oder 16 Daten hat, die gespeichert werden müssen, nimmt sie eine verstreute Speicherfehlerencodierung der Daten gemäß einem verstreuten Speicherfehler-Encodierungsprozess auf Grundlage von verstreuten Speicherfehler-Encodierungsparametern vor. Hier speichert die Verarbeitungseinheit ein Datenobjekt 40, das eine Datei (z.B. Text, Video, Audio usw.) oder eine andere Datenanordnung enthalten kann. Die verstreuten Speicherfehler-Encodierungsparameter enthalten eine Encodierungsfunktion (z.B. Informationsstreualgorithmus (IDA), Reed-Solomon, Cauchy Reed-Solomon, systematische Encodierung, unsystematische Encodierung, Online-Codes usw.), ein Datensegmentierungsprotokoll (z.B. Datensegmentgröße, feststehend, variabel usw.) und Encodierungswerte pro Datensegment. Die Encodierungswerte pro Datensegment enthalten eine Gesamt- oder eine Pillar-Breitenzahl (T) von encodierten Datenausschnitten pro Encodierung eines Datensegments (d.h. in einer Gruppe von encodierten Datenausschnitten); eine Decodierschwellenwertzahl (D) von encodierten Datenausschnitten einer Gruppe von encodierten Datenausschnitten, die benötigt werden, um das Datensegment wiederherzustellen; eine Leseschwellenwertzahl (R) von encodierten Datenausschnitten, um eine Zahl von encodierten Datenausschnitten pro Gruppe anzugeben, die aus dem Speicher zum Decodieren des Datensegments ausgelesen werden sollen; und/oder eine Schreibschwellenwertzahl (W), um eine Zahl von encodierten Datenausschnitten pro Gruppe anzugeben, die korrekt gespeichert werden müssen, bevor man davon ausgehen kann, dass das encodierte Datensegment sachgemäß gespeichert worden ist. Die verstreuten Speicherfehler-Encodierungsparameter können ferner Ausschnittinformationen enthalten (z.B. die Zahl von encodierten Datenausschnitten, die für jedes Datensegment erstellt werden) und/oder Ausschnittsicherheitsinformationen (z.B. pro Verschlüsselung, Komprimierung, Integritätsprüfsumme usw. pro encodiertem Datenausschnitt).
  • In dem vorliegenden Beispiel wurde Cauchy Reed-Solomon als die Encodierungsfunktion ausgewählt (ein allgemeines Beispiel wird in 4 gezeigt, und ein spezifisches Beispiel wird in 5 gezeigt); das Datensegmentierungsprotokoll dient zum Aufteilen des Datenobjekts in Datensegmente von feststehender Größe; und die Encodierungswerte pro Datensegment enthalten: eine Pillar-Breite von 5, einen Decodierschwellenwert von 3, einen Leseschwellenwert von 4 und einen Schreibschwellenwert von 4. Gemäß dem Datensegmentierungsprotokoll teilt die Datenverarbeitungseinheit 12 oder 16 das Datenobjekt 40 in eine Mehrzahl von Datensegmenten mit feststehender Größe (z.B. 1 bis Y einer feststehenden Größe im Bereich von Kilobyte bis Terabyte oder höher). Die Zahl der erstellten Datensegmente hängt von der Größe der Daten und dem Datensegmentierungsprotokoll ab.
  • Die Datenverarbeitungseinheit 12 oder 16 nimmt dann eine Speicherfehlerencodierung eines Datensegments unter Verwendung der ausgewählten Encodierungsfunktion vor (z.B. Cauchy Reed-Solomon), um eine Gruppe von encodierten Datenausschnitten zu erzeugen. 4 veranschaulicht eine allgemeine Cauchy Reed-Solomon-Encodierungsfunktion, die eine Encodierungsmatrix (EM), eine Datenmatrix (DM) und eine codierte Matrix (CM) enthält. Die Größe der Encodierungsmatrix (EM) hängt von der Pillar-Breitenzahl (T) und der Decodierschwellenwertzahl (D) von ausgewählten Encodierungswerten pro Datensegment ab. Zum Erzeugen der Datenmatrix (DM) wird das Datensegment in eine Mehrzahl von Datenblöcken aufgeteilt, und die Datenblöcke werden in eine Anzahl D von Zeilen mit Z Datenblöcken pro Zeile angeordnet. Zu beachten ist, dass Z eine Funktion der Anzahl von Datenblöcken ist, die aus dem Datensegment und der Decodierschwellenwertzahl (D) erstellt wurden. Die codierte Matrix wird von einer Matrix erzeugt, die die Datenmatrix mit der encodierten Matrix multipliziert.
  • 5 veranschaulicht ein spezifisches Beispiel einer Cauchy Reed-Solomon-Encodierung mit einer Pillar-Breitenzahl (T) von fünf und einer Decodierschwellenwertzahl von drei. In diesem Beispiel wird ein erstes Datensegment in zwölf Datenblöcke (D1 bis D12) aufgeteilt. Die codierte Matrix enthält fünf Zeilen mit codierten Datenblöcken, wobei die erste Zeile von X11 bis X14 einem ersten encodierten Datenausschnitt (EDS 1_1) entspricht, die zweite Zeile von X21 bis X24 einem zweiten encodierten Datenausschnitt (EDS 2_1) entspricht, die dritte Zeile von X31 bis X34 einem dritten encodierten Datenausschnitt (EDS 3_1) entspricht, die vierte Zeile von X41 bis X44 einem vierten encodierten Datenausschnitt (EDS 4_1) entspricht, und die fünfte Zeile von X51 bis X54 einem fünften encodierten Datenausschnitt (EDS 5_1) entspricht. Zu beachten ist, dass die zweite Zahl der EDS-Bezeichnung der Datensegmentzahl entspricht.
  • Unter erneuter Bezugnahme auf die Erläuterung von 3 erstellt die Datenverarbeitungseinheit auch einen Ausschnittnamen (SN) für jeden encodierten Datenausschnitt (EDS) in der Gruppe von encodierten Datenausschnitten. Ein typisches Format für einen Ausschnittnamen 80 wird in 6 gezeigt. Wie gezeigt, enthält der Ausschnittname (SN) 80 eine Pillar-Breitenzahl des encodierten Datenausschnitts (z.B. eins von 1 bis T), eine Datensegmentzahl (z.B. eins von 1 bis Y), eine Vaultkennung, eine Datenobjektkennung (ID) und kann ferner Informationen auf Revisionsebene der encodierten Datenausschnitte enthalten. Der Ausschnittname funktioniert zumindest teilweise als DSN-Adresse für den encodierten Datenausschnitt zum Speichern und Abrufen aus dem DSN-Arbeitsspeicher 22.
  • Als Resultat der Encodierung erzeugt die Datenverarbeitungseinheit 12 oder 16 eine Mehrzahl von Gruppen von encodierten Datenausschnitten, die den Speichereinheiten mit ihren jeweiligen Ausschnittnamen zur Speicherung bereitgestellt werden. Wie gezeigt, enthält die erste Gruppe von encodierten Datenausschnitten EDS 1_1 bis EDS 5_1, und die erste Gruppe von Ausschnittnamen enthält SN 1_1 bis SN 5_1, und die letzte Gruppe von encodierten Datenausschnitten enthält EDS 1_Y bis EDS 5_Y, und die letzte Gruppe von Ausschnittnamen enthält SN 1_Y bis SN 5_Y.
  • 7 ist ein schematisches Blockschaubild eines Beispiels für verstreute Speicherfehlerdecodierung eines Datenobjekts, das in dem Beispiel von 4 verstreut speicherfehlerencodiert und gespeichert wurde. In diesem Beispiel ruft die Datenverarbeitungseinheit 12 oder 16 aus den Speichereinheiten mindestens die Decodierschwellenwertzahl von encodierten Datenausschnitten pro Datensegment ab. In einem spezifischen Beispiel ruft die Datenverarbeitungseinheit eine Leseschwellenwertzahl von encodierten Datenausschnitten ab.
  • Zum Wiederherstellen eines Datensegments aus einer Decodierschwellenwertzahl von encodierten Datenausschnitten verwendet die Datenverarbeitungseinheit eine Decodierfunktion wie in 8 gezeigt. Wie gezeigt, ist die Decodierfunktion im Wesentlichen eine Umkehrung der Encodierfunktion von 4. Die codierte Matrix enthält eine Decodierschwellenwertzahl von Zeilen (z.B. drei in diesem Beispiel), und die Decodiermatrix ist eine Umkehrung der Encodiermatrix, die die entsprechenden Zeilen der codierten Matrix enthält. Wenn die codierte Matrix zum Beispiel die Zeilen 1, 2 und 4 enthält, wird die Encodiermatrix auf die Zeilen 1, 2 und 4 eingeschränkt und anschließend umgekehrt, um die Decodiermatrix zu erzeugen.
  • 9 ist ein schematisches Blockschaubild einer anderen Ausführungsform eines verstreuten Speichernetzwerks (DSN), das eine Datenverarbeitungseinheit 16 von 1, das Netzwerk 24 von 1 und mindestens eine Speichereinheit 910 enthält. Die Speichereinheit 910 kann die Schnittstelle 32 von 1 und den Datenverarbeitungskern 26 von 1 enthalten und kann durch Verwenden der Speichereinheit 36 von 1 umgesetzt werden. Die Speichereinheit 910 kann eine oder mehrere Arbeitsspeichereinheiten 920 enthalten, und jede Arbeitsspeichereinheit 920 kann in eine Mehrzahl von Speicherzonen geteilt werden, die die Speicherzonen 922-2 und 922-2 enthalten. Jede Speicherzone kann eine Untergruppe von Datenobjekten, Datensegmenten und/oder Datenausschnitten enthalten, die von der Arbeitsspeichereinheit 920 gespeichert werden, die Datenausschnitte 930-1, 930-2, 930-3 und 930-4 enthalten kann. Die Speichereinheit kann auch einen RAM 945 enthalten, der einen flüchtigen Arbeitsspeicher oder einen anderen Arbeitsspeicher enthalten kann, und der unter Verwendung des Datenverarbeitungskerns 26 umgesetzt werden kann. Der RAM 945 kann eine Mehrzahl von Anfügepunkten enthalten, einschließlich eines Anfügepunkts 956-1 und eines Anfügepunkts 956-2, wobei die Mehrzahl von Anfügepunkten Arbeitsspeicher-Speicherorten der Mehrzahl von Speicherzonen entspricht, in denen die nächsten Daten gemäß eines sequenziellen oder Nur-Anfügen-Schreibprotokolls gespeichert werden sollen. Der RAM 945 kann auch eine Mehrzahl von Zeigern enthalten, die in der Speichereinheit gespeicherten Datenausschnitten entsprechen, die Arbeitsspeicher-Speicherorte, Versatzinformationen, Zoneninformationen und/oder Informationen der Arbeitsspeichereinheit enthalten, sodass der entsprechende Datenausschnitt durch Verwenden seines entsprechenden Zeigers aus dem Arbeitsspeicher abgerufen werden kann. Das DSN arbeitet so, dass Daten sequenziell in Zonen gespeichert werden.
  • Eine Hauptkomponente der Anforderungslatenz in einem DSN ist die Zeit, die Speichereinheiten auf das Lesen von Daten aus und das Schreiben von Daten in Arbeitsspeichereinheiten aufwenden. Im Allgemeinen besteht ein großer Teil der Zeit, die eine Arbeitsspeichereinheit zum Lesen oder Schreiben von Daten aufwendet, darin, die Spur und den Abschnitt zu suchen, in denen sich die angeforderten Daten befinden. Eine Möglichkeit zur vollständigen Kontrolle des Suchvorgangs der Arbeitsspeichereinheit ist, ein Formatieren von Arbeitsspeichereinheiten von Speichereinheiten mit einem Dateisystem zu umgehen und stattdessen direkte Lese- und Schreibvorgänge auf der Roharbeitsspeichereinheit über unterstützte Protokolle vorzunehmen, zum Beispiel durch Verwenden des Small Computer System Interface- (SCSI) Protokolls oder eines anderen Protokolls, das ein direktes Schreiben in einen Roharbeitsspeicher unterstützt. Zum Unterstützen sequenzieller Schreibvorgänge und/oder von Datenentfernung können eine oder mehrere Arbeitsspeichereinheiten 920 einer Speichereinheit in Zonen von fester Größe geteilt werden, wobei die Speichereinheit ein umfassendes sequenzielles Schreibprotokoll verwendet. Zum Beispiel kann eine Speichereinheit unter Verwendung von optimalen Anfügespeichereinheiten (AOSD) oder anderen Arbeitsspeichereinheiten umgesetzt werden, für die angefügte Schreibvorgänge die optimale Form eines Zugriffs sind und/oder für die ein Nur-Anfügen-Schreibschema beim Speichern von Daten verwendet wird. Das Nur-Anfügen-Schreibschema schreibt vor, dass neue Datenobjekte und/oder Datenausschnitte geschrieben werden, indem sie an ein Ende oder einen „Anfügepunkt“ einer Zone im Speicher angefügt werden, wie beispielsweise die Zone 922-1 und 922-2. Wenn Datenausschnitte geschrieben werden, werden sie in den nächsten Platz in ihrer jeweiligen Arbeitsspeicherzone gemäß dem entsprechenden Anfügepunkt der Zone geschrieben, und der Anfügepunkt wird auf Grundlage der Länge der neu geschriebenen Daten, wie beispielsweise der Datenausschnitte 930-1 bis 930-4, aktualisiert. Anfügepunkte für jede Zone, wie beispielsweise die Anfügepunkte 956-1 und 956-2, können in einem flüchtigen Arbeitsspeicher wie dem RAM 945 oder einem anderen Arbeitsspeicher der Speichereinheit verwaltet werden und können als ein Zeiger oder eine andere Referenz auf den Anfügepunkt-Speicherort der Arbeitsspeichereinheit gespeichert werden.
  • Die Speichereinheit kann neue Zonen dynamische zuweisen und die Zuweisung von alten Zonen auf einer oder mehreren Arbeitsspeichereinheiten aufheben, um eine feste Anzahl von aktiven Zonen und/oder eine Anzahl von aktiven Zonen, die als optimal bestimmt wird, beizubehalten. Die Anzahl von Zonen und/oder der in der Untergruppe ausgewählten Zonen kann auf Grundlage von Zonenzuweisungsparametern und/oder Zonenneuzuweisungsparametern bestimmt werden, die auf E/A-Anforderungshäufigkeit, Arbeitsspeicher- und/oder Verarbeitungsanforderungen, E/A-Geschwindigkeitsanforderungen und/oder anderen Zonenzuweisungs- und/oder Zonenneuzuweisungsanforderungen beruhen können. Die Auswahl einer kleineren Untergruppe von Zonen für Schreibvorgänge kann den Suchvorgang weiter minimieren und somit die E/A-Geschwindigkeit verbessern. In einigen Ausführungsformen ist zu jedem beliebigen Zeitpunkt genau eine Zone pro Arbeitsspeichereinheit für Schreibvorgänge offen. Dies kann einen Suchvorgang auf jeder Arbeitsspeichereinheit vermeiden, da die Schreibvorgänge auf jeder Arbeitsspeichereinheit vollständig sequenziell erfolgen. In verschiedenen Ausführungsformen kann die aktive Zone auf Grundlage von verfügbarem Platz in der Zone, auf Grundlage einer vorher ausgewählten Zone ausgewählt werden und/oder willkürlich ausgewählt werden. Die Speichereinheit kann Informationen darüber verwalten, welche Zonen als für Schreib- und/oder Lesevorgänge offen gekennzeichnet sind, und welche Zone für Schreib- und/oder Lesevorgänge geschlossen sind, und kann diese Kennzeichnungen in Reaktion auf ein Bestimmen ändern, dass eine Neuzuweisungsanforderung erfüllt ist. Die Speichereinheit kann auch Zonenprioritätsinformationen und/oder Informationen zur verfügbaren Kapazität für jede der Zonen verwalten. Diese Informationen können im RAM 945 oder einem anderen Arbeitsspeicher der Speichereinheit gespeichert werden.
  • In einer rein auf Schreibvorgängen beruhenden Arbeitslast auf einem DSN können die vorgenannten Verbesserungen die Suchvorgänge der Arbeitsspeichereinheit auf einen einzigen Zeitpunkt reduzieren, wenn eine neue Zone zugewiesen wird, und es ist kein weiterer Suchvorgang erforderlich, bis eine neue Zone zugewiesen werden muss. Es sind auch Verbesserungen vorhanden, die in Bezug auf ein Lesen von Daten aus Arbeitsspeichereinheiten verwendet werden können. Dies kann ein Verwalten von Zeigern, wie beispielsweise Zeiger 940-1 bis 940-3, für alle Daten enthalten, die genau beschreiben, wo auf der Arbeitsspeichereinheit jeweils angeforderte Daten gespeichert sind, wodurch zum Lesen der Daten nur ein einziger Suchvorgang erforderlich ist. Derartige Zeiger können auf einem schnelleren Arbeitsspeicher gespeichert werden, wie z.B. einem RAM 945 oder einem anderen Arbeitsspeicher der Speichereinheit. Die Zeiger können Informationen über die Arbeitsspeichereinheit, die Zone, die Datei, den Versatz und/oder die Länge des Datenausschnitts enthalten.
  • Eine weitere von den Speichereinheiten verwendete Strategie, um schnellere Lesevorgänge zu ermöglichen, enthält ein intelligentes Zwischenspeichern von Lesevorgängen in einem schnelleren flüchtigen Arbeitsspeicher wie dem RAM 945, beispielsweise auf einer auf Häufigkeit beruhenden Richtlinie, gemäß der häufig verwendete Daten in dem flüchtigen Arbeitsspeicher verbleiben. Die Lesehäufigkeit eines Datenausschnitts kann von einer Datenverarbeitungseinheit 16 oder einer anderen Entität über das Netzwerk erhalten werden, zum Beispiel als Prioritätsindikator, wenn die Daten erstmalig oder später auf Grundlage einer Änderung der Datenpriorität geschrieben werden. Die Speichereinheit kann auch eine Lesehäufigkeit von Datenausschnitten verfolgen und kann bestimmen, einen Datenausschnitt in den flüchtigen Arbeitsspeicher zu verschieben, wenn die Lesehäufigkeit, zum Beispiel eine Anzahl von Lesevorgängen in einem festen Zeitraum, einen Schwellenwert einer vordefinierten Lesehäufigkeit überschreitet oder anderweitig im Vergleich damit positiv abschneidet.
  • Eine andere von den Speichereinheiten verwendete Strategie zum Minimieren der Zeit, die für Suchvorgänge während E/A aufgewendet wird, enthält ein Zwischenspeichern von eingehenden Lesevorgängen und/oder Schreibvorgängen in einem schnelleren flüchtigen Arbeitsspeicher wie dem RAM 945 und/oder ein sequenzielles Schreiben von größeren Datenmengen in Stapeln in die persistente Arbeitsspeichereinheit und/oder Zone. Ein Leeren von Daten aus dem Cache kann auf periodischer Grundlage erfolgen, zum Beispiel jede Sekunde, in einem anderen festen Zeitintervall, in Reaktion auf ein Empfangen einer Flush-Anforderung und/oder wenn die Verwendung des flüchtigen Arbeitsspeichers sich einem vordefinierten Schwellenwert nähert, diesen überschreitet oder anderweitig im Vergleich damit negativ abschneidet. Ein Leeren der Daten kann ein Generieren eines großen Datenobjekts enthalten, das die Mehrzahl von Datenausschnitten enthält, wobei die Datenausschnitte in dem großen Datenobjekt auf Grundlage eines Protokolls organisiert sind, das sequenziell sein kann. Das Datenobjekt wird sequenziell in die persistente Arbeitsspeichereinheit und/oder Zone geschrieben.
  • Ein Zwischenspeichern von eingehenden Lese- und/oder Schreibvorgängen kann ebenfalls zum Minimieren der Anzahl und Häufigkeit eines Wechsels zwischen Zonen verwendet werden. Während eines Schreibens in eine Zone in einer Arbeitsspeichereinheit können Schreibvorgänge für neue Daten, die für eine oder mehrere andere Zonen bestimmt sind, in einem oder mehreren entsprechenden Caches in eine Warteschlange gestellt werden, beispielsweise im RAM 945 gespeichert werden. Die Speichereinheit kann Daten auf Grundlage des Zeitpunkts des Empfangs oder anderer Datenprioritätsanforderungen in eine Warteschlange stellen. Die Speichereinheit kann auf Grundlage von Datenabhängigkeit, der Größe der Daten, dem verfügbaren Platz in den anderen Zonen, Namensbereich- und/oder Zuordnungsanforderungen oder anderer Speicherortanforderungen, die vorgeben, ob bestimmte Daten in einer bestimmten Zone gespeichert werden müssen, bestimmen, welche Zonendaten sich in Warteschlangen befinden sollen. In verschiedenen Ausführungsformen werden einige oder alle Daten willkürlich in Warteschlangen gestellt. Eine Speichereinheit kann bestimmen, wann es optimal ist, Zonen zu wechseln und/oder die neue Zone in Reaktion darauf auszuwählen, dass sich die Cache-Kapazität einem vordefinierten Schwellenwert der Cache-Kapazität nähert, überschreitet oder anderweitig im Vergleich damit negativ abschneidet. Eine Speichereinheit kann auf Grundlage von Datentakt- und/oder Datenabhängigkeitsanforderungen zu einer neuen Zone wechseln, zum Beispiel durch ein Bestimmen, dass ein Journaleintrag vor einem Inhaltseintrag geschrieben werden muss, durch ein Bestimmen, dass eine große Menge von Daten mit hoher Priorität in einer Warteschlange gespeichert ist und/oder durch ein Bestimmen, dass ein Datenausschnitt in einer Warteschlange bis zu einer bestimmten Frist geschrieben werden muss. Nachdem der Wechsel ausgeführt worden ist, kann die Speichereinheit die neuen Daten in den Cache schreiben und den Cache, der für die neue Zone bestimmt ist, von einer Warteschlange leeren.
  • In verschiedenen Ausführungsformen enthält ein Verarbeitungssystem einer Speichereinheit eines DSN mindestens einen Prozessor und einen Arbeitsspeicher, der Betriebsanweisungen speichert, die, wenn sie durch den mindestens einen Prozessor ausgeführt werden, das Verarbeitungssystem veranlassen, eine erste von einer Mehrzahl von Speicherzonen auf Grundlage von Zonenzuweisungsparametern auszuwählen. Die erste der Mehrzahl von Speicherzonen wird als für Schreibvorgänge offen gekennzeichnet. Ein erster Datenausschnitt wird über ein Netzwerk zur Speicherung empfangen. Der erste Datenausschnitt wird sequenziell an einem Arbeitsspeicher-Speicherort der ersten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens geschrieben, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist. Ein dem ersten Datenausschnitt entsprechender Zeiger, der die erste der Mehrzahl von Speicherzonen und den Arbeitsspeicher-Speicherort angibt, wird generiert. Eine erste Leseanforderung wird über das Netzwerk von einer anfordernden Entität empfangen, die den ersten Datenausschnitt angibt. Der erste Datenausschnitt wird aus der Arbeitsspeichereinheit auf Grundlage des Zeigers abgerufen und wird zu der anfordernden Entität übertragen.
  • 10 ist ein Ablaufplan, der ein Beispiel für ein sequenzielles Speichern von Daten in Zonen veranschaulicht. Insbesondere wird ein Verfahren zur Verwendung in Verbindung mit einer oder mehreren Funktionen und Merkmalen vorgestellt, die im Zusammenhang mit den 1 bis 9 für eine Ausführung durch eine Speichereinheit beschrieben wurden, die einen Prozessor enthält, oder durch ein anderes Verarbeitungssystem eines verstreuten Speichernetzwerks, das mindestens einen Prozessor und einen Arbeitsspeicher enthält, der Anweisungen speichert, die den Prozessor oder die Prozessoren so konfigurieren, dass sie die im Folgenden beschriebenen Schritte ausführen. Schritt 1002 enthält ein Auswählen einer ersten von einer Mehrzahl von Speicherzonen einer Arbeitsspeichereinheit der Speichereinheit auf Grundlage von Zonenzuweisungsparametern. Schritt 1004 enthält ein Kennzeichnen der ersten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen. Schritt 1006 enthält ein Empfangen, über ein Netzwerk, eines ersten Datenausschnitts zur Speicherung. Schritt 1008 enthält ein sequenzielles Schreiben des ersten Datenausschnitts an einem Arbeitsspeicher-Speicherort der ersten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist. Schritt 1010 enthält ein Generieren eines dem ersten Datenausschnitt entsprechenden Zeigers, der die erste der Mehrzahl von Speicherzonen und den Arbeitsspeicher-Speicherort angibt. Schritt 1012 enthält ein Empfangen, über das Netzwerk, einer ersten Leseanforderung von einer anfordernden Entität, die den ersten Datenausschnitt angibt. Schritt 1014 enthält ein Abrufen des ersten Datenausschnitts aus der Arbeitsspeichereinheit auf Grundlage des Zeigers. Schritt 1016 enthält ein Übertragen des ersten Datenausschnitts an die anfordernde Entität.
  • In verschiedenen Ausführungsformen wird der erste Datenausschnitt sequenziell auf Grundlage eines SCSI-Protokolls geschrieben. In verschiedenen Ausführungsformen wird der erste Datenausschnitt sequenziell auf Grundlage eines Anfügepunkts geschrieben, und der Anfügepunkt wird auf Grundlage einer Länge des ersten Datenausschnitts aktualisiert, nachdem der erste Datenausschnitt geschrieben wurde.
  • In verschiedenen Ausführungsformen wird eine Zonenneuzuweisungsanforderung zu einem Zeitpunkt bestimmt, nachdem der erste Datenausschnitt geschrieben worden ist. Eine zweite der Mehrzahl von Speicherzonen, die als für Schreibvorgänge geschlossen gekennzeichnet ist, wird auf Grundlage der Zonenneuzuweisungsanforderung ausgewählt, und die zweite der Mehrzahl von Speicherzonen wird anschließend als für Schreibvorgänge offen gekennzeichnet. Ein zweiter Datenausschnitt wird über ein Netzwerk zur Speicherung empfangen. Der zweite Datenausschnitt wird sequenziell an einem Arbeitsspeicher-Speicherort der zweiten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens geschrieben, dass die zweite der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist.
  • In verschiedenen Ausführungsformen wird genau eine Speicherzone ausgewählt und auf Grundlage der Zonenzuweisungsparameter als für Schreibvorgänge offen gekennzeichnet, wobei die genau eine Speicherzone die erste der Mehrzahl von Speicherzonen ist. Alle übrigen Speicherzonen der Mehrzahl von Speicherzonen, die nicht genau die eine Speicherzone sind, werden als für Schreibvorgänge geschlossen gekennzeichnet. In verschiedenen Ausführungsformen wird eine Untergruppe von Speicherzonen aus der Mehrzahl von Speicherzonen auf Grundlage der Zonenzuweisungsparameter ausgewählt. Eine Größe der Untergruppe von Speicherzonen wird auf Grundlage der Zonenzuweisungsparameter ausgewählt, und die Untergruppe von Speicherzonen enthält die erste der Mehrzahl von Speicherzonen. Die Untergruppe von Speicherzonen wird als für Schreibvorgänge offen gekennzeichnet. Alle Speicherzonen in der Mehrzahl von Speicherzonen, die nicht in der Untergruppe von Speicherzonen enthalten sind, werden als für Schreibvorgänge geschlossen gekennzeichnet.
  • In verschiedenen Ausführungsformen wird eine Untergruppe von Datenausschnitten aus einer Mehrzahl von Datenausschnitten identifiziert, die in der Arbeitsspeichereinheit gespeichert sind, die im Vergleich mit einem Lesefrequenzschwellenwert positiv abschneiden. Die Untergruppe von Datenausschnitten wird in einem flüchtigen Arbeitsspeicher der Speichereinheit gespeichert, wobei ein Lesen der Untergruppe von Datenausschnitten aus dem flüchtigen Arbeitsspeicher schneller erfolgt als ein Lesen der Untergruppe von Datenausschnitten aus der Arbeitsspeichereinheit. Eine zweite Leseanforderung, die einen zweiten Datenausschnitt angibt, wird über das Netzwerk empfangen. Die Speichereinheit bestimmt, dass der zweite Datenausschnitt in dem flüchtigen Arbeitsspeicher gespeichert wird und ruft den zweiten Datenausschnitt aus dem flüchtigen Arbeitsspeicher zur Übertragung zu der anfordernden Entität über das Netzwerk ab.
  • In verschiedenen Ausführungsformen wird über das Netzwerk eine Mehrzahl von Datenausschnitt-Schreibanforderungen empfangen, wobei die Mehrzahl von Datenausschnitt-Schreibanforderungen eine Mehrzahl von Datenausschnitten enthält. Die Mehrzahl von Datenausschnitten in einem Cache des Speichereinheit. Der Cache wird in Reaktion auf ein Bestimmen einer Cache-Flush-Anforderung durch Generieren eines Datenobjekts geleert, das die Mehrzahl von Datenausschnitten enthält, indem das Datenobjekt sequenziell in die erste der Mehrzahl von Speicherzonen in Reaktion auf ein Bestimmen geschrieben wird, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist und durch Entfernen der Mehrzahl von Datenausschnitten aus dem Cache.
  • In verschiedenen Ausführungsformen wird eine Untergruppe der Mehrzahl von Speicherzonen, die nicht die erste der Mehrzahl von Speicherzonen enthält, als für Schreibvorgänge geschlossen gekennzeichnet. Eine Mehrzahl von Datenausschnitt-Schreibanforderungen wird über das Netzwerk empfangen, wobei die Mehrzahl von Datenausschnitt-Schreibanforderungen eine Mehrzahl von Datenausschnitten enthält. Die Mehrzahl von Datenausschnitten wird in einem Cache der Speichereinheit gespeichert, wobei das Speichern der Datenausschnitte ein Zuweisen von jedem der Mehrzahl von Datenausschnitten zu einer von einer Mehrzahl von Warteschlangen in dem Cache enthält und wobei jede der Mehrzahl von Warteschlangen einer Speicherzone in der Untergruppe der Mehrzahl von Speicherzonen entspricht, die als für Schreibvorgänge geschlossen gekennzeichnet sind. Eine Zonenneuzuweisungsanforderung wird bestimmt, nachdem die Mehrzahl von Datenausschnitten in dem Cache gespeichert worden ist. Eine zweite der Mehrzahl von Speicherzonen wird auf Grundlage der Zonenneuzuweisungsanforderung ausgewählt, wobei die zweite der Mehrzahl von Speicherzonen in der Untergruppe enthalten ist. Die zweite der Mehrzahl von Speicherzonen wird als für Schreibvorgänge offen gekennzeichnet. Eine erste der Mehrzahl von Warteschlangen, die der zweiten der Mehrzahl von Speicherzonen entspricht, wird aus dem Cache geleert, wobei das Leeren ein sequenzielles Schreiben der Mehrzahl von Datenausschnitten in der ersten der Mehrzahl von Warteschlangen in die zweite der Mehrzahl von Speicherzonen in Reaktion auf ein Bestimmen enthält, dass die zweite der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist und ferner ein Löschen der ersten der Mehrzahl von Warteschlangen aus dem Cache enthält.
  • In verschiedenen Ausführungsformen beruht die Zonenneuzuweisungsanforderung auf einer Kapazität des Cache, die im Vergleich mit einer Cache-Kapazitätsanforderung negativ abschneidet. In verschiedenen Ausführungsformen wird die zweite der Mehrzahl von Speicherzonen auf Grundlage einer Reihenfolge einer Warteschlangenpriorität ausgewählt, die der Mehrzahl von Warteschlangen entspricht, und die zweite der Mehrzahl von Speicherzonen entspricht einer Reihenfolge höchster Priorität der Reihenfolge der Warteschlangenpriorität. In verschiedenen Ausführungsformen beruht die Reihenfolge einer Warteschlangenpriorität auf einer Datenabhängigkeitsanforderung, und die zweite der Mehrzahl von Speicherzonen wird der Reihenfolge der höchsten Priorität in Reaktion auf ein Bestimmen zugewiesen, dass ein zweiter Datenausschnitt in der zweiten der Mehrzahl von Speicherzonen vor einem dritten Datenausschnitt in einer dritten der Mehrzahl von Speicherzonen gemäß der Datenabhängigkeitsanforderung geschrieben werden muss.
  • In verschiedenen Ausführungsformen enthält ein nicht flüchtiges, durch einen Computer lesbares Speichermedium mindestens einen Arbeitsspeicherabschnitt, der Betriebsanweisungen speichert, die, wenn sie durch ein Verarbeitungssystem eines verstreuten Speichernetzwerks (DSN) ausgeführt werden, das einen Prozessor enthält, das Verarbeitungssystem veranlassen, eine erste von einer Mehrzahl von Speicherzonen einer Arbeitsspeichereinheit auf Grundlage von Zonenzuweisungsparametern auszuwählen. Die erste der Mehrzahl von Speicherzonen wird als für Schreibvorgänge offen gekennzeichnet. Ein erster Datenausschnitt wird über ein Netzwerk zur Speicherung empfangen. Der erste Datenausschnitt wird sequenziell an einem Arbeitsspeicher-Speicherort der ersten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens geschrieben, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist. Ein dem ersten Datenausschnitt entsprechender Zeiger, der die erste der Mehrzahl von Speicherzonen und den Arbeitsspeicher-Speicherort angibt, wird generiert. Eine erste Leseanforderung wird über das Netzwerk von einer anfordernden Entität empfangen, die den ersten Datenausschnitt angibt. Der erste Datenausschnitt wird aus der Arbeitsspeichereinheit auf Grundlage des Zeigers abgerufen und wird zu der anfordernden Entität übertragen.
  • Zu beachten ist, dass Terminologien, wie sie hierin verwendet sein können, wie beispielsweise Bitstrom, Strom, Signalfolge usw. (oder deren Entsprechungen) austauschbar verwendet worden sind, um digitale Informationen zu beschreiben, deren Inhalt einer beliebigen Anzahl von gewünschten Typen entspricht (z.B. Daten, Video, Sprache, Audio usw., auf die allesamt allgemein als „Daten“ Bezug genommen werden kann).
  • 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 entspricht Komponentenwerten, Prozessvariationen von integrierten Schaltungen, Temperaturabweichungen, Anstiegs- und Abfallzeiten und/oder thermischem Rauschen, sie ist aber nicht darauf beschränkt. Eine derartige Relativität zwischen Elementen reicht von einer Differenz von einigen Prozenten bis zu Größendifferenzen. Wie möglicherweise ebenfalls hierin verwendet, enthalten der bzw. die Begriffe „konfiguriert zum“, „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, ist aber nicht darauf beschränkt), wobei das dazwischenliegende Element zum Beispiel 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 im Fall von „verbunden mit“. Wie noch des Weiteren möglicherweise hierin verwendet, gibt der Begriff „konfiguriert zum“, „betreibbar zum“, „verbunden mit“ 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 kann des Weiteren eine abgeleitete Verbindung mit einem oder mehreren anderen Elementen enthalten. 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 „schneidet im Vergleich positiv ab“ 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öße als Signal 2 hat, kann ein positiver Vergleich erreicht werden, wenn die Größe von Signal 1 größer als diejenige von Signal 2 ist, oder wenn die Größe von Signal 2 kleiner als diejenige von Signal 1 ist. Wie möglicherweise hierin verwendet, gibt der Begriff „schneidet im Vergleich negativ ab“ an, dass ein Vergleich zwischen zwei oder mehreren Elementen, Signalen usw. keine gewünschte Beziehung bereitstellt.
  • Wie möglicherweise ebenfalls hierin verwendet, können die Begriffe „Verarbeitungsmodul“, „Verarbeitungsschaltung“, „Prozessor“ 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, der bzw. das eine einzelne Arbeitsspeichereinheit, eine Mehrzahl von Arbeitsspeichereinheiten und/oder eine 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 umsetzt, 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 einigen 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.
  • Eine oder mehrere Ausführungsformen wurden oben mithilfe von Verfahrensschritten beschrieben, die die Ausführung 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 und des Erfindungsgedankens der Ansprüche. 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 worden 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 worden sein und trotzdem die bestimmte signifikante Funktionalität ausführen. Derartige alternative Definitionen sowohl von Funktionsbausteinen als auch Ablaufplanblöcken und Abfolgen liegen somit innerhalb des Schutzumfangs und des Erfindungsgedankens der Ansprüche. 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.
  • Außerdem kann ein Ablaufplan eine „Start“- und/oder „Fortsetzung“-Angabe enthalten. Die „Start“- und „Fortsetzung“-Angaben berücksichtigen, dass die dargestellten Schritte optional in andere Routinen integriert oder anderweitig in Verbindung mit anderen Routinen verwendet werden können. In diesem Kontext gibt „Start“ den Beginn des ersten dargestellten Schritts an und kann anderen Aktivitäten, die nicht speziell gezeigt sind, vorangestellt sein. Ferner gibt die „Fortsetzung“-Angabe an, dass die dargestellten Schritte mehrmals ausgeführt werden können und/oder von anderen Aktivitäten gefolgt werden können, die nicht speziell gezeigt sind. Während ein Ablaufplan eine bestimmte Reihenfolge von Schritten angibt, sind ferner auch andere Reihenfolgen möglich, vorausgesetzt, die Kausalitätsprinzipien bleiben gewahrt.
  • Die eine oder die 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 Herstellungsgegenstands, einer Maschine und/oder eines Prozesses 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 auch andere Architekturen 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 einen oder der mehreren Ausführungsformen verwendet. Ein Modul setzt eine oder mehrere Funktionen über eine Einheit um, wie beispielsweise einen Prozessor oder eine andere Verarbeitungseinheit oder andere Hardware, die einen Arbeitsspeicher enthalten oder in Verbindung mit einem Arbeitsspeicher arbeiten können, der betriebliche Anweisungen speichert. Ein Modul kann unabhängig und/oder in Verbindung mit Software und/oder Firmware arbeiten. Wie hierin ebenfalls verwendet, kann ein Modul ein oder mehrere untergeordnete Module enthalten, von denen jedes ein oder mehrere Module sein kann.
  • Wie hier ferner verwendet sein kann, enthält ein von einem Computer lesbarer Arbeitsspeicher ein oder mehrere Arbeitsspeicherelemente. Ein Arbeitsspeicherelement kann eine separate Arbeitsspeichereinheit, mehrere Arbeitsspeichereinheiten oder eine Gruppe von Arbeitsspeicher-Speicherorten in einer Arbeitsspeichereinheit sein. 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. Die Arbeitsspeichereinheit kann in Form eines Solid-State-Arbeitsspeichers, eines Festplatten-Arbeitsspeichers, eines Cloud-Arbeitsspeicher, eines Thumb-Drive, eines Server-Arbeitsspeichers, eines Datenverarbeitungseinheit-Arbeitsspeichers und/oder eines anderen physischen Datenträgers zum Speichern von digitalen Informationen vorliegen.
  • Zwar wurden spezielle Kombinationen von verschiedenen Funktionen und Merkmalen der einen oder der mehreren Ausführungsformen hierin ausdrücklich beschrieben, doch sind andere Kombinationen dieser Merkmale und Funktionen ebenfalls möglich. Die vorliegende Offenbarung wird nicht durch die speziellen, hierin offenbaren Beispiele begrenzt und verkörpert ausdrücklich diese weiteren Kombinationen.

Claims (25)

  1. Verfahren zur Ausführung durch eine Speichereinheit eines verstreuten Speichernetzwerks (DSN), das einen Prozessor enthält, wobei das Verfahren aufweist: ein Auswählen einer ersten von einer Mehrzahl von Speicherzonen einer Arbeitsspeichereinheit der Speichereinheit auf Grundlage von Zonenzuweisungsparametern; ein Kennzeichnen der ersten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen; ein Empfangen, über ein Netzwerk, eines ersten Datenausschnitts zur Speicherung; ein sequenzielles Schreiben des ersten Datenausschnitts an einem Arbeitsspeicher-Speicherort der ersten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist; ein Generieren eines Zeigers, der dem ersten Datenausschnitt entspricht, der die erste der Mehrzahl von Speicherzonen und den Arbeitsspeicher-Speicherort angibt; ein Empfangen, über das Netzwerk, einer ersten Leseanforderung von einer anfordernden Entität, die den ersten Datenausschnitt angibt; ein Abrufen des ersten Datenausschnitts aus der Arbeitsspeichereinheit auf Grundlage des Zeigers; und ein Übertragen des ersten Datenausschnitts an die anfordernde Entität.
  2. Verfahren nach Anspruch 1, wobei der erste Datenausschnitt sequenziell auf Grundlage eines SCSI-Protokolls geschrieben wird.
  3. Verfahren nach Anspruch 1, wobei der erste Datenausschnitt sequenziell auf Grundlage eines Anfügepunkts geschrieben wird, und wobei der Anfügepunkt auf Grundlage einer Länge des ersten Datenausschnitts aktualisiert wird, nachdem der erste Datenausschnitt geschrieben wurde.
  4. Verfahren nach Anspruch 1, wobei genau eine Speicherzone auf Grundlage der Zonenzuweisungsparameter ausgewählt und als für Schreibvorgänge offen gekennzeichnet wird, wobei die exakt eine Speicherzone die erste der Mehrzahl von Speicherzonen ist, und wobei das Verfahren ferner aufweist: ein Kennzeichnen aller übrigen Speicherzonen der Mehrzahl von Speicherzonen, die nicht genau die eine Speicherzone sind, als für Schreibvorgänge geschlossen.
  5. Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Auswählen einer Untergruppe von Speicherzonen aus der Mehrzahl von Speicherzonen auf Grundlage der Zonenzuweisungsparameter, wobei eine Größe der Untergruppe von Speicherzonen auf Grundlage der Zonenzuweisungsparameter ausgewählt wird, und wobei die Untergruppe von Speicherzonen die erste der Mehrzahl von Speicherzonen enthält; ein Kennzeichnen der Untergruppe von Speicherzonen als für Schreibvorgänge offen; und ein Kennzeichnen aller Speicherzonen in der Mehrzahl von Speicherzonen, die nicht in der Untergruppe von Speicherzonen enthalten sind, als für Schreibvorgänge geschlossen.
  6. Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Bestimmen einer Zonenneuzuweisungsanforderung zu einem Zeitpunkt, nachdem der erste Datenausschnitt geschrieben worden ist; ein Auswählen einer zweiten von der Mehrzahl von Speicherzonen, die als für Schreibvorgänge geschlossen gekennzeichnet ist, auf Grundlage der Zonenneuzuweisungsanforderung; ein Kennzeichnen der zweiten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen; ein Empfangen, über ein Netzwerk, eines zweiten Datenausschnitts zur Speicherung; und ein sequenzielles Schreiben des zweiten Datenausschnitts an einem Arbeitsspeicher-Speicherort der zweiten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens, dass die zweite der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist.
  7. Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Identifizieren einer Untergruppe von Datenausschnitten aus einer Mehrzahl von Datenausschnitten, die in der Arbeitsspeichereinheit gespeichert sind, die im Vergleich mit einem Lesefrequenzschwellenwert positiv abschneiden; ein Speichern der Untergruppe von Datenausschnitten in einem flüchtigen Arbeitsspeicher der Speichereinheit, wobei ein Lesen der Untergruppe von Datenausschnitten aus dem flüchtigen Arbeitsspeicher schneller erfolgt als ein Lesen der Untergruppe von Datenausschnitten aus der Arbeitsspeichereinheit; ein Empfangen, über das Netzwerk, einer zweiten Leseanforderung, die einen zweiten Datenausschnitt angibt; ein Bestimmen, dass der zweite Datenausschnitt in dem flüchtigen Arbeitsspeicher gespeichert ist, und ein Abrufen des zweiten Datenausschnitts aus dem flüchtigen Arbeitsspeicher zur Übertragung zu der anfordernden Entität über das Netzwerk.
  8. Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Empfangen, über das Netzwerk, einer Mehrzahl von Datenausschnitt-Schreibanforderungen, wobei die Mehrzahl von Datenausschnitt-Schreibanforderungen eine Mehrzahl von Datenausschnitten enthält; ein Speichern der Mehrzahl von Datenausschnitten in einem Cache der Speichereinheit; und ein Leeren des Cache in Reaktion auf ein Bestimmen einer Cache-Flush-Anforderung durch ein Generieren eines Datenobjekts, das die Mehrzahl von Datenausschnitten enthält, indem das Datenobjekt sequenziell in die erste der Mehrzahl von Speicherzonen in Reaktion auf ein Bestimmen geschrieben wird, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist und durch ein Entfernen der Mehrzahl von Datenausschnitten aus dem Cache.
  9. Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Kennzeichnen einer Untergruppe der Mehrzahl von Speicherzonen, die nicht die erste der Mehrzahl von Speicherzonen enthält, als für Schreibvorgänge geschlossen; ein Empfangen, über das Netzwerk, einer Mehrzahl von Datenausschnitt-Schreibanforderungen, wobei die Mehrzahl von Datenausschnitt-Schreibanforderungen eine Mehrzahl von Datenausschnitten enthält; ein Speichern der Mehrzahl von Datenausschnitten in einem Cache der Speichereinheit durch ein Zuweisen von jedem der Mehrzahl von Datenausschnitten zu einer von einer Mehrzahl von Warteschlangen in dem Cache, wobei jede der Mehrzahl von Warteschlangen einer Speicherzone in der Untergruppe der Mehrzahl von Speicherzonen entspricht, die als für Schreibvorgänge geschlossen gekennzeichnet sind; ein Bestimmen einer Zonenneuzuweisungsanforderung, nachdem die Mehrzahl von Datenausschnitten in dem Cache gespeichert worden ist; ein Auswählen einer zweiten aus der Mehrzahl von Speicherzonen auf Grundlage der Zonenneuzuweisungsanforderung, wobei die zweite der Mehrzahl von Speicherzonen in der Untergruppe enthalten ist; ein Kennzeichnen der zweiten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen; und ein Leeren einer ersten der Mehrzahl von Warteschlangen, die der zweiten der Mehrzahl von Speicherzonen entspricht, aus dem Cache, indem die Mehrzahl von Datenausschnitten in der ersten der Mehrzahl von Warteschlangen sequenziell in die zweite von der Mehrzahl von Speicherzonen in Reaktion auf ein Bestimmen geschrieben wird, dass die zweite der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist und durch ein Löschen der ersten der Mehrzahl von Warteschlangen aus dem Cache.
  10. Verfahren nach Anspruch 9, wobei die Zonenneuzuweisungsanforderung auf einer Kapazität des Cache beruht, die im Vergleich mit einer Cache-Kapazitätsanforderung negativ abschneidet.
  11. Verfahren nach Anspruch 9, wobei die zweite der Mehrzahl von Speicherzonen auf Grundlage einer Reihenfolge einer Warteschlangenpriorität ausgewählt wird, die der Mehrzahl von Warteschlangen entspricht, und wobei die zweite der Mehrzahl von Speicherzonen einer Reihenfolge höchster Priorität der Reihenfolge der Warteschlangenpriorität entspricht.
  12. Verfahren nach Anspruch 11, wobei die Reihenfolge einer Warteschlangenpriorität auf einer Datenabhängigkeitsanforderung beruht, und wobei die zweite der Mehrzahl von Speicherzonen der Reihenfolge der höchsten Priorität in Reaktion auf ein Bestimmen zugewiesen wird, dass ein zweiter Datenausschnitt in der zweiten der Mehrzahl von Speicherzonen vor einem dritten Datenausschnitt in einer dritten der Mehrzahl von Speicherzonen gemäß der Datenabhängigkeitsanforderung geschrieben werden muss.
  13. Verarbeitungssystem einer Speichereinheit in einem verstreuten Speichernetzwerk (DSN), das aufweist: mindestens einen Prozessor; und einen Arbeitsspeicher, der Betriebsanweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Verarbeitungssystem veranlassen zum: Auswählen einer ersten von einer Mehrzahl von Speicherzonen einer Arbeitsspeichereinheit der Speichereinheit auf Grundlage von Zonenzuweisungsparametern; Kennzeichnen der ersten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen; Empfangen, über ein Netzwerk, eines ersten Datenausschnitts zur Speicherung; sequenziellen Schreiben des ersten Datenausschnitts an einem Arbeitsspeicher-Speicherort der ersten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist; Generieren eines dem ersten Datenausschnitt entsprechenden Zeigers, der die erste der Mehrzahl von Speicherzonen und den Arbeitsspeicher-Speicherort angibt; Empfangen, über das Netzwerk, einer ersten Leseanforderung von einer anfordernden Entität, die den ersten Datenausschnitt angibt; Abrufen des ersten Datenausschnitts aus der Arbeitsspeichereinheit auf Grundlage des Zeigers; und Übertragen des ersten Datenausschnitts an die anfordernde Entität.
  14. Verarbeitungssystem nach Anspruch 13, wobei der erste Datenausschnitt sequenziell auf Grundlage eines SCSI-Protokolls geschrieben wird.
  15. Verarbeitungssystem nach Anspruch 13, wobei der erste Datenausschnitt sequenziell auf Grundlage eines Anfügepunkts geschrieben wird, und wobei der Anfügepunkt auf Grundlage einer Länge des ersten Datenausschnitts aktualisiert wird, nachdem der erste Datenausschnitt geschrieben wurde.
  16. Verarbeitungssystem nach Anspruch 13, wobei die Betriebsanweisungen, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Verarbeitungssystem ferner veranlassen zum Bestimmen einer Zonenneuzuweisungsanforderung zu einem Zeitpunkt, nachdem der erste Datenausschnitt geschrieben worden ist; Auswählen einer zweiten der Mehrzahl von Speicherzonen, die als für Schreibvorgänge geschlossen gekennzeichnet ist, auf Grundlage der Zonenneuzuweisungsanforderung; Kennzeichnen der zweiten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen; Empfangen, über ein Netzwerk, eines zweiten Datenausschnitts zur Speicherung; und sequenziellen Schreiben des zweiten Datenausschnitts an einem Arbeitsspeicher-Speicherort der zweiten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens, dass die zweite der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist.
  17. Verarbeitungssystem nach Anspruch 13, wobei die Betriebsanweisungen, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Verarbeitungssystem ferner veranlassen zum Identifizieren einer Untergruppe von Datenausschnitten aus einer Mehrzahl von Datenausschnitten, die in der Arbeitsspeichereinheit gespeichert sind, die im Vergleich mit einem Lesefrequenzschwellenwert positiv abschneiden; Speichern der Untergruppe von Datenausschnitten in einem flüchtigen Arbeitsspeicher der Speichereinheit, wobei ein Lesen der Untergruppe von Datenausschnitten aus dem flüchtigen Arbeitsspeicher schneller erfolgt als ein Lesen der Untergruppe von Datenausschnitten aus der Arbeitsspeichereinheit; Empfangen, über das Netzwerk, einer zweiten Leseanforderung, die einen zweiten Datenausschnitt angibt; Bestimmen, dass der zweite Datenausschnitt in dem flüchtigen Arbeitsspeicher gespeichert ist, und Abrufen des zweiten Datenausschnitts aus dem flüchtigen Arbeitsspeicher zur Übertragung zu der anfordernden Entität über das Netzwerk.
  18. Verarbeitungssystem nach Anspruch 13, wobei die Betriebsanweisungen, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Verarbeitungssystem ferner veranlassen zum Empfangen, über das Netzwerk, einer Mehrzahl von Datenausschnitt-Schreibanforderungen, wobei die Mehrzahl von Datenausschnitt-Schreibanforderungen eine Mehrzahl von Datenausschnitten enthält; Speichern der Mehrzahl von Datenausschnitten in einem Cache der Speichereinheit; und Leeren des Cache in Reaktion auf ein Bestimmen einer Cache-Flush-Anforderung durch ein Generieren eines Datenobjekts, das die Mehrzahl von Datenausschnitten enthält, indem das Datenobjekt sequenziell in die erste von der Mehrzahl von Speicherzonen in Reaktion auf ein Bestimmen geschrieben wird, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist und durch ein Entfernen der Mehrzahl von Datenausschnitten aus dem Cache.
  19. Verarbeitungssystem nach Anspruch 13, wobei die Betriebsanweisungen, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Verarbeitungssystem ferner veranlassen zum Kennzeichnen einer Untergruppe der Mehrzahl von Speicherzonen, die nicht die erste der Mehrzahl von Speicherzonen enthält, als für Schreibvorgänge geschlossen; Empfangen, über das Netzwerk, einer Mehrzahl von Datenausschnitt-Schreibanforderungen, wobei die Mehrzahl von Datenausschnitt-Schreibanforderungen eine Mehrzahl von Datenausschnitten enthält; Speichern der Mehrzahl von Datenausschnitten in einem Cache der Speichereinheit durch Zuweisen von jedem der Mehrzahl von Datenausschnitten zu einer von einer Mehrzahl von Warteschlangen in dem Cache, wobei jede der Mehrzahl von Warteschlangen einer Speicherzone in der Untergruppe der Mehrzahl von Speicherzonen entspricht, die als für Schreibvorgänge geschlossen gekennzeichnet sind; Bestimmen einer Zonenneuzuweisungsanforderung, nachdem die Mehrzahl von Datenausschnitten in dem Cache gespeichert worden ist; Auswählen einer zweiten von der Mehrzahl von Speicherzonen auf Grundlage der Zonenneuzuweisungsanforderung, wobei die zweite der Mehrzahl von Speicherzonen in der Untergruppe enthalten ist; Kennzeichnen der zweiten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen; und Leeren einer ersten der Mehrzahl von Warteschlangen, die der zweiten von der Mehrzahl von Speicherzonen entspricht, aus dem Cache, indem die Mehrzahl von Datenausschnitten in der ersten der Mehrzahl von Warteschlangen sequenziell in die zweite von der Mehrzahl von Speicherzonen in Reaktion auf ein Bestimmen geschrieben wird, dass die zweite der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist und durch ein Löschen der ersten der Mehrzahl von Warteschlangen aus dem Cache.
  20. Nicht flüchtiges, durch einen Computer lesbares Speichermedium, das aufweist: mindestens einen Arbeitsspeicherabschnitt, der Betriebsanweisungen speichert, die, wenn sie von einem Verarbeitungssystem eines verstreuten Speichernetzwerks (DSN) ausgeführt werden, das einen Prozessor und einen Arbeitsspeicher enthält, das Verarbeitungssystem veranlassen zum: Auswählen einer ersten von einer Mehrzahl von Speicherzonen einer Arbeitsspeichereinheit auf Grundlage von Zonenzuweisungsparametern; Kennzeichnen der ersten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen; Empfangen, über ein Netzwerk, eines ersten Datenausschnitts zur Speicherung; sequenziellen Schreiben des ersten Datenausschnitts an einem Arbeitsspeicher-Speicherort der ersten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist; Generieren eines dem ersten Datenausschnitt entsprechenden Zeigers, der die erste der Mehrzahl von Speicherzonen und den Arbeitsspeicher-Speicherort angibt; Empfangen, über das Netzwerk, einer ersten Leseanforderung von einer anfordernden Entität, die den ersten Datenausschnitt angibt; Abrufen des ersten Datenausschnitts aus der Arbeitsspeichereinheit auf Grundlage des Zeigers; und Übertragen des ersten Datenausschnitts an die anfordernde Entität.
  21. Verfahren zur Ausführung durch eine Speichereinheit eines verstreuten Speichernetzwerks (DSN), das einen Prozessor enthält, wobei das Verfahren aufweist: ein Auswählen einer ersten von einer Mehrzahl von Speicherzonen einer Arbeitsspeichereinheit der Speichereinheit auf Grundlage von Zonenzuweisungsparametern; ein Kennzeichnen der ersten der Mehrzahl von Speicherzonen als für Schreibvorgänge offen; ein Empfangen, über ein Netzwerk, eines ersten Datenausschnitts zur Speicherung; ein sequenzielles Schreiben des ersten Datenausschnitts an einem Arbeitsspeicher-Speicherort der ersten der Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist; ein Generieren eines dem ersten Datenausschnitt entsprechenden Zeigers, der die erste der Mehrzahl von Speicherzonen und den Arbeitsspeicher-Speicherort angibt, wobei der Zeiger ein Abrufen des ersten Datenausschnitts in Reaktion auf eine erste Leseanforderung von einer anfordernden Entität ermöglicht, die den ersten Datenausschnitt angibt.
  22. Verfahren nach Anspruch 21, wobei der erste Datenausschnitt sequenziell auf Grundlage eines Anfügepunkts geschrieben wird, und wobei der Anfügepunkt auf Grundlage einer Länge des ersten Datenausschnitts aktualisiert wird, nachdem der erste Datenausschnitt geschrieben wurde.
  23. Verfahren nach Anspruch 21, wobei genau eine Speicherzone auf Grundlage der Zonenzuweisungsparameter ausgewählt und als für Schreibvorgänge offen gekennzeichnet wird, wobei die exakt eine Speicherzone die erste der Mehrzahl von Speicherzonen ist, und wobei das Verfahren ferner aufweist: ein Kennzeichnen aller übrigen Speicherzonen der Mehrzahl von Speicherzonen, die nicht genau die eine Speicherzone sind, als für Schreibvorgänge geschlossen.
  24. Verfahren nach Anspruch 21, des Weiteren aufweisend: ein Auswählen einer Untergruppe von Speicherzonen aus der Mehrzahl von Speicherzonen auf Grundlage der Zonenzuweisungsparameter, wobei eine Größe der Untergruppe von Speicherzonen auf Grundlage der Zonenzuweisungsparameter ausgewählt wird, und wobei die Untergruppe von Speicherzonen die erste der Mehrzahl von Speicherzonen enthält; ein Kennzeichnen der Untergruppe von Speicherzonen als für Schreibvorgänge offen; und ein Kennzeichnen aller Speicherzonen in der Mehrzahl von Speicherzonen, die nicht in der Untergruppe von Speicherzonen enthalten sind, als für Schreibvorgänge geschlossen.
  25. Verfahren zur Ausführung durch eine Speichereinheit eines verstreuten Speichernetzwerks (DSN), das einen Prozessor enthält, wobei das Verfahren aufweist: ein Empfangen, über ein Netzwerk, eines ersten Datenausschnitts zur Speicherung; ein sequenzielles Schreiben des ersten Datenausschnitts an einem Arbeitsspeicher-Speicherort einer ersten von einer Mehrzahl von Speicherzonen auf Grundlage eines Bestimmens, dass die erste der Mehrzahl von Speicherzonen als für Schreibvorgänge offen gekennzeichnet ist; ein Generieren eines dem ersten Datenausschnitt entsprechenden Zeigers, der die erste der Mehrzahl von Speicherzonen und den Arbeitsspeicher-Speicherort angibt, wobei der Zeiger ein Abrufen des ersten Datenausschnitts in Reaktion auf eine erste Leseanforderung von einer anfordernden Entität ermöglicht, die den ersten Datenausschnitt angibt.
DE112018000193.8T 2017-02-28 2018-02-21 Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern Active DE112018000193B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/444,800 2017-02-28
US15/444,800 US10642532B2 (en) 2017-02-28 2017-02-28 Storing data sequentially in zones in a dispersed storage network
PCT/IB2018/051051 WO2018158654A1 (en) 2017-02-28 2018-02-21 Storing data sequentially in zones in a dispersed storage network

Publications (2)

Publication Number Publication Date
DE112018000193T5 true DE112018000193T5 (de) 2019-09-19
DE112018000193B4 DE112018000193B4 (de) 2024-02-01

Family

ID=63246261

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018000193.8T Active DE112018000193B4 (de) 2017-02-28 2018-02-21 Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern

Country Status (6)

Country Link
US (3) US10642532B2 (de)
JP (1) JP6955571B2 (de)
CN (1) CN110291509B (de)
DE (1) DE112018000193B4 (de)
GB (1) GB2574758B (de)
WO (1) WO2018158654A1 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036392B2 (en) * 2013-02-26 2021-06-15 Pure Storage, Inc. Determining when to use convergent encryption
US10394468B2 (en) 2017-02-23 2019-08-27 International Business Machines Corporation Handling data slice revisions in a dispersed storage network
US10642532B2 (en) 2017-02-28 2020-05-05 International Business Machines Corporation Storing data sequentially in zones in a dispersed storage network
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US11086725B2 (en) 2019-03-25 2021-08-10 Robin Systems, Inc. Orchestration of heterogeneous multi-role applications
US11256434B2 (en) 2019-04-17 2022-02-22 Robin Systems, Inc. Data de-duplication
US10996894B2 (en) 2019-07-17 2021-05-04 International Business Machines Corporation Application storage segmentation reallocation
US11226847B2 (en) 2019-08-29 2022-01-18 Robin Systems, Inc. Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11249851B2 (en) * 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
CN110677415A (zh) * 2019-09-29 2020-01-10 信阳农林学院 一种网络信息安全防护系统
US11113158B2 (en) 2019-10-04 2021-09-07 Robin Systems, Inc. Rolling back kubernetes applications
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
US11593258B2 (en) * 2019-11-26 2023-02-28 Micron Technology, Inc. Enhanced filesystem support for zone namespace memory
US11403188B2 (en) 2019-12-04 2022-08-02 Robin Systems, Inc. Operation-level consistency points and rollback
KR102267477B1 (ko) 2020-02-20 2021-06-22 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
US11226776B2 (en) 2020-02-28 2022-01-18 International Business Machines Corporation Zone storage data placement
US11145332B2 (en) * 2020-03-05 2021-10-12 International Business Machines Corporation Proactively refreshing storage zones within a storage device
US11593026B2 (en) 2020-03-06 2023-02-28 International Business Machines Corporation Zone storage optimization using predictive protocol patterns
US11204720B2 (en) * 2020-03-24 2021-12-21 International Business Machines Corporation Data retention in zone storage
US11372543B2 (en) 2020-04-10 2022-06-28 Western Digital Technologies, Inc. Zone-append command scheduling based on zone state
US11108638B1 (en) 2020-06-08 2021-08-31 Robin Systems, Inc. Health monitoring of automatically deployed and managed network pipelines
US11528186B2 (en) 2020-06-16 2022-12-13 Robin Systems, Inc. Automated initialization of bare metal servers
CN112039699B (zh) * 2020-08-25 2022-11-22 RealMe重庆移动通信有限公司 网络切片选取方法、装置、存储介质与电子设备
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US11556361B2 (en) 2020-12-09 2023-01-17 Robin Systems, Inc. Monitoring and managing of complex multi-role applications
JP7253007B2 (ja) * 2021-05-28 2023-04-05 株式会社日立製作所 ストレージシステム
CN114640690B (zh) * 2022-05-17 2022-08-23 浙江省公众信息产业有限公司无线运营分公司 一种文件存储方法、系统、介质和设备
CN115952110B (zh) * 2023-03-09 2023-06-06 浪潮电子信息产业股份有限公司 一种数据缓存方法、装置、设备和计算机可读存储介质

Family Cites Families (101)

* 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
CA2091962A1 (en) 1992-03-31 1993-10-01 Mark L. Witsaman Clock synchronization system
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
US6212512B1 (en) * 1999-01-06 2001-04-03 Hewlett-Packard Company Integration of a database into file management software for protecting, tracking and retrieving data
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
JP2001100927A (ja) 1999-09-29 2001-04-13 Nec Corp ファイル管理システム,ファイル管理方法および記録媒体
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
EP1364510B1 (de) 2000-10-26 2007-12-12 Prismedia Networks, Inc. Verfahren und system zur verwaltung von verteilten inhalten und entsprechenden metadaten
US8176563B2 (en) 2000-11-13 2012-05-08 DigitalDoors, Inc. Data security system and method with editor
US7146644B2 (en) 2000-11-13 2006-12-05 Digital Doors, Inc. Data security system and method responsive to electronic attacks
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
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
US20020165942A1 (en) 2001-01-29 2002-11-07 Ulrich Thomas R. Data path accelerator with variable parity, variable length, and variable extent parity groups
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
US20030056073A1 (en) * 2001-09-18 2003-03-20 Terachip, Inc. Queue management method and system for a shared memory switch
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
CA2493610C (en) 2002-07-29 2014-01-14 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
US7251832B2 (en) 2003-03-13 2007-07-31 Drm Technologies, Llc Secure streaming container
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
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
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
US7574579B2 (en) 2005-09-30 2009-08-11 Cleversafe, Inc. Metadata management system for an information dispersed storage system
US7546427B2 (en) 2005-09-30 2009-06-09 Cleversafe, Inc. System for rebuilding dispersed data
US8171101B2 (en) 2005-09-30 2012-05-01 Cleversafe, Inc. Smart access to a dispersed data storage network
US20070214285A1 (en) 2006-03-08 2007-09-13 Omneon Video Networks Gateway server
EP2002617B1 (de) * 2006-03-31 2012-01-25 QUALCOMM Incorporated Speicherverwaltung zur medienzugangssteuerung mit hoher geschwindigkeit
US20100017558A1 (en) * 2008-04-11 2010-01-21 Richard Matthew Fruin Memory device operable in read-only and re-writable modes of operation
AU2010253964B2 (en) 2009-05-29 2015-09-17 Bitspray Corporation Secure storage and accelerated transmission of information over communication networks
US8261033B1 (en) 2009-06-04 2012-09-04 Bycast Inc. Time optimized secure traceable migration of massive quantities of data in a distributed storage system
JP5363595B2 (ja) 2010-02-08 2013-12-11 株式会社日立製作所 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法
US8909858B2 (en) 2010-06-09 2014-12-09 Cleversafe, Inc. Storing encoded data slices in a dispersed storage network
US8856483B1 (en) * 2010-09-21 2014-10-07 Amazon Technologies, Inc. Virtual data storage service with sparse provisioning
US8892845B2 (en) 2010-12-22 2014-11-18 Cleversafe, Inc. Segmenting data for storage in a dispersed storage network
IT1404096B1 (it) 2011-02-11 2013-11-08 M D A Riondato Sella per bicicletta
US9584326B2 (en) * 2011-11-28 2017-02-28 International Business Machines Corporation Creating a new file for a dispersed storage network
US10318445B2 (en) 2011-11-28 2019-06-11 International Business Machines Corporation Priority level adaptation in a dispersed storage network
US9135030B2 (en) * 2012-06-29 2015-09-15 M-Files Oy Method, an apparatus and a computer program product for extending an application in a client device
SG196732A1 (en) 2012-07-16 2014-02-13 Agency Science Tech & Res Data storage system, method of writing to storage in the data storage system, hard disk and method of forming the hard disk
US9251069B2 (en) * 2012-12-21 2016-02-02 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
US9170755B2 (en) * 2013-05-21 2015-10-27 Sandisk Technologies Inc. Command and data selection in storage controller systems
JP6101170B2 (ja) * 2013-07-26 2017-03-22 株式会社日立製作所 計算機システム、キャッシュ管理方法、及び計算機
US9940244B2 (en) * 2013-11-19 2018-04-10 Netapp, Inc. System and method for improved storage request handling in host-side caches
US9965336B2 (en) 2014-04-30 2018-05-08 International Business Machines Corporation Delegating iterative storage unit access in a dispersed storage network
US20150317176A1 (en) * 2014-05-02 2015-11-05 Cavium, Inc. Systems and methods for enabling value added services for extensible storage devices over a network via nvme controller
US10296881B2 (en) * 2014-06-05 2019-05-21 Verizon Patent And Licensing Inc. Content provider charged gateway
US9939865B2 (en) * 2014-06-13 2018-04-10 Seagate Technology Llc Selective storage resource powering for data transfer management
US20170235512A1 (en) * 2014-12-11 2017-08-17 Hitachi, Ltd. Configuration of storage using profiles and templates
CN105893135B (zh) * 2016-04-25 2019-07-26 深圳市永兴元科技股份有限公司 分布式数据处理方法及数据中心
US10445298B2 (en) * 2016-05-18 2019-10-15 Actifio, Inc. Vault to object store
US10642532B2 (en) 2017-02-28 2020-05-05 International Business Machines Corporation Storing data sequentially in zones in a dispersed storage network

Also Published As

Publication number Publication date
WO2018158654A1 (en) 2018-09-07
US20180246670A1 (en) 2018-08-30
JP6955571B2 (ja) 2021-10-27
CN110291509B (zh) 2023-10-13
GB201913455D0 (en) 2019-10-30
US20230080824A1 (en) 2023-03-16
CN110291509A (zh) 2019-09-27
US11907585B2 (en) 2024-02-20
DE112018000193B4 (de) 2024-02-01
GB2574758A (en) 2019-12-18
US20200225881A1 (en) 2020-07-16
GB2574758B (en) 2020-05-27
JP2020509490A (ja) 2020-03-26
US10642532B2 (en) 2020-05-05
US11550501B2 (en) 2023-01-10

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
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE102012215665B4 (de) Dynamische Änderung der TTL-Werte in einem Datencache
DE112019000309B4 (de) Dynamisches batching von berechtigungen in einem verteilten speichernetzwerk
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE112018003081T5 (de) Optimieren von benutzerzufriedenheit beim schulen eines kognitiven hierarchischen speicherverwaltungssystems
DE202014010898U1 (de) Hierarchische Stückelung von Objekten in einem dezentralen Speichersystem
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112012005275T5 (de) Datenauswahl zur Sicherung von Datenspeichern
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
DE112013005875T5 (de) Umgebungskonfigurationsserver, Computersystem und Umgebungskonfigurationsverfahren
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE112011103290T5 (de) Intelligente Schreibcacheoperation für sequenzielle Datenspuren
DE112008004014T5 (de) Analysieren von Serverkopien von Clientdateien
DE112017002940T5 (de) Standard- und Nicht-Standard-Datenzugriff auf verstreute Speichernetzwerke
DE112018001561B4 (de) Verteiltes speichernetzwerk
DE112013003300T5 (de) Schrittweise Vorbereitung von Videos auf die Lieferung
DE112011103367T5 (de) Replizieren von Daten
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence