DE112021004898T5 - Übermittlung von Ereignisbenachrichtigungen aus einem verteilten Dateisystem - Google Patents

Übermittlung von Ereignisbenachrichtigungen aus einem verteilten Dateisystem Download PDF

Info

Publication number
DE112021004898T5
DE112021004898T5 DE112021004898.8T DE112021004898T DE112021004898T5 DE 112021004898 T5 DE112021004898 T5 DE 112021004898T5 DE 112021004898 T DE112021004898 T DE 112021004898T DE 112021004898 T5 DE112021004898 T5 DE 112021004898T5
Authority
DE
Germany
Prior art keywords
event
log
recovery
computer
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021004898.8T
Other languages
English (en)
Inventor
John Olson
Deepavali BHAGWAT
Frank Schmuck
Shekhar Amlekar
Luis Teran
Jacob Morris Tick
April Brown
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 DE112021004898T5 publication Critical patent/DE112021004898T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Abstract

Bei einem Verfahren zur Fehlertoleranz bei der Übermittlung von Ereignisinformationen innerhalb eines Dateisystem-Clusters ermitteln ein oder mehrere Prozessoren Ereignisinformationen, die in Zusammenhang mit einer Dateisystemaktivität stehen, die durch einen Knoten des Clusters durchgeführt wurde. Der eine oder die mehreren Prozessoren fügen die Ereignisinformationen zu einem Ereignisprotokollpuffer im Speicher hinzu. Der eine oder die mehreren Prozessoren empfangen eine erste Protokollfolgenummer (log sequence number, LSN), die in Zusammenhang mit einem Leeren von Wiederherstellungsinformationen aus einem Wiederherstellungsprotokollpuffer steht. Der eine oder die mehreren Prozessoren ermitteln die Ereignisinformationen, die eine Protokollfolgenummer enthalten, die kleiner oder gleich der ersten Protokollfolgenummer ist, und das Ermitteln der Ereignisinformationen umfasst Protokollfolgenummern, die kleiner oder gleich der ersten Protokollfolgenummer sind, wobei der eine oder die mehreren Prozessoren die entsprechenden Ereignisinformationen aus dem Ereignisprotokollpuffer in einen Plattenspeicher leeren.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein das Gebiet von Operationen verteilter Dateisysteme und insbesondere eine zuverlässige Langlebigkeit von Ereignisbenachrichtigungen über Dateisystemoperationen.
  • HINTERGRUND
  • Unternehmen, die an mehreren geografischen Standorten tätig sind und geclusterte Dateisysteme nutzen, die oftmals in Cloud-Umgebungen gehostet werden, konzentrieren sich in zunehmendem Maße auf Datensicherheit und ein Überwachen des Zugriffs auf Daten und anderer Dateiaktivitätsereignisse. Der Schutz von unternehmenswichtigen Daten gegenüber internen Bedrohungen und externen Sicherheitsverletzungen hat dazu geführt, dass viele Unternehmen eine Schwachstellenanalysefunktionalität von Dateisystemen einbeziehen.
  • Für Finanzinstitute sowie Unternehmen der Gesundheitsfürsorge ist es aus betrieblichen und juristischen Gründen wichtig, Zugriffs- und Bearbeitungsaktivitäten auf bzw. an Hauptbücher(n) (ledger(s)), Konten und Transaktionen, medizinische(n) Unterlagen und Personaldateien ermitteln zu können. Einige Beratungsdienste greifen auf sichere Zugriffs- und Aktivitätsoperationen für Dateisysteme zurück, um dem Kundenbedarf gerecht zu werden und eine wettbewerbsfähige Position im Markt zu behaupten. Bei verteilten Datenverarbeitungssystemen, in denen möglicherweise geclusterte Dateisysteme genutzt werden, können eine Wiederherstellung einer Dateisystemaktivität vor Abstürzen von Knotenneustarts oder Hängezustände unbedingt notwendige Informationen enthalten oder diese können aufgrund von Konformitätsregeln sogar erforderlich sein.
  • Verteilte Dateisysteme enthalten oftmals eine Mehrzahl von Knoten, die betriebsbedingte Aktivitäten an Dateien, Objekten oder Datensätzen des Systems durchführen. Die Knoten können eine über die Mehrzahl von Knoten hinweg verteilte Nachrichtenwarteschlange enthalten, die die Sammlung der Dateiaktivität oder von Ereignissen unterstützt, die durch den jeweiligen Knoten an Dateien durchgeführt werden. Das Veröffentlichen der Dateiaktivität gegenüber der Nachrichtenwarteschlange wird durch eine „Erzeuger“-Komponente durchgeführt, die innerhalb eines Daemons auf dem Knoten läuft, die Richtlinien anwendet, die konfigurieren, welche Dateien und welche Ereignisaktivitäten beobachtet werden sollen.
  • KURZDARSTELLUNG
  • Aspekte der vorliegenden Erfindung stellen ein Verfahren, ein Computerprogrammprodukt und ein System für Fehlertoleranz bei der Übermittlung von Ereignisinformationen von Knoten innerhalb eines Computerknoten-Clusters bereit. Das Verfahren stellt einen oder mehrere Prozessoren bereit, um Ereignisinformationen zu ermitteln, die in Zusammenhang mit einer Dateisystemaktivität stehen, die durch einen Knoten eines Computer-Clusters von Knoten durchgeführt wurde. Der eine oder die mehreren Prozessoren fügen die Ereignisinformationen zu einem Ereignisprotokollpuffer im Speicher hinzu. Der eine oder die mehreren Prozessoren empfangen eine erste Protokollfolgenummer, die mit einer Wiederherstellungsprotokollfolgenummer übereinstimmt, die einem Leeren von Wiederherstellungsinformationen aus einem Wiederherstellungsprotokollpuffer entspricht. Der eine oder die mehreren Prozessoren ermitteln die Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind, die eine Protokollfolgenummer enthalten, die kleiner oder gleich der ersten Protokollfolgenummer ist, und als Reaktion auf ein Feststellen, dass die in dem Ereignisprotokollpuffer enthaltenen Informationen einer Protokollfolgenummer entsprechen, die kleiner oder gleich der ersten Protokollfolgenummer ist, leeren der eine oder die mehreren Prozessoren die Ereignisinformationen, die entsprechende Protokollfolgenummern enthalten, aus dem Ereignisprotokollpuffer in einen Plattenspeicher.
  • Figurenliste
    • 1 ist ein Funktionsblockschema, das eine verteilte Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
    • 2 ist ein Funktionsblockschema, das ein Beispiel des Leerens eines Ereignisprotokollpuffers in ein Ereignisprotokoll im Platten-Permanentspeicher gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht.
    • 3 ist ein Ablaufdiagramm, das die Operationsschritte eines Ereignisprotokollprogramms bildlich darstellt, das in der verteilten Datenverarbeitungsumgebung von 1 gemäß Ausführungsformen der vorliegenden Erfindung arbeitet.
    • 4 stellt ein Blockschema von Komponenten eines Datenverarbeitungssystems bildlich dar, unter anderem eine Datenverarbeitungseinheit, die das Ereignisprotokollprogramm von 3 gemäß einer Ausführungsform der vorliegenden Erfindung funktionsmäßig durchführt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass bestimmte Anwendungen, die auf verteilten Datenverarbeitungsumgebungen laufen, die geclusterte Dateisysteme enthalten, so konfiguriert sind, dass sie Ereignisbenachrichtigungen erzeugen und verteilen, die in Zusammenhang mit Ereignisaktivitäten von Dateien stehen. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass Anwendungen, die ein Dateisystem überwachen, einen einheitlichen und zuverlässigen Status sowie eine einheitliche und zuverlässige Aktivität erfordern, die in Zusammenhang mit dem Dateisystem und Komponentendaten des Dateisystems stehen. Dateisystemüberwachungsanwendungen stützen sich auf Ereignisbenachrichtigungen, die den Anwendungen als Eingabe über Status, Zugriff und Änderungen an dem Dateninhalt des Dateisystems übermittelt wurden, und eine Unterbrechung der Ereignisbenachrichtigungen, die aufgrund von Knotenabstürzen, Neustarts oder anderen Übermittlungsproblemen auftreten kann, kann zum Verlust von Ereignisinformationen führen und erfordert einen erheblichen Eingriff zur Korrektur. Die Ausfallsicherheit von Ereignisbenachrichtigungen des überwachten Dateisystems ist ein erhebliches Zuverlässigkeitsproblem bei derartigen Anwendungen. Speichersysteme können zur Speicherung von Dateien und Dokumenten vorgesehen sein oder können zur Speicherung von Elementen als Objekte konfiguriert sein.
  • Ausführungsformen der vorliegenden Erfindung stellen eine zuverlässige Übermittlung von Ereignisbenachrichtigungen bei Speicherverwaltungsoperationen und -aktivitäten unabhängig von der gespeicherten Inhaltsart bereit. Im Sinne der Kürze wird bei der Erörterung von Ausführungsformen Bezug auf „Dateien“, „Dateisysteme“ und „Dateisystem-Cluster“ genommen, ohne dass dies eine Einschränkung auf „Objekte“ oder andere Inhaltseinheiten darstellen würde.
  • Ausführungsformen der vorliegenden Erfahrung stellen ein Verfahren, ein Computerprogrammprodukt und ein Computersystem zur zuverlässigen Übermittlung von Ereignisbenachrichtigungen über geclusterte Dateisysteme bereit. Bei Ausführungsformen der vorliegenden Erfindung ist ein Ereignisprotokollpuffer in jeweiligen Betriebsknoten des geclusterten Dateisystems enthalten und empfängt Ereignismetadaten von Dateiereignissen, die durch den jeweiligen Knoten durchgeführt wurden. Bei einigen Ausführungsformen der vorliegenden Erfindung hat der Ereignisprotokollpuffer ein entsprechendes Ereignisprotokoll, das Ereignisinformationen über Dateizugriff und -aktivität, die auf dem jeweiligen Knoten verarbeitet wurden, aus dem Ereignisprotokollpuffer empfängt (d.h. leert) und eine dauerhafte Speicherung (d.h. Plattenspeicherung) der Ereignisinformationen bereitstellt.
  • Bei Ausführungsformen der vorliegenden Erfindung ist der Ereignisprotokollpuffer mit dem Wiederherstellungsprotokollpuffer synchronisiert, sodass der Ereignisprotokollpuffer im Speicher gespeicherte Ereignisinformationen auf die Platte leert, bevor ein Leeren der entsprechenden Daten des Wiederherstellungsprotokollpuffers in das Wiederherstellungsprotokoll auf der Platte erfolgt. Bei einigen Ausführungsformen werden als Reaktion auf eine Unterbrechung der Übermittlung von Ereignisbenachrichtigungen zu einer Benachrichtigungssenke die Informationen aus dem auf der Platte gespeicherten Ereignisprotokoll wiedergibt, wodurch eine vollständige Übermittlung der Dateisystemereignisinformationen sichergestellt wird.
  • Bei einigen Ausführungsformen der vorliegenden Erfindung umfasst ein Knoten eines Computer-Clusters, der ein geclustertes Dateisystem betreibt, einen laufenden Daemon, der einen Ereigniserzeuger hat, der Ereignisbenachrichtigungen erzeugt, die einer auf dem Knoten durchgeführten Dateisystemaktivität entsprechen. Zu einem Ereignis eines geclusterten Dateisystems können Aktivitäten wie z.B. Zugreifen (und Zugriffs-ID), Erstellen, Öffnen, Schließen, Entfernen, Bearbeitungsänderungen, Eigentümeränderungen, Sicherheitsstufenänderungen und Verlagerung gehören, ohne auf diese beschränkt zu sein. Der Erzeuger des Knotens sendet Ereignisinformationen als Metadaten an den Ereignisprotokollpuffer und an eine Senke. Bei einer Ausführungsform sendet der Erzeuger des Knotens Ereignismetadaten an eine Nachrichtenwarteschlange. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass es sich bei einer Nachrichtenwarteschlange und einem sequenziellen Protokoll auf einer Platte um Ausführungsformen einer Senke handelt. Bei einer Nachrichtenwarteschlange handelt es sich um eine datenstromverarbeitende Softwareplattform, die eine Behandlung von Echtzeit-Daten-Feeds mit hohem Durchsatz bereitstellt. Die Nachrichtenwarteschlange fungiert als Datendepot (repository), das Ereignisinformationsbenachrichtigungen aus jeweiligen verteilten Knoten des Dateisystem-Clusters sammelt, sodass die Informationen durch interessierte Anwendungen genutzt werden können. Bei einer Ausführungsform schreibt der Erzeuger eines Knotens Ereignismetadaten in eine Datei eines sequenziellen Protokolls auf einem Permanentspeicher. Die Senke stellt einen Zugangspunkt für eine Dateisystemüberwachungsanwendung bereit, um Ereignisbenachrichtigungen über eine Aktivität des Dateisystems und Metadaten über einen Datei- oder Objektstatus, über Änderungen und Zugriffsinformationen zu empfangen.
  • Ereignisinformationen enthalten zusätzliche Metadaten, die in Zusammenhang mit dem jeweiligen Dateisystemereignis stehen, als Daten, die an den Wiederherstellungsprotokollpuffer gesendet in den Wiederherstellungsprotokolls auf der Platte gespeichert werden. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass im Falle eines Knotenausfalls die zum Erzeugen einer Ereignisbenachrichtigung notwendigen Ereignisinformationen nicht in dem Wiederherstellungsprotokoll enthalten sind, das zum Durchführen einer Systemkomponentenwiederherstellung von Operationen ausgelegt ist. Das Ereignisprotokoll enthält Metadaten wie z.B. Nummer des I-Knotens, Teilename, Speicherpool, Benutzer-ID, Eigentümer-ID, Dateiattribute, Dateiereignisaktivität und Zeitstempel des Ereignisses, ohne auf diese beschränkt zu sein.
  • Ausführungsformen der vorliegenden Erfindung stellen sicher, dass die Ereignisbenachrichtigung auch bei Auftreten eines Absturzes, eines Neustarts oder einer anderen Systemunterbrechung zuverlässig aufrechterhalten und übermittelt werden, indem ein Ereignisprotokollpuffer bereitgestellt wird, der Ereignisinformationen in einen permanenten Plattenspeicher leert, bevor die Wiederherstellungsinformationen geleert werden, die in dem Wiederherstellungsprotokollpuffer enthalten sind. Das Ereignisprotokoll stellt Ereignisinformationen unter Fehlerbedingungen bereit, bei denen normale Ereignisaktivitätsinformationen nicht an Senken übermittelt werden.
  • Die vorliegende Erfindung wird nun unter Bezugnahme auf die Figuren ausführlich beschrieben. 1 ist ein Funktionsblockschema, das eine allgemein mit 100 bezeichnete verteilte Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. 1 stellt lediglich eine Veranschaulichung einer Realisierungsform bereit und umfasst keinerlei stillschweigende Einschränkungen in Bezug auf die Umgebungen, in denen unterschiedliche Ausführungsformen realisiert werden können. Viele Abänderungen an der bildlich dargestellten Umgebung können durch Fachleute vorgenommen werden, ohne dass dies eine Abweichung von dem Schutzumfang der Erfindung darstellen würde, der durch die Ansprüche dargelegt ist.
  • Die verteilte Datenverarbeitungsumgebung 100 umfasst mehrere Server-Knoten eines verteilten Datenverarbeitungssystems, für die ein erster Server-Knoten 110, ein zweiter Server-Knoten 120 und zwischengeschaltete Server-Knoten (nicht gezeigt) bis einschließlich eines N-ten Server-Knotens 130 stehen. Die verteilte Datenverarbeitungsumgebung 100 umfasst außerdem eine Senke 140, Speichersystemanwendungen 160, Speichersystem-Überwachungsanwendungen 170, die untereinander über ein Netzwerk 150 verbunden sind. Bei dem Netzwerk 150 kann es sich zum Beispiel um ein lokales Netzwerk (local area network, LAN), ein Weitverkehrsnetzwerk (wide area network, WAN) wie z.B. das Internet, ein virtuelles lokales Netzwerk (virtual local area network, VLAN) oder um eine beliebige Kombination handeln, die kabelgebundene, kabellose oder lichtwellenleitergebundene Verbindungen umfassen kann. Im Allgemeinen kann es sich bei dem Netzwerk 150 um eine beliebige Kombination von Verbindungen und Protokollen handeln, die Datenaustausch und Datenübertragung zwischen dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und den zwischengeschalteten Server-Knoten bis und einschließlich des N-ten Server-Knotens 130, der Senke 140, den Speichersystemanwendungen 160 und den Speichersystem-Überwachungsanwendungen 170 unterstützen.
  • Bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und den zwischengeschalteten Knoten (nicht gezeigt) bis zu dem N-ten Server-Knoten 130 handelt es sich um Knoten eines verteilten Dateisystem-Clusters. Der erste Server-Knoten 110 enthält eine Kopie eines Ereignisprotokollprogramms 300, einen Daemon 115, einen Erzeuger 117, ein Ereignisprotokoll 113 und ein Wiederherstellungsprotokoll 119. Der zweite Server-Knoten 120 enthält eine Kopie eines Ereignisprotokollprogramms 300, einen Daemon 125, einen Erzeuger 127, ein Ereignisprotokoll 123 und ein Wiederherstellungsprotokoll 129. Der N-te Server-Knoten 130 enthält eine Kopie eines Ereignisprotokollprogramms 300, einen Daemon 135, einen Erzeuger 137, ein Ereignisprotokoll 133 und ein Wiederherstellungsprotokoll 139. Bei einigen Ausführungsformen der vorliegenden Erfindung kann das Ereignisprotokollprogramm 300 entfernt von dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 gehostet sein und den jeweiligen Server-Knoten programmierbare Anweisungen bereitstellen.
  • Bei einigen Ausführungsformen handelt es sich bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 um Datenverarbeitungseinheiten, die so konfiguriert sind, dass sie in einer verteilten Umgebung arbeiten und Dateisystemoperationen durchführen. Bei einigen Ausführungsformen kann es sich bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 um Blade-Server, Web-Server, Laptop-Computer, Desktop-Computer, eigenständige mobile Datenverarbeitungseinheiten, Smartphones, Tablet-Computer oder andere elektronische Einheiten oder Datenverarbeitungssysteme handeln, die in der Lage sind, Daten zu empfangen, zu senden und zu verarbeiten. Bei anderen Ausführungsformen kann es sich bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 um Datenverarbeitungseinheiten handeln, die mit Anwendungen und Diensten interagieren, die in einer Cloud-Computing-Umgebung gehostet werden und arbeiten. Bei einer weiteren Ausführungsform kann es sich bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 um Netbook-Computer, Personal Digital Assistants (PDAs) oder andere programmierbare elektronische Einheiten handeln, die in der Lage sind, Eingaben in das Ereignisprotokollprogramm 300 zu erzeugen und zu diesem zu übertragen und Programmieranweisungen aus diesem zu empfangen. Alternativ können der erste Server-Knoten 110, der zweite Server-Knoten 120 und der N-te Server-Knoten 130 zu Datenübertragungszwecken mit dem Ereignisprotokollprogramm 300 verbunden sein, das entfernt angeordnet arbeitet. Der erste Server-Knoten 110, der zweite Server-Knoten 120 und der N-te Server-Knoten 130 können interne und externe Hardwarekomponenten enthalten, die in 4 ausführlicher bildlich dargestellt sind.
  • Bei dem Daemon 115, dem Daemon 125 und dem Daemon 135 handelt es sich um Computerprogramme, die als Hintergrundprozess laufen. Der Daemon 115, der Daemon 125 und der Daemon 135 ermöglichen den Erzeugern 117, 127 bzw. 137, eine Dateisystemereignisaktivität zu ermitteln, die auf jeweiligen Knoten auftritt, und Ereignisinformationen zu erzeugen, die in Zusammenhang mit einer bestimmten Datei- oder Objektaktivität stehen.
  • Bei dem Erzeuger 117, dem Erzeuger 127 und dem Erzeuger 137 handelt es sich um Einheiten, die innerhalb der Daemons 115, 125 bzw. 135 arbeiten. Die Erzeuger 117, 127 und 137 ermitteln eine Dateisystemereignisaktivität auf jeweiligen Knoten und sammeln Metadaten für das Ereignis und veröffentlichen das Ereignis und die Metadaten gegenüber der Nachrichtenwarteschlange. Bei Ausführungsformen der vorliegenden Erfindung senden die Erzeuger 117, 127 und 137 Ereignismetadaten an einen Ereignisprotokollpuffer des jeweiligen Knotens, was ausführlicher bei der Erörterung von 2 beschrieben wird.
  • Bei dem Wiederherstellungsprotokoll 119, dem Wiederherstellungsprotokoll 129 und dem Wiederherstellungsprotokoll 139 handelt es sich um eine Sammlung von Protokolldateien innerhalb des ersten Server-Knotens 110, des zweiten Servers 120 bzw. des N-ten Servers 130, die Aktivitäts- und Zustandsinformationen enthalten, die eine Wiederherstellung des jeweiligen Knotens aus einem Absturz, einem Neustart oder einer anderen Verarbeitungsunterbrechung ermöglichen. Die Wiederherstellungsprotokolle 119, 129 und 139 befinden sich auf einem Permanentspeicher im ersten Server-Knoten 110, zweiten Server-Knoten 120 bzw. N-ten Server-Knoten 130. Die Wiederherstellungsprotokolle 119, 129 und 139 empfangen die Wiederherstellungsinformationen, wenn entsprechende Wiederherstellungsprotokollpuffer für den jeweiligen Server-Knoten eine Kapazitätsgrenze erreichen oder sich dieser nähern, und leeren die Wiederherstellungsinformationen aus dem jeweiligen Wiederherstellungsprotokollpuffer im Speicher in das entsprechende Wiederherstellungsprotokoll auf der Platte.
  • Bei dem Ereignisprotokoll 113, dem Ereignisprotokoll 123 und dem Ereignisprotokoll 133 handelt es sich um Dateien der Ereignisaktivität und zugehörige Metadaten der Verarbeitung auf dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130. Die Ereignisprotokolle 113, 123 und 133 befinden sich im Permanentspeicher und stellen einheitliche Ereignisinformationen im Falle einer Unterbrechung oder Fehlfunktion der Übermittlung von Ereignisinformationen der Nachrichtenwarteschlange zu einer bezeichneten Senke bereit. Die Ereignisprotokolle 113, 123 und 133 empfangen die Wiederherstellungsinformationen, wenn entsprechende Ereignisprotokollpuffer für den jeweiligen Server-Knoten eine Kapazitätsgrenze erreichen oder sich dieser nähern, und leeren die Wiederherstellungsinformationen aus dem jeweiligen Ereignisprotokollpuffer im Speicher in das entsprechende Ereignisprotokoll auf der Platte.
  • Das Ereignisprogramm 300 ist bildlich als auf jedem des ersten Server-Knotens 110, des zweiten Server-Knotens 120 und des N-ten Server-Knotens 130 arbeitend dargestellt. Bei einigen Ausführungsformen der vorliegenden Erfindung handelt es sich bei dem Ereignisprotokollprogramm 300 um eine Komponente einer verteilten Anwendung, die Daten eines geclusterten Dateisystems verwaltet und skalierbar ist, um mit einer Mehrzahl von Knoten zu arbeiten, die in dem Dateisystem-Cluster arbeiten. DateisystemÜberwachungsanwendungen verwenden die Dateisystemereignisbenachrichtigungen, um den Zustand und den Status der Dateisystem-Komponentendateien oder - Objekte, -Verzeichnisse und -Betriebsaktivitäten zu ermitteln, die Dateien/Objekte erstellen und darauf zugreifen. Bei Anwendungen, die Dateisysteme überwachen, können Ausfallssicherheitsprobleme auftreten, bei denen Unterbrechungen der Übermittlung von Ereignisbenachrichtigungen zu einer Senke auftreten, aus der die Anwendungen auf die Ereignisbenachrichtigungen zugreifen. Anwendungen, die Dateisysteme überwachen, sind möglicherweise nicht in der Lage, Übermittlungsausfälle zu tolerieren, und Ausführungsformen der vorliegenden Erfindung stellen eine zuverlässige Quelle von Ereignisbenachrichtigungen zum Wiederholen und Übermitteln an Ereignisbenachrichtigungssenken im Falle eines Fehlerzustands eines Knotens des Dateisystem-Clusters bereit.
  • Bei einigen Ausführungsformen ermittelt das Ereignisprotokollprogramm 300 eine Ereignisaktivität und weist den jeweiligen Erzeuger des Knotens an, Ereignisinformationen, die Ereignismetadaten enthalten, an den Ereignisprotokollpuffer des Knotens zu senden. Bei einigen Ausführungsformen hängt das Ereignisprotokollprogramm 300 die Ereignismetadaten eines bestimmten Ereignisses an eine JSON-Datei an, die in dem Ereignisprotokollpuffer gespeichert ist. Jede Instanz der Ereignisinformationen empfängt eine Protokollfolgenummer (log sequence number, LSN), die derselben Protokollfolgenummer der Wiederherstellungsinformationen entspricht, die in Zusammenhang mit dem Ereignis stehen, das in dem Wiederherstellungsprotokollpuffer des Knotens gespeichert ist. Bei einem bestimmten Ereignis der Dateisystemaktivität wie z.B. bei einer „Schreiben“-Aktivität auf eine Datei wird eine LSN den Wiederherstellungsinformationen zugewiesen, die in Zusammenhang mit dem Schreibereignis stehen, und an den Wiederherstellungsprotokollpuffer gesendet, und dieselbe LSN wird den Ereignisinformationen des Schreibereignisses zugewiesen, die an den Ereignisprotokollpuffer gesendet werden.
  • Bei einigen Ausführungsformen der vorliegenden Erfindung empfängt das Ereignisprotokollprogramm 300 eine LSN, die einem Satz von Wiederherstellungsinformationen in dem Wiederherstellungsprotokollpuffer entspricht. Der Satz von Wiederherstellungsinformationen enthält alle Wiederherstellungsinformationen mit LSNs, die gleich oder kleiner als die durch das Ereignisprotokollprogramm 300 empfangene LSN sind. Zum Beispiel ist der Wiederherstellungsprotokollpuffer nahe der Kapazitätsgrenze von Wiederherstellungsinformationen und erfordert ein Leeren der Wiederherstellungsinformationen aus dem Puffer in das Wiederherstellungsprotokoll im Platten-Permanentspeicher. „Leeren“ bezeichnet den Prozess des Schreibens des Inhalts im flüchtigen Speicher (d.h. Puffer) in einen Permanentspeicher auf einer Platte. Der Wiederherstellungsprotokollpuffer kennzeichnet die LSN wie z.B. LSN = 1000, die einem zuvor auf dem Knoten durchgeführten Ereignis entspricht. Der Wiederherstellungsprotokollpuffer enthält außerdem mehrere LSNs, die auf dem Knoten vor dem Ereignis durchgeführt wurden, das der LSN = 1000 entspricht. Der Wiederherstellungsprotokollpuffer kennzeichnet die höchste Folgenummer, die zum Leeren auf Plattenspeicher geplant ist, zusammen mit allen anderen Wiederherstellungsinformationen, die LSNs enthalten, die kleiner als die gekennzeichnete LSN = 1000 sind (d.h. LSN = 999, LSN = 998...usw.), wodurch der Wiederherstellungsprotokollpuffer geräumt wird, um eine Aufnahme nachfolgender Wiederherstellungsinformationen aus der auf dem Knoten durchgeführten Dateisystemaktivität zu ermöglichen.
  • Vor dem Durchführen des Leerens der Wiederherstellungsinformationen auf den Plattenspeicher wird die durch den Wiederherstellungsprotokollpuffer gekennzeichnete LSN durch das Ereignisprotokollprogramm 300 empfangen, und das Ereignisprotokollprogramm 300 ermittelt die Ereignisinformationen in dem Ereignisprotokollpuffer, die LSNs enthalten, die gleich oder kleiner als die durch den Wiederherstellungsprotokollpuffer gekennzeichnete LSN sind. Zum Beispiel empfängt das Ereignisprotokollprogramm 300 die LSN = 1000, die den Wiederherstellungsinformationen in dem Wiederherstellungsprotokollpuffer entspricht, die in den permanenten Plattenspeicher in dem Wiederherstellungsprotokoll geleert werden sollen. Das Ereignisprotokollprogramm 300 ermittelt die Ereignisinformationen, die in Zusammenhang mit Ereignissen stehen, deren LSNs gleich oder kleiner als LSN = 1000 sind. Das Ereignisprotokollprogramm 300 leert die Ereignisinformationen von Ereignissen mit LSN = 1000 oder kleiner, die sich in dem Ereignisprotokollpuffer befinden, in das Ereignisprotokoll im Permanentspeicher auf der Platte. Das Ereignisprotokollprogramm 300 teilt die Beendigung des Leerens der Ereignisinformationen auf die Platte in dem Wiederherstellungsprotokollpuffer mit, wonach der Wiederherstellungsprotokollpuffer eine Leerung von Wiederherstellungsinformationen aus dem Puffer in das Wiederherstellungsprotokoll im Permanentspeicher auf der Platte durchführt.
  • Bei einigen Ausführungsformen stellt das Ereignisprotokollprogramm 300 fest, dass sich der Ereignisprotokollpuffer an oder nahe einer Kapazität befindet, und leitet ohne Einleitung einer durch den Wiederherstellungsprotokollpuffer gekennzeichneten LSN eine Leerung von Ereignisinformationen in das Ereignisprotokoll auf der Platte ein. Bei einigen Ausführungsformen stellt das Ereignisprotokollprogramm 300 fest, dass der Ereignisprotokollpuffer keine Ereignisinformationen mit einer LSN enthält, die gleich oder kleiner als die durch den Wiederherstellungsprotokollpuffer gekennzeichnete LSN ist, wobei in diesem Fall das Ereignisprotokollprogramm 300 keine Leerung von Ereignisinformationen durchführt und stattdessen die Beendigung dem Wiederherstellungsprotokollpuffer mitteilt, um das Leeren des Wiederherstellungsprotokollpuffers einzuleiten.
  • Bei der Senke 140 handelt es sich um eine Softwareanwendung, die Übermittlungen von Ereignisbenachrichtigungen von den jeweiligen Erzeugern 117, 127, 137 des ersten Server-Knotens 110, des zweiten Server-Knotens 120 und des N-ten Server-Knotens 130 über die Nachrichtenwarteschlange empfängt. Die Senke 140 stellt eine Schnittstelle für Speichersystem-Überwachungsanwendungen zum Zugreifen auf die Ereignisbenachrichtigungen, Ermitteln des Zustands und des Status von Komponenten des Dateisystem-Clusters und zum Durchführen von Überwachungsaktivitäten des Dateisystem-Clusters bereit.
  • Zu den Speichersystemanwendungen 160 gehören eine oder mehrere Anwendungen, die Dateisystem-Speicherverwaltungs- und -Koordinationsdienste für den Dateisystem-Cluster bereitstellen, der den ersten Server-Knoten 110, den zweiten Server-Knoten 120, zwischengeschaltete Server-Knoten (nicht gezeigt) und den N-ten Server-Knoten 130 umfasst. Bei einigen Ausführungsformen fungiert das Ereignisprotokollprogramm 300 als Modulkomponente der Speichersystemanwendungen 160.
  • Zu den Speichersystem-Überwachungsanwendungen 170 gehört eine Sammlung von Client-seitigen Anwendungen, die auf Ereignisbenachrichtigungen aus der Senke 140 zugreifen und die jeweiligen Zustands-, Status-, Datei- und Verzeichnisaktivitäten des Dateisystems überwachen. Die Speichersystem-Überwachungsanwendungen 170 nutzen eine ununterbrochene Übermittlung von Ereignisbenachrichtigungen, um eine einheitliche Überwachung jeweiliger Dateisystemkomponenten und -inhalte aufrechtzuerhalten, und verwenden Ereignismetadaten, um den Zustand, den Status und die Aktivität zu ermitteln, die in Zusammenhang mit Katalogisierungsoperationen stehen, die auf das geclusterte Dateisystem angewendet werden. Die Speichersystem-Überwachungsanwendungen 170 verwenden übermittelte Ereignisbenachrichtigungen, die Aktivitäten wie z.B. Systemstatus, Anzahl von Dateien, Anzahl von Verzeichnissen, Erkennung von zu archivierenden Dateien umfassen, ermitteln Benutzer, die auf Dateien zugreifen, ermitteln Inhaltsattribute (vertrauliche Dateien), ermitteln umfangreichen Zugriff und stellen Dienste über die verteilte Speicherumgebung hinweg bereit.
  • 2 ist ein Funktionsblockschema, das ein Beispiel des Leerens eines Ereignisprotokollpuffers in ein Ereignisprotokoll im Platten-Permanentspeicher gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. 2 enthält einen Daemon 215, einen Wiederherstellungsprotokollpuffer 220, ein Wiederherstellungsprotokoll 225, einen Ereignisprotokollpuffer 230, ein Ereignisprotokoll 235, eine Leerungs-LSN 240 und eine Beendigungsreaktion 250. Der Daemon 215 enthält einen Erzeuger 217 und eine Richtlinie 219. Der Daemon 215 läuft als Hintergrundanwendung in einem Knoten des Dateisystem-Clusters, wie vorstehend in Bezug auf die Dämons 115, 125 und 135 beschrieben. Der Erzeuger 217 ermittelt eine Dateisystemereignisaktivität auf dem Knoten, sammelt Metadaten für das Ereignis und veröffentlicht das Ereignis und die Metadaten gegenüber der Nachrichtenwarteschlange. Der Erzeuger 217 sendet die Ereignisinformationen, unter anderen Metadaten, die in Zusammenhang mit dem durch den Knoten durchgeführten Ereignis stehen, an den Ereignisprotokollpuffer 230. Bei einigen Ausführungsformen sendet der Erzeuger 217 Wiederherstellungsinformationen an den Wiederherstellungsprotokollpuffer 220.
  • Die Richtlinie 219 umfasst Regeln und Bedingungen, die in Zusammenhang mit dem Zugriff und dem Aufzeichnen von Ereignisinformationen stehen, die in Zusammenhang mit dem Dateisystem stehen. Bei einigen Ausführungsformen legt die Richtlinie 219 die Ereignisse von den Dateien und Aktivitäten fest, die in den durch den Erzeuger 217 veröffentlichten Benachrichtigungen enthalten sind.
  • Der Wiederherstellungsprotokollpuffer 220 sammelt Wiederherstellungsinformationen, die in Zusammenhang mit Ereignisaktivitäten des Dateisystems stehen, die auf dem jeweiligen Knoten durchgeführt werden. Der Wiederherstellungsprotokollpuffer 220 befindet sich im flüchtigen Speicher und schreibt die Wiederherstellungsinformationen für ein Dateisystem, die im Wiederherstellungsprotokollpuffer 220 gehalten werden, in das Wiederherstellungsprotokoll 225, das sich im Permanentspeicher auf der Platte befindet. Der Wiederherstellungsprotokollpuffer 220 empfängt Informationen zum Wiederherstellen aus einer Verarbeitungsunterbrechung wie z.B. einem Absturz, einem Knoten- oder Komponentenausfall oder einem Neustart.
  • Der Wiederherstellungsprotokollpuffer 220 ermittelt, wann die Kapazität des Puffers erschöpft oder nahezu erschöpft ist, und sendet die Leerungs-LSN 240 an den Ereignisprotokollpuffer 230. Das Ereignisprotokollprogramm 300 verwendet die Leerungs-LSN 240, um die im Ereignisprotokollpuffer 230 enthaltenen Ereignisinformationen zu ermitteln, die den Wiederherstellungsinformationen im Wiederherstellungsprotokollpuffer 220 entsprechen, um das Ereignisprotokoll 235 zu leeren, das sich im Permanentspeicher auf der Platte befindet. Die Leerungs-LSN 240 ermöglicht dem Ereignisprotokollprogramm 300, den Ereignisprotokollpuffer 230 in Synchronisierung mit dem Wiederherstellungsprotokollpuffer 220 zu halten. Der Wiederherstellungsprotokollpuffer 220 empfängt die Beendigungsreaktion 250 von dem Ereignisprotokollprogramm 300, nachdem die Ereignisinformationen, die der Leerungs-LSN 240 oder einer kleineren Leerungs-LSN 240 entsprechen, aus dem Ereignisprotokollpuffer 230 in das Ereignisprotokoll 235 geleert wurden, das sich im Permanentspeicher auf der Platte befindet.
  • Der Ereignisprotokollpuffer 230 empfängt Ereignisinformationen von dem Erzeuger 217, die in Zusammenhang einer auf dem Knoten durchgeführten jeweiligen Ereignisaktivität stehen. Der Ereignisprotokollpuffer 230 hängt die Ereignisinformationen der jeweiligen Ereignisaktivitäten an eine JSON-Datei an. Die Leerungs-LSN 240 wird durch das Ereignisprotokollprogramm 300 empfangen und spiegelt den Satz von Wiederherstellungsinformationen wider, die aus dem Wiederherstellungsprotokollpuffer 220 geleert werden sollen, während der Wiederherstellungsprotokollpuffer voll wird. Der Satz von Wiederherstellungsinformationen enthält die Wiederherstellungsinformationen mit entsprechenden LSNs, die gleich oder kleiner als die Leerungs-LSN 240 sind. Das Ereignisprotokollprogramm 300 verwendet die empfangene Leerungs-LSN 240, um zu ermitteln, ob der Ereignisprotokollpuffer 230 Ereignisinformationen enthält, die dem Satz von Wiederherstellungsinformationen entsprechen, die durch die Leerungs-LSN 240 gekennzeichnet sind. Wenn der Ereignisprotokollpuffer 230 Ereignisinformationen enthält, die LSNs entsprechen, die kleiner oder gleich der Leerungs-LSN 240 sind, leitet das Ereignisprotokollprogramm 300 das Leeren der gekennzeichneten Ereignisinformationen aus dem Ereignisprotokollpuffer 230 in das Ereignisprotokoll 235 auf dem Permanentspeicher auf der Platte ein. Das Leeren von Ereignisinformationen des Ereignisprotokollpuffers vor dem Leeren des Wiederherstellungsprotokollpuffers 220 stellt sicher, dass die Ereignisprotokollinformationen auf dem Permanentspeicher Ereignisinformationen enthalten, die mit dem Dateisystemzustand übereinstimmen, der zwecks Übermittlung von Ereignisbenachrichtigungen wiederholt werden soll, wenn eine Unterbrechung oder ein Ausfall der Übermittlung von Ereignisbenachrichtigungen des Dateisystems über die Nachrichtenwarteschlange und die Senke auftritt.
  • Die Leerungs-LSN 240 enthält eine Protokollfolgenummer, die Wiederherstellungsinformationen für eine Dateisystemaktivität entspricht, die zum Leeren aus dem Wiederherstellungsprotokollpuffer 220 in das Wiederherstellungsprotokoll 225 bezeichnet sind. Das Leeren des Wiederherstellungsprotokollpuffers 220 umfasst außerdem Wiederherstellungsinformationen, die kleineren LSNs als die Leerungs-LSN 240 entsprechen, die sich aktuell im Wiederherstellungsprotokollpuffer 220 befinden. Das Ereignisprotokollprogramm 300 kann die Leerungs-LSN 240 nutzen, um die Ereignisinformationen im Ereignisprotokollpuffer 230 zu ermitteln, die in das Ereignisprotokoll 235 geleert werden sollen. Das Leeren von Ereignisinformationen umfasst Ereignisinformationen mit entsprechenden LSNs, die kleiner als die Leerungs-LSN 240 sind, die im Ereignisprotokollpuffer 230 enthalten sind.
  • Bei der Beendigungsreaktion 250 handelt es sich um eine Datenübertragung aus dem Ereignisprotokollprogramm 300, die bestätigt, dass das Leeren des Ereignisprotokollpuffers 230 beendet ist, und anzeigt, dass das Leeren des Wiederherstellungsprotokollpuffers 220 eingeleitet werden kann. Bei Ausführungsformen der vorliegenden Erfindung leert der Ereignisprotokollpuffer 230 Ereignisinformationen in das Ereignisprotokoll 235 auf der Grundlage von Ereignisinformationen, die LSNs enthalten, die gleich oder kleiner als die Leerungs-LSN 240 sind, bevor Wiederherstellungsinformationen des Wiederherstellungsprotokollpuffers 220 in das Wiederherstellungsprotokoll 225 geleert werden. Bei Ausführungsformen kann der Ereignisprotokollpuffer 230 Ereignisinformationen in das Ereignisprotokoll 235 leeren, da sich der Ereignisprotokollpuffer 230 einer Kapazität nähert oder diese erreicht hat. Bei Ausführungsformen, bei denen das Ereignisprotokollprogramm 300 feststellt, dass der Ereignisprotokollpuffer 230 keine Ereignisinformationen mit entsprechenden LSNs enthält, die gleich oder kleiner als die Leerungs-LSN 240 sind, teilt das Ereignisprotokollprogramm 300 dem Wiederherstellungsprotokollpuffer 220 eine Beendigungsreaktion mit, um das Leeren von Wiederherstellungsinformationen in das Wiederherstellungsprotokoll 225 einzuleiten.
  • 3 ist ein Ablaufdiagramm, das die Operationsschritte eines Ereignisprotokollprogramms bildlich darstellt, das in der verteilten Datenverarbeitungsumgebung von 1 gemäß Ausführungsformen der vorliegenden Erfindung arbeitet. Das Ereignisprotokollprogramm 300 empfängt eine Protokollfolgenummer, die den Satz von Wiederherstellungsinformationen widerspiegelt, die zum Leeren aus dem Wiederherstellungsprotokollpuffer des Knotens in das Wiederherstellungsprotokoll im Permanentspeicher bezeichnet sind. Das bezeichnete Leeren umfasst die Wiederherstellungsinformationen mit LSNs, die gleich oder kleiner als die empfangene Protokollfolgenummer sind. Das Ereignisprotokollprogramm 300 ermittelt, ob der Ereignisprotokollpuffer Ereignisinformationen mit entsprechenden LSNs enthält, die gleich oder kleiner als die aus dem Wiederherstellungsprotokollpuffer empfangene LSN sind.
  • Das Ereignisprotokollprogramm 300 ermittelt eine Dateisystemereignisaktivität eines Knotens eines Dateisystem-Clusters (Schritt 310). Das Ereignisprotokollprogramm 300 ermittelt die Einleitung einer durch den Knoten durchgeführten Dateizugriffsaktivität. Das Ereignisprotokollprogramm 300 ermittelt die Aktivitätsart und die Metadaten und die mit der Ereignisaktivität in Zusammenhang stehenden Metadaten, die als Ereignisinformationen enthalten sind. Zum Beispiel empfängt der erste Server-Knoten 110 eine Anweisung zum Durchführen einer Schreiboperation in eine Datei des Dateisystems. Das Ereignisprotokollprogramm 300 des ersten Server-Knotens 110 erkennt die Ereignisaktivität und bereitet das Empfangen von Metadaten vor, die der auf dem Knoten durchgeführten Ereignisaktivität entsprechen.
  • Das Ereignisprotokollprogramm 300 fügt Ereignisinformationen, die in Zusammenhang mit der Ereignisaktivität des Knotens stehen, zu einem Ereignisprotokollpuffer hinzu (Schritt 320). Das Ereignisprotokollprogramm 300 empfängt die Ereignisinformationen der Ereignisaktivität, die Metadaten enthalten, die in Zusammenhang mit der Aktivität und der Datei stehen, an der die Ereignisaktivität durchgeführt wird. Das Ereignisprotokollprogramm 300 empfängt die Ereignisinformationen, die eindeutig in Zusammenhang mit der bestimmten Ereignisaktivität stehen, um eine JSON-Nachricht zu bilden, und hängt die Nachricht an einen Ereignisprotokollpuffer an, der sich im flüchtigen Speicher befindet. Der Ereignisprotokollpuffer sammelt Ereignisinformationen für mehrere Ereignisaktivitäten auf dem Knoten und ist mit der Hinzufügung von Wiederherstellungsinformationen koordiniert, die in Zusammenhang mit der bestimmten Ereignisaktivität stehen, die einem Wiederherstellungsprotokollpuffer bereitgestellt werden, der sich ebenfalls im flüchtigen Speicher befindet.
  • Zum Beispiel hängt das Ereignisprotokollprogramm 300 nach dem Empfangen der Ereignisinformationen, die spezielle Metadaten enthalten, die in Zusammenhang mit einer Schreiboperation in eine Datei des Dateisystems in Zusammenhang stehen, die auf dem ersten Server-Knoten 110 durchgeführt wurde, die Ereignisinformationen an eine JSON-Datei des Ereignisprotokollpuffers an. Die Ereignisinformationen enthalten Metadaten, die speziell in Zusammenhang mit der Schreiboperation stehen, die an der Datei des Dateisystems durchgeführt wurde, an das die Schreiboperation gerichtet ist. Die Ereignisinformationen erhalten eine Protokollfolgenummer (LSN), die die Metadaten eindeutig kennzeichnet, die in Zusammenhang mit der bestimmten Schreibereignisaktivität stehen. Die Schreibereignisaktivität erzeugt außerdem einen entsprechenden Satz von Wiederherstellungsinformationen, die eindeutig in Zusammenhang mit der bestimmten Schreibaktivität stehen und die an den Wiederherstellungsprotokollpuffer gesendet werden, der sich im Speicher befindet. Die Ereignisinformationen enthalten erheblich mehr Metadateneinzelheiten, die in Zusammenhang mit der Schreibereignisaktivität in die bestimmte Datei steht, während die Wiederherstellungsinformationen nur Informationen enthalten, die eine Wiederherstellung nach einem Fehler auf dem Knoten unterstützen. Der Wiederherstellungsprotokollpuffer empfängt dieselbe Protokollfolgenummer (LSN) für die empfangenen Wiederherstellungsinformationen, die der Ereignisprotokollpuffer für die Ereignisinformationen für dieselbe Schreibereignisaktivität empfangen hat.
  • Das Ereignisprotokollprogramm 300 empfängt eine erste Protokollfolgenummer (LSN), die in Zusammenhang mit dem Leeren eines Wiederherstellungsprotokollpuffers (Schritt 330) steht. Der Begriff „erste“ Protokollfolgenummer wird verwendet, um die bestimmte LSN von anderen LSNs zu unterscheiden, und entspricht nicht zwangsläufig einer anfänglichen LSN wie z.B. 0001. Der Wiederherstellungsprotokollpuffer empfängt weiterhin Wiederherstellungsinformationen, die in Zusammenhang mit einer Ereignisaktivität auf dem Knoten stehen. Das Ereignisprotokollprogramm 300 empfängt eine LSN, während der Wiederherstellungsprotokollpuffer ein Kapazitätsniveau erreicht oder sich nahe einem Kapazitätsniveau des Hinzufügens von Wiederherstellungsinformationen zu dem Wiederherstellungsprotokollpuffer befindet. Die durch das Ereignisprotokollprogramm 300 empfangene LSN entspricht einer höheren oder höchsten Folgenummer-LSN von Wiederherstellungsinformationen, die aktuell in dem Wiederherstellungsprotokollpuffer gehalten werden, um auf die Platte geleert zu werden, und die Leerung von Wiederherstellungsinformationen umfasst alle LSNs, die gleich oder kleiner als die erste LSN sind. Das Ereignisprotokollprogramm 300 empfängt dieselbe erste LSN wie die, die zur Leerung des Wiederherstellungsprotokollpuffers bezeichnet ist, um eine Synchronisierung zwischen dem Wiederherstellungsprotokollpuffer und dem Ereignisprotokollpuffer herzustellen.
  • Zum Beispiel stellt der Wiederherstellungsprotokollpuffer 220 (2) fest, dass sich der Wiederherstellungsprotokollpuffer 220 nahe einer Kapazität befindet und die Wiederherstellungsinformationen, die im Wiederherstellungsprotokollpuffer 220 gehalten werden, in das Wiederherstellungsprotokoll 225 geleert werden müssen, das sich auf der Platte befindet. Der Wiederherstellungsprotokollpuffer 220 sendet eine LSN (Leerungs-LSN 240) an das Ereignisprotokollprogramm 300, die zum Leeren des Ereignisprotokollpuffers 230 verwendet werden soll. Die Leerungs-LSN 240, die gesendet wird, entspricht derselben LSN, die eine höhere oder höchste Folgenummer der Wiederherstellungsinformationen enthält, die aktuell im Wiederherstellungsprotokollpuffer 220 gehalten werden, die zum Leeren vorgesehen sind. Die Leerung von Wiederherstellungsinformationen umfasst alle LSNs die gleich oder kleiner als die Leerungs-LSN 240 sind, und das Ereignisprotokollprogramm 300 verwendet dieselbe Leerungs-LSN 240, um die Ereignisinformationen zu ermitteln, die in das Ereignisprotokoll 235 auf der Platte geleert werden sollen.
  • Das Ereignisprotokollprogramm 300 ermittelt die LSNs der Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind (Schritt 340). Das Ereignisprotokollprogramm 300 verwendet die LSNs der in dem Ereignisprotokollpuffer enthaltenen Ereignisinformationen, um einen Bereich von LSNs einzurichten, die aktuell in dem Ereignisprotokollpuffer gehalten werden. Die LSNs der eindeutigen Instanzen von Ereignisinformationen, die dem Ereignispuffer hinzugefügt wurden, werden zum Ermitteln des Satzes von Ereignisinformationen verwendet, die den individuellen Ereignisaktivitäten entsprechen, die in das Ereignisprotokoll geleert werden, das sich auf der Platte befindet.
  • Das Ereignisprotokollprogramm 300 ermittelt, ob der Ereignisprotokollpuffer LSNs enthält, die kleiner oder gleich der ersten LSN sind (Entscheidungsschritt 350). Für den Fall, bei dem das Ereignisprotokollprogramm 300 feststellt, dass aktuell in dem Protokoll puffer keine LSNs vorliegen, die gleich oder kleiner als die empfangene erste LSN sind (Schritt 350, „NEIN“-Zweig), sendet das Ereignisprotokollprogramm 300 eine Beendigungsbestätigungsnachricht, die das Leeren der Wiederherstellungsinformationen des Wiederherstellungsprotokollpuffers in das Wiederherstellungsprotokoll einleitet, das sich auf der Platte befindet (Schritt 370).
  • Zum Beispiel empfängt das Ereignisprotokollprogramm 300 eine erste LSN = 1000, die das Leeren von Ereignisinformationen mit LSNs angibt, die kleiner als LSN = 1000 sind oder dieser entsprechen. Das Ereignisprotokollprogramm 300 stellt fest, dass in dem Ereignisprotokollpuffer alle LSNs aus einer Leerungsaktion, die unabhängig von der Koordination mit dem Wiederherstellungsprotokollpuffer 220 erfolgte, LSN = 1000 in Zusammenhang damit überschreiten, dass Ereignisinformationen sich der Kapazität des Ereignisprotokollpuffers 230 nähern. Das Ereignisprotokollprogramm 300 sendet eine Beendigungsreaktion 250 (2), um das Leeren des Wiederherstellungsprotokollpuffers 220 einzuleiten.
  • Nach dem Senden einer Beendigungsbestätigung zum Einleiten des Leerens des Wiederherstellungsprotokollpuffers endet das Ereignisprotokollprogramm 300, bleibt aber zwecks Erkennung weiterer Ereignisaktivität aktiv, die auf dem Knoten durchgeführt wird. Bei einigen Ausführungsformen der vorliegenden Erfindung erkennt das Ereignisprotokollprogramm 300 einen Fehlerzustand, der die Übermittlung von Ereignisbenachrichtigungen unterbricht, und leitet eine Wiederholung von Ereignisbenachrichtigungen ab der LSN der letzten bestätigten Ereignisinformationen aus dem Ereignisprotokoll ein, das sich im Permanentspeicher befindet. Das Bereitstellen der Wiederholung einer sicher gespeicherten Ereignisbenachrichtigung stellt die Zuverlässigkeit bei der Übermittlung von Ereignisbenachrichtigungen für interne und/oder externe Senken sicher.
  • Für den Fall, bei dem das Ereignisprotokollprogramm 300 feststellt, dass der Ereignisprotokollpuffer Ereignisinformationen mit LSNs enthält, die kleiner oder gleich der empfangenen ersten LSN sind (Schritt 350, „JA“-Zweig), leert das Ereignisprotokollprogramm" 300 die Ereignisinformationen mit LSNs in das Ereignisprotokoll auf der Platte, die kleiner oder gleich der ersten LSN sind (Schritt 360). Das Ereignisprotokollprogramm 300 leitet das Leeren des Satzes von Ereignisinformationen, von denen jede einer auf dem Knoten durchgeführten eindeutigen Ereignisaktivität entspricht, in das Ereignisprotokoll ein, das sich im Permanentspeicher auf der Platte befindet.
  • Nach dem Durchführen einer Leerung der Ereignisinformationen, die durch LSNs bezeichnet sind, die kleiner oder gleich der empfangenen ersten LSN sind, sendet das Ereignisprotokollprogramm 300 eine Beendigungsbestätigung, um das Leeren des Wiederherstellungsprotokollpuffers einzuleiten (Schritt 370), und wird wie vorstehend beschrieben fortgesetzt. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass die auf die Platte geleerten Wiederherstellungsinformationen und Ereignisinformationen durch den bezeichneten LSN-Bereich koordiniert sind, der durch Ereignis-LSNs definiert ist, die kleiner oder gleich der ersten LSN sind. Ausführungsformen berücksichtigen ferner, dass durch das Leeren des Ereignisprotokollpuffers vor dem Leeren des Wiederherstellungsprotokollpuffers eine zuverlässige geschützte Quelle von Ereignisbenachrichtigungen und entsprechende Metadaten gesichert ist und zum Wiederholen bei Erkennung eines Fehlerzustands oder einer Unterbrechung der Übermittlung von Ereignisbenachrichtigungen aus dem Knoten zur Verfügung steht.
  • Nach dem Senden einer Beendigungsbestätigung zum Einleiten des Leerens des Wiederherstellungsprotokollpuffers endet das Ereignisprotokollprogramm 300, bleibt aber zwecks Erkennung weiterer Ereignisaktivität aktiv, die auf dem Knoten durchgeführt wird. Bei einigen Ausführungsformen der vorliegenden Erfindung erkennt das Ereignisprotokollprogramm 300 einen Fehlerzustand, der die Übermittlung von Ereignisbenachrichtigungen unterbricht, und leitet eine Wiederholung von Ereignisbenachrichtigungen ab der LSN der letzten bestätigten Ereignisinformationen aus dem Ereignisprotokoll ein, das sich im Permanentspeicher befindet. Das Bereitstellen der Wiederholung einer sicher gespeicherten Ereignisbenachrichtigung stellt die Zuverlässigkeit bei der Übermittlung von Ereignisbenachrichtigungen für interne und/oder externe Senken sicher.
  • 4 stellt ein Blockschema von Komponenten eines Datenverarbeitungssystems bildlich dar, unter anderem eine Datenverarbeitungseinheit 405, die so konfiguriert ist, dass sie in 1 bildlich dargestellte Komponenten umfasst oder eine funktionsmäßige Verbindung zu diesen herstellt, und die Fähigkeit aufweist, das Ereignisprotokollprogramm 300 von 3 gemäß einer Ausführungsform der vorliegenden Erfindung funktionsmäßig durchzuführen.
  • Die Datenverarbeitungseinheit 405 umfasst Komponenten und eine Funktionsfähigkeit, die der von Komponenten des ersten Server-Knotens 110, des zweiten Server-Knotens 120 und des N-ten Server-Knotens 130 (1) gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung ähnelt. Es sollte klar sein, dass 4 lediglich zur Veranschaulichung einer Realisierungsform dient und nicht als Einschränkung in Bezug auf die Umgebungen gedacht ist, in denen unterschiedliche Ausführungsformen realisiert werden können. An der bildlich dargestellten Umgebung können viele Abänderungen vorgenommen werden.
  • Die Datenverarbeitungseinheit 405 umfasst eine Datenübertragungsstruktur 402, die Datenübertragung zwischen (einem) Computerprozessor(en) 404, einem Speicher 406, einem Permanentspeicher 408, einer Datenverarbeitungseinheit 410 und (einer) Eingabe/Ausgabe-Schnittstelle(n) (E/A-Schnittstelle(n)) 412 bereitstellt. Die Datenübertragungsstruktur 402 kann mit einer beliebigen Architektur realisiert sein, die auf das Weiterleiten von Daten und/oder Steuerinformationen zwischen Prozessoren (beispielsweise Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.) und einem Systemspeicher, Peripherieeinheiten und beliebigen anderen Hardwarekomponenten innerhalb eines Systems ausgelegt ist. Zum Beispiel kann die Datenübertragungsstruktur 402 mit einem oder mehreren Bussen realisiert sein.
  • Bei dem Speicher 406, dem Cache-Speicher 416 und dem Permanentspeicher 408 handelt es sich um durch einen Computer lesbare Speichermedien. Bei diesem Beispiel umfasst der Speicher 406 Direktzugriffsspeicher (random access memory, RAM) 414. Im Allgemeinen kann der Speicher 406 beliebige geeignete flüchtige oder nichtflüchtige, durch einen Computer lesbare Speichermedien enthalten.
  • Bei einer Ausführungsform ist das Ereignisprotokollprogramm 300 im Permanentspeicher 408 zur Ausführung durch einen oder mehrere der jeweiligen Computerprozessoren 404 über einen oder mehrere Speicher des Speichers 406 gespeichert. Bei dieser Ausführungsform umfasst der Permanentspeicher 408 ein magnetisches Festplattenlaufwerk. Alternativ oder zusätzlich zu einem magnetischen Festplattenlaufwerk kann der Permanentspeicher 408 einen Halbleiterdatenträger (solid state hard drive), eine Halbleiterspeichereinheit, einen Nur-Lese-Speicher (read-only memory, ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (erasable programmable read-only memory, EPROM), einen Flash-Speicher oder beliebige andere durch einen Computer lesbare Speichermedien enthalten, die in der Lage sind, Programmanweisungen oder digitale Informationen zu speichern. Bei einer Ausführungsform der vorliegenden Erfindung sind das Wiederherstellungsprotokoll 225 und das Ereignisprotokoll 235 im Permanentspeicher 408 enthalten.
  • Die durch den Permanentspeicher 408 verwendeten Medien können außerdem wechselbar sein. Zum Beispiel kann als Permanentspeicher 408 ein wechselbares Festplattenlaufwerk verwendet werden. Zu anderen Beispielen gehören optische und magnetische Platten, USB-Sticks und Smart-Cards, die in ein Laufwerk zum Übertragen auf ein weiteres, durch einen Computer lesbares Speichermedium eingeführt werden, das ebenfalls Teil des Permanentspeichers 408 ist.
  • Die Datenübertragungseinheit 410 stellt bei diesen Beispielen Datenübertragung mit anderen Datenverarbeitungssystemen oder -einheiten bereit, unter anderem mit Ressourcen der verteilten Datenverarbeitungsumgebung 100. Bei diesen Beispielen umfasst die Datenübertragungseinheit 410 eine oder mehrere Netzwerkschnittstellenkarten. Die Datenübertragungseinheit 410 kann Datenübertragung über die Verwendung von entweder physischen Datenübertragungsverbindungen oder kabellosen Datenübertragungsverbindungen oder beidem bereitstellen. Das Ereignisprotokollprogramm 300 kann über die Datenübertragungseinheit 410 in den Permanentspeicher 408 heruntergeladen werden.
  • Die E/A-Schnittstelle(n) 412 ermöglicht bzw. ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Datenverarbeitungssystem 400 verbunden sein können. Zum Beispiel kann die E/A-Schnittstelle 412 eine Verbindung zu externen Einheiten 418 wie z.B. zu einer Tastatur, einem Tastenfeld, einem Touchscreen und/oder einer anderen geeigneten Eingabeeinheit bereitstellen. Zu externen Einheiten 418 können außerdem transportable, durch einen Computer lesbare Speichermedien wie z.B. USB-Sticks, transportable optische oder magnetische Platten und Speicherkarten gehören. Software und Daten, die zur praktischen Umsetzung von Ausführungsformen der vorliegenden Erfindung verwendet werden, z.B. das Ereignisprotokollprogramm 300, können auf derartigen transportablen, durch einen Computer lesbaren Speichermedien gespeichert sein und über E/A-Schnittstellen 412 in den Permanentspeicher 408 geladen werden. Die E/A-Schnittstellen 412 stellen außerdem eine Verbindung zu einer Anzeige 420 her.
  • Die Anzeige 420 stellt einen Mechanismus bereit, um einem Benutzer Daten anzuzeigen, und kann sich hierbei zum Beispiel um einen Computermonitor handeln.
  • Die hierin beschriebenen Programme sind auf der Grundlage der Anwendung bezeichnet, für die sie bei einer bestimmten Ausführungsform der Erfindung realisiert sind. Es sollte jedoch klar sein, dass hierin eine bestimmte Programmbenennung lediglich der Vereinfachung dient und die Erfindung daher nicht auf die Verwendung ausschließlich in einer bestimmten Anwendung begrenzt sein soll, die durch eine derartige Benennung bezeichnet oder stillschweigend darin eingeschlossen ist.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in einem beliebigen möglichen Integrationsgrad technischer Einzelheiten handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Eine nicht erschöpfende Liste genauerer Beispiele des durch einen Computer lesbaren Speichermediums enthält Folgendes: eine transportable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (Random Access Memory, RAM), einen Nur-Lese-Speicher (Read-Only Memory, ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (Erasable Programmable Read-Only Memory, EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (Static Random Access Memory, SRAM), einen transportablen Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein kabelloses Netzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, kabellose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA = Instruction-Set-Architecture), Maschinenanweisungen, - maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, unter anderem objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ oder dergleichen sowie prozedurale Programmiersprachen wie z.B. die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt sein (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, unter anderem zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logik-Arrays (PLA,) die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Operationen ausgeführt werden, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Realisierungsformen können die in dem Block angegebenen Funktionen in einer anderen als in der Reihenfolge ausgeführt werden, die in den Figuren angegeben ist. Zum Beispiel können zwei hintereinander gezeigte Blöcke tatsächlich als ein Schritt ausgeführt, gleichzeitig, Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der Blockschemata und/oder Flussdiagrammdarstellungen sowie Kombinationen von Blöcken in den Blockschemata und/oder Flussdiagrammdarstellungen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.

Claims (25)

  1. Verfahren zur Fehlertoleranz bei der Übermittlung von Ereignisinformationen innerhalb eines Computer-Clusters von Knoten, wobei das Verfahren aufweist: Ermitteln, durch einen oder mehrere Prozessoren, von Ereignisinformationen, die in Zusammenhang mit einer Dateisystemaktivität stehen, die durch einen Knoten eines Computer-Clusters von Knoten durchgeführt wurde; Hinzufügen, durch den einen oder die mehreren Prozessoren, der Ereignisinformationen zu einem Ereignisprotokollpuffer im Speicher; Empfangen, durch den einen oder die mehreren Prozessoren, einer ersten Protokollfolgenummer, die mit einer Wiederherstellungsprotokollfolgenummer übereinstimmt, die einem Leeren von Wiederherstellungsinformationen aus einem Wiederherstellungsprotokollpuffer entspricht; Ermitteln, durch den einen oder die mehreren Prozessoren, der Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind, die eine Protokollfolgenummer enthalten, die kleiner oder gleich der ersten Protokollfolgenummer ist; und als Reaktion auf ein Feststellen, dass die in dem Ereignisprotokollpuffer enthaltenen Informationen einer Protokollfolgenummer entsprechen, die kleiner oder gleich der ersten Protokollfolgenummer ist, Leeren, durch den einen oder die mehreren Prozessoren, der Ereignisinformationen, die entsprechende Protokollfolgenummern enthalten, aus dem Ereignisprotokollpuffer in einen Plattenspeicher.
  2. Verfahren nach Anspruch 1, das ferner aufweist: als Reaktion auf ein Feststellen eines Fehlens von Übereinstimmung zwischen den Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind, und Protokollfolgenummern, die kleiner oder gleich der ersten Protokollfolgenummer sind, Senden, durch den einen oder die mehreren Prozessoren, einer Bestätigungsreaktion an den Wiederherstellungsprotokollpuffer, die ein Leeren von Wiederherstellungsinformationen einleitet, die in dem Wiederherstellungsprotokollpuffer enthalten sind, ohne ein Leeren von Ereignisinformationen aus dem Ereignisprotokollpuffer durchzuführen.
  3. Verfahren nach Anspruch 1 oder 2, das ferner aufweist: Senden, durch den einen oder die mehreren Prozessoren, der Ereignisinformationen mindestens einer auf dem Knoten durchgeführten Dateisystemaktivität, die in den Plattenspeicher in eine Senke geleert wurden, als Reaktion auf ein Erkennen eines Fehlerzustands des Knotens des Computer-Clusters von Knoten.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Ereignisinformationen Metadaten enthalten, die einer bestimmten Dateisystemaktivität entsprechen, die auf dem Knoten des Computerknoten-Clusters durchgeführt wurde.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein jeweiliger Knoten des Computerknoten-Clusters einen Erzeuger und eine Nachrichtenwarteschlange als Senke enthält und wobei es sich bei der Senke um ein Datendepot (repository) für Ereignisbenachrichtigungszugriffe handelt, das sich außerhalb des Computerknoten-Clusters befindet.
  6. Verfahren nach einem der Ansprüche 1 bis 4, wobei ein jeweiliger Knoten des Computerknoten-Clusters einen Erzeuger und eine Ereignisprotokolldatei auf einem Permanentspeicher als Senke enthält und wobei es sich bei der Senke um ein Datendepot für Ereignisbenachrichtigungszugriffe handelt, das sich außerhalb des Computerknoten-Clusters befindet.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine jeweilige auf dem Knoten des Computerknoten-Clusters durchgeführte Ereignisaktivität eine Protokollfolgenummer empfängt, die eindeutig den Ereignisinformationen entspricht, die in Zusammenhang mit der jeweiligen Ereignisaktivität stehen.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Leeren der Ereignisinformationen ferner aufweist: Leeren, durch den einen oder die mehreren Prozessoren, der Ereignisinformationen mit entsprechenden Protokollfolgenummern aus dem Ereignisprotokollpuffer in ein Ereignisprotokoll auf dem Plattenspeicher; und Leeren, durch den einen oder die mehreren Prozessoren, der Wiederherstellungsinformationen in ein Wiederherstellungsprotokoll auf dem Plattenspeicher im Anschluss an das Leeren der Ereignisinformationen mit entsprechenden Protokollfolgenummern in das Ereignisprotokoll auf dem Plattenspeicher.
  9. Computerprogrammprodukt zur Fehlertoleranz bei der Übermittlung von Ereignisinformationen von Knoten innerhalb eines Computerknoten-Clusters, wobei das Computerprogrammprodukt aufweist: ein oder mehrere durch einen Computer lesbare Speichermedien und auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeicherte Programmanweisungen, wobei die Programmanweisungen aufweisen: Programmanweisungen zum Ermitteln von Ereignisinformationen, die in Zusammenhang mit einer Dateisystemaktivität stehen, die durch einen Knoten eines Computer-Clusters von Knoten durchgeführt wurde; Programmanweisungen zum Hinzufügen der Ereignisinformationen zu einem Ereignisprotokollpuffer im Speicher; Programmanweisungen zum Empfangen einer ersten Protokollfolgenummer, die mit einer Wiederherstellungsprotokollfolgenummer übereinstimmt, die dem Leeren von Wiederherstellungsinformationen aus einem Wiederherstellungsprotokollpuffer entspricht; Programmanweisungen zum Ermitteln der Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind, die eine Protokollfolgenummer enthalten, die kleiner oder gleich der ersten Protokollfolgenummer ist; und als Reaktion auf das Feststellen, dass die in dem Ereignisprotokollpuffer enthaltenen Informationen einer Protokollfolgenummer entsprechen, die kleiner oder gleich der ersten Protokollfolgenummer ist, Programmanweisungen zum Leeren der Ereignisinformationen, die entsprechende Protokollfolgenummern enthalten, aus dem Ereignisprotokollpuffer in den Plattenspeicher.
  10. Computerprogrammprodukt nach Anspruch 9, das ferner Programmanweisungen aufweist, die auf dem einem oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, zum: Senden, als Reaktion auf das Feststellen des Fehlens von Übereinstimmung zwischen den Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind, und Protokollfolgenummern, die kleiner oder gleich der ersten Protokollfolgenummer sind, einer Bestätigungsreaktion an den Wiederherstellungsprotokollpuffer, die das Leeren von Wiederherstellungsinformationen einleitet, die in dem Wiederherstellungsprotokollpuffer enthalten sind, ohne ein Leeren von Ereignisinformationen aus dem Ereignisprotokollpuffer durchzuführen.
  11. Computerprogrammprodukt nach Anspruch 9, das ferner Programmanweisungen aufweist, die auf dem einem oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, zum: Senden der Ereignisinformationen, die in den Plattenspeicher in eine Senke geleert wurden, als Reaktion auf das Erkennen eines Fehlerzustands des Knotens des Computer-Clusters von Knoten.
  12. Computerprogrammprodukt nach Anspruch 9 oder Anspruch 10, wobei die Ereignisinformationen Metadaten enthalten, die einer bestimmten Dateisystemaktivität entsprechen, die auf dem Knoten des Computerknoten-Clusters durchgeführt wurde.
  13. Computerprogrammprodukt nach einem der Ansprüche 9 bis 11, wobei ein jeweiliger Knoten des Computerknoten-Clusters einen Erzeuger und eine Nachrichtenwarteschlange als Senke enthält.
  14. Computerprogrammprodukt nach einem der Ansprüche 9 bis 11, wobei ein jeweiliger Knoten des Computerknoten-Clusters eine Ereignisprotokolldatei auf dem Permanentspeicher als Senke enthält.
  15. Computerprogrammprodukt nach einem der Ansprüche 9 bis 14, wobei eine jeweilige auf dem Knoten des Computerknoten-Clusters durchgeführte Ereignisaktivität eine LSN empfängt, die eindeutig den Ereignisinformationen entspricht, die in Zusammenhang mit der jeweiligen Ereignisaktivität stehen.
  16. Computerprogrammprodukt nach einem der Ansprüche 9 bis 15, wobei die Ereignisinformationen, die die entsprechenden Protokollfolgenummern enthalten, die kleiner oder gleich der ersten Protokollfolgenummer sind, aus dem Ereignisprotokollpuffer in ein Ereignisprotokoll geleert werden, das sich im Permanentspeicher befindet, und die in das Ereignisprotokoll geleerten Ereignisinformationen den Wiederherstellungsinformationen entsprechen, die im Anschluss aus dem Wiederherstellungsprotokollpuffer in ein Wiederherstellungsprotokoll geleert werden, das sich im Permanentspeicher befindet.
  17. Computersystem zur Fehlertoleranz bei der Übermittlung von Ereignisinformationen von Knoten innerhalb eines Computerknoten-Clusters, wobei das Computersystem aufweist: einen oder mehrere Computerprozessoren; ein oder mehrere durch einen Computer lesbare Speichermedien und auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeicherte Programmanweisungen, wobei die Programmanweisungen aufweisen: Programmanweisungen zum Ermitteln von Ereignisinformationen, die in Zusammenhang mit einer Dateisystemaktivität stehen, die durch einen Knoten eines Computer-Clusters von Knoten durchgeführt wurde; Programmanweisungen zum Hinzufügen der Ereignisinformationen zu einem Ereignisprotokollpuffer im Speicher; Programmanweisungen zum Empfangen einer ersten Protokollfolgenummer, die mit einer Wiederherstellungsprotokollfolgenummer übereinstimmt, die dem Leeren von Wiederherstellungsinformationen aus einem Wiederherstellungsprotokollpuffer entspricht; Programmanweisungen zum Ermitteln der Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind, die eine Protokollfolgenummer enthalten, die kleiner oder gleich der ersten Protokollfolgenummer ist; und als Reaktion auf das Feststellen, dass die in dem Ereignisprotokollpuffer enthaltenen Informationen einer Protokollfolgenummer entsprechen, die kleiner oder gleich der ersten Protokollfolgenummer ist, Programmanweisungen zum Leeren der Ereignisinformationen, die entsprechende Protokollfolgenummern enthalten, aus dem Ereignisprotokollpuffer in den Plattenspeicher.
  18. Computersystem nach Anspruch 17, das ferner Programmanweisungen aufweist, die auf den durch einen Computer lesbaren Speichermedien zur Ausführung durch mindestens einen des einen oder der mehreren Computerprozessoren gespeichert sind, um: Senden, als Reaktion auf das Feststellen des Fehlens von Übereinstimmung zwischen den Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind, und Protokollfolgenummern, die kleiner oder gleich der ersten Protokollfolgenummer sind, einer Bestätigungsreaktion an den Wiederherstellungsprotokollpuffer, die das Leeren von Wiederherstellungsinformationen einleitet, die in dem Wiederherstellungsprotokollpuffer enthalten sind, ohne ein Leeren von Ereignisinformationen aus dem Ereignisprotokollpuffer durchzuführen.
  19. Computersystem nach Anspruch 17 oder Anspruch 18, wobei die Ereignisinformationen Metadaten enthalten, die einer bestimmten Dateisystemaktivität entsprechen, die auf dem Knoten des Computerknoten-Clusters durchgeführt wurde.
  20. Computersystem nach einem der Ansprüche 17 bis 19, wobei eine jeweilige auf dem Knoten des Computerknoten-Clusters durchgeführte Ereignisaktivität eine Protokollfolgenummer (log sequence number, LSN) für den Ereignisprotokollpuffer erzeugt, die mit einer LSN übereinstimmt, die in Zusammenhang mit Wiederherstellungsinformationen des Wiederherstellungsprotokollpuffers des Knotens für eine gleiche jeweilige Ereignisaktivität steht.
  21. Computersystem nach einem der Ansprüche 17 bis 20, wobei die Ereignisinformationen, die die entsprechenden Protokollfolgenummern enthalten, die kleiner oder gleich der ersten Protokollfolgenummer sind, aus dem Ereignisprotokollpuffer in ein Ereignisprotokoll geleert werden, das sich im Permanentspeicher befindet, und die in das Ereignisprotokoll geleerten Ereignisinformationen den Wiederherstellungsinformationen entsprechen, die im Anschluss aus dem Wiederherstellungsprotokollpuffer in ein Wiederherstellungsprotokoll geleert werden, das sich im Permanentspeicher befindet.
  22. Verfahren zum Wiederholen nicht übermittelter Ereignisinformationen aufgrund eines Fehlerzustands eines Knotens innerhalb eines Computerknoten-Clusters, wobei das Verfahren aufweist: Ermitteln, durch einen oder mehrere Prozessoren, eines Fehlerzustands eines ersten Knotens eines Computerknoten-Clusters eines Speichersystems; Zugreifen, durch den einen oder die mehreren Prozessoren, auf Ereignisinformationen von Ereignissen, die auf dem ersten Knoten des Computerknoten-Clusters eines Speichersystems durchgeführt wurden, die in einem Ereignisprotokoll gespeichert sind, das sich im Permanentspeicher befindet, wobei die Ereignisinformationen durch eine Protokollfolgenummer (LSN) eindeutig gekennzeichnet sind, die einer auf dem Knoten durchgeführten Ereignisaktivität entspricht, und wobei eine Ereignisbenachrichtigung die Übermittlung der Ereignisinformationen über diese Ereignisaktivität umfasst; Ermitteln, durch den einen oder die mehreren Prozessoren, einer LSN einer letzten Ereignisbenachrichtigung, die an eine Senke des Speichersystems übermittelt wurde, wobei es sich bei der Senke um ein empfangendes Datendepot einer Mehrzahl von Ereignisbenachrichtigungen des Speichersystems handelt; Kennzeichnen, durch den einen oder die mehreren Prozessoren, einer oder mehrerer Ereignisbenachrichtigungen mit LSNs, die größer als die LSN der an die Senke übermittelten letzten Ereignisbenachrichtigung sind; und Wiederholen, durch den einen oder die mehreren Prozessoren, einer oder mehrerer Ereignisbenachrichtigungen mit LSNs, die größer als die LSN der an die Senke übermittelten letzten Ereignisbenachrichtigung sind, aus dem Ereignisprotokoll für die Senke des Speichersystems.
  23. Verfahren nach Anspruch 22, wobei es sich bei der Senke um ein Datendepot für Ereignisbenachrichtigungszugriffe handelt, das sich außerhalb des Computerknoten-Clusters befindet.
  24. Computersystem zum Wiederholen nicht übermittelter Ereignisinformationen aufgrund eines Fehlerzustands eines Knotens innerhalb eines Computerknoten-Clusters, wobei das Computersystem aufweist: einen oder mehrere Computerprozessoren; ein oder mehrere durch einen Computer lesbare Speichermedien und auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeicherte Programmanweisungen, wobei die Programmanweisungen aufweisen: Programmanweisungen zum Ermitteln eines Fehlerzustands eines ersten Knotens eines Computerknoten-Clusters eines Speichersystems; Programmanweisungen zum Zugreifen auf Ereignisinformationen von Ereignissen, die auf dem ersten Knoten des Computerknoten-Clusters eines Speichersystems durchgeführt wurden, die in einem Ereignisprotokoll gespeichert sind, das sich im Permanentspeicher befindet, wobei die Ereignisinformationen durch eine Protokollfolgenummer (LSN) eindeutig gekennzeichnet sind, die einer auf dem Knoten durchgeführten Ereignisaktivität entspricht, und wobei eine Ereignisbenachrichtigung die Übermittlung der Ereignisinformationen über diese Ereignisaktivität umfasst; Programmanweisungen zum Ermitteln einer LSN einer letzten Ereignisbenachrichtigung, die an eine Senke des Speichersystems übermittelt wurde, wobei es sich bei der Senke um ein empfangendes Datendepot einer Mehrzahl von Ereignisbenachrichtigungen des Speichersystems handelt; Programmanweisungen zum Kennzeichnen einer oder mehrerer Ereignisbenachrichtigungen mit LSNs, die größer als die LSN der an die Senke übermittelten letzten Ereignisbenachrichtigung sind; und Programmanweisungen zum Wiederholen einer oder mehrerer Ereignisbenachrichtigungen mit LSNs, die größer als die LSN der an die Senke übermittelten letzten Ereignisbenachrichtigung sind, aus dem Ereignisprotokoll für die Senke des Speichersystems.
  25. Computersystem nach Anspruch 24, wobei es sich bei der Senke um ein Datendepot für Ereignisbenachrichtigungszugriffe handelt, das sich außerhalb des Computerknoten-Clusters befindet.
DE112021004898.8T 2020-11-05 2021-10-20 Übermittlung von Ereignisbenachrichtigungen aus einem verteilten Dateisystem Pending DE112021004898T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/089,851 2020-11-05
US17/089,851 US11593309B2 (en) 2020-11-05 2020-11-05 Reliable delivery of event notifications from a distributed file system
PCT/IB2021/059680 WO2022096975A1 (en) 2020-11-05 2021-10-20 Delivery of event notifications from distributed file system

Publications (1)

Publication Number Publication Date
DE112021004898T5 true DE112021004898T5 (de) 2023-07-27

Family

ID=81380107

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021004898.8T Pending DE112021004898T5 (de) 2020-11-05 2021-10-20 Übermittlung von Ereignisbenachrichtigungen aus einem verteilten Dateisystem

Country Status (6)

Country Link
US (1) US11593309B2 (de)
JP (1) JP2023547830A (de)
CN (1) CN116324754A (de)
DE (1) DE112021004898T5 (de)
GB (1) GB2615715A (de)
WO (1) WO2022096975A1 (de)

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933838A (en) * 1997-03-10 1999-08-03 Microsoft Corporation Database computer system with application recovery and recovery log sequence numbers to optimize recovery
US6353836B1 (en) * 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US6502133B1 (en) 1999-03-25 2002-12-31 Lucent Technologies Inc. Real-time event processing system with analysis engine using recovery information
US8234517B2 (en) * 2003-08-01 2012-07-31 Oracle International Corporation Parallel recovery by non-failed nodes
US7565661B2 (en) * 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
US7483810B2 (en) * 2004-06-29 2009-01-27 Honeywell International Inc. Real time event logging system
US8578500B2 (en) * 2005-05-31 2013-11-05 Kurt James Long System and method of fraud and misuse detection
US20070220059A1 (en) * 2006-03-20 2007-09-20 Manyi Lu Data processing node
US7899800B2 (en) * 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US8984513B2 (en) * 2006-08-28 2015-03-17 International Business Machines Corporation Transfer of event logs for replication of executing programs
DE112007002682T5 (de) * 2006-11-06 2009-10-15 Dell Marketing USA L.P., Round Rock Ein System und Verfahren zum Verwalten von Daten über mehrere Umgebungen
US8074027B2 (en) * 2006-12-04 2011-12-06 Microsoft Corporation Multi-level read caching for multiplexed transactional logging
US20090070786A1 (en) 2007-09-11 2009-03-12 Bea Systems, Inc. Xml-based event processing networks for event server
US8266114B2 (en) * 2008-09-22 2012-09-11 Riverbed Technology, Inc. Log structured content addressable deduplicating storage
KR101644125B1 (ko) * 2009-09-22 2016-07-29 삼성전자주식회사 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법
US9081888B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating log data with fault tolerance
US9325757B2 (en) 2010-11-30 2016-04-26 Adello Inc. Methods and systems for fault-tolerant distributed stream processing
US10949415B2 (en) * 2011-03-31 2021-03-16 International Business Machines Corporation Logging system using persistent memory
US8954700B2 (en) 2011-08-02 2015-02-10 Cavium, Inc. Method and apparatus for managing processing thread migration between clusters within a processor
US8706698B2 (en) * 2011-09-21 2014-04-22 International Business Machines Corporation Coordination of event logging operations and log management
US9069827B1 (en) * 2012-01-17 2015-06-30 Amazon Technologies, Inc. System and method for adjusting membership of a data replication group
US8527462B1 (en) * 2012-02-09 2013-09-03 Microsoft Corporation Database point-in-time restore and as-of query
CN102750317B (zh) 2012-05-02 2015-01-21 华为技术有限公司 数据持久化处理方法、装置及数据库系统
US10180951B2 (en) * 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US9135164B2 (en) * 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US9830234B2 (en) * 2013-08-26 2017-11-28 Vmware, Inc. Distributed transaction log
US20160048428A1 (en) * 2013-09-04 2016-02-18 DataGravity, Inc. Thin provisioned clone
US9633041B2 (en) * 2013-09-26 2017-04-25 Taiwan Semiconductor Manufacturing Co., Ltd. File block placement in a distributed file system network
US9880933B1 (en) * 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9558229B2 (en) * 2013-11-26 2017-01-31 Sap Se Transaction private log buffering for high performance of transaction processing
GB2531537A (en) * 2014-10-21 2016-04-27 Ibm Database Management system and method of operation
US9558125B2 (en) * 2014-10-27 2017-01-31 Sandisk Technologies Llc Processing of un-map commands to enhance performance and endurance of a storage device
US9606856B2 (en) * 2014-12-03 2017-03-28 International Business Machines Corporation Event logging and error recovery
US9946607B2 (en) * 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10061816B2 (en) * 2015-05-11 2018-08-28 Informatica Llc Metric recommendations in an event log analytics environment
US9672082B2 (en) 2015-10-21 2017-06-06 Oracle International Corporation Guaranteeing the event order for multi-stage processing in distributed systems
US10255141B2 (en) 2015-10-22 2019-04-09 Oracle International Corporation Event batching, output sequencing, and log based state storage in continuous query processing
US10678669B2 (en) * 2017-04-21 2020-06-09 Nec Corporation Field content based pattern generation for heterogeneous logs
US11294743B2 (en) 2017-10-26 2022-04-05 SK Hynix Inc. Firmware event tracking for NAND-based storage devices, and methods and instruction sets for performing the same
US11650862B2 (en) 2018-07-31 2023-05-16 Parallel Wireless, Inc. Service bus for telecom infrastructure
CN111125040B (zh) 2018-10-31 2023-09-08 华为技术有限公司 管理重做日志的方法、装置及存储介质
CN109669821B (zh) 2018-11-16 2022-04-05 深圳证券交易所 消息中间件的集群部分故障恢复方法、服务器及存储介质

Also Published As

Publication number Publication date
JP2023547830A (ja) 2023-11-14
GB2615715A (en) 2023-08-16
US20220138158A1 (en) 2022-05-05
US11593309B2 (en) 2023-02-28
GB202307443D0 (en) 2023-07-05
CN116324754A (zh) 2023-06-23
WO2022096975A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
US10169163B2 (en) Managing backup operations from a client system to a primary server and secondary server
US8909881B2 (en) Systems and methods for creating copies of data, such as archive copies
US20180095837A1 (en) Use of replicated copies to improve database backup performance
US20160103740A1 (en) Handling failed cluster members when replicating a database between clusters
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE112016001295T5 (de) Neusynchronisieren auf ein erstes Speichersystem durch Spiegeln des ersten Speichersystems nach einem Failover zu einem zweiten Speichersystem
US11249943B2 (en) Scalable enterprise content management
DE112010004238T5 (de) Intelligente rollierende Aufrüstung für Datenspeichersysteme
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE112008004014T5 (de) Analysieren von Serverkopien von Clientdateien
DE112017000190T5 (de) Durchgehende Verschlüsselung und Backup in Datenschutzumgebungen
US10095415B2 (en) Performance during playback of logged data storage operations
DE112011103367T5 (de) Replizieren von Daten
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud
DE112021003402T5 (de) Blockchain-verwaltung von bereitstellungsfehlern
US20120233250A1 (en) Auto-updatable document parts within content management systems
US11093290B1 (en) Backup server resource-aware discovery of client application resources
DE112021000408T5 (de) Prädiktives bereitstellen von fern gespeicherten dateien
DE112021000361T5 (de) Perfekte vorwärtsgeheimhaltung für virtuelle maschinen
US11042454B1 (en) Restoration of a data source
DE112021004898T5 (de) Übermittlung von Ereignisbenachrichtigungen aus einem verteilten Dateisystem
US11966884B2 (en) Using distributed databases for network regression analysis
DE112016004457T5 (de) Vervielfältigen von Daten in Datenspeichervorrichtungen eines Verknüpfungsvolumens
US9258374B2 (en) Method and system for capturing expertise of a knowledge worker in an integrated breadcrumb trail of data transactions and user interactions
DE112015004557T5 (de) Anforderungsüberwachen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence