DE112016005207T5 - Leistungsüberwachung in einem verteilten Speichersystem - Google Patents

Leistungsüberwachung in einem verteilten Speichersystem Download PDF

Info

Publication number
DE112016005207T5
DE112016005207T5 DE112016005207.3T DE112016005207T DE112016005207T5 DE 112016005207 T5 DE112016005207 T5 DE 112016005207T5 DE 112016005207 T DE112016005207 T DE 112016005207T DE 112016005207 T5 DE112016005207 T5 DE 112016005207T5
Authority
DE
Germany
Prior art keywords
request
requests
probe
storage system
distributed storage
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
DE112016005207.3T
Other languages
English (en)
Inventor
Vadim Borisov
Andrew Fikes
Brian F. Cooper
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE112016005207T5 publication Critical patent/DE112016005207T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren und Systeme für die Überwachung der Leistung in einem verteilten Speichersystem werden beschrieben. Ein Beispielverfahren beinhaltet die Identifizierung von Anfragen, die von Clients an das verteilte Speichersystem gesendet werden, wobei jede Anfrage Anfrageparameterwerte für Anfrageparameter enthält; Erzeugung der Sondierungsanfragen auf Basis der identifizierten Anfragen, wobei die Sondierungsanfragen Sondierungsanfragen-Parameterwerte für Sondierungsanfragen-Parameterwerte beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in den identifizierten Anfragen enthalten sind; Senden der erzeugten Sondierungsanfragen an das verteilte Speichersystem über ein Netzwerk, worin das verteilte Speichersystem so konfiguriert ist, dass es Vorbereitungen für die Bedienung jeder Sondierungsanfrage zum Empfangen der Sondierungsanfrage durchführt; Empfangen von Antworten auf die Sondierungsanfragen von dem verteilten Speichersystem und Ausgeben des mindestens einen Leistungsmetrikwerts, der einen aktuellen Leistungszustand des verteilten Speichersystems auf Basis der empfangenen Antworten misst.

Description

  • HINTERGRUND
  • Diese Spezifikation bezieht sich im Allgemeinen auf die Überwachung der Leistung in einem verteilten Speichersystem.
  • In verteilten Systemen können verschiedene Leistungsmetriken verfolgt werden, um den Gesamtzustand des Systems zu ermitteln. Zum Beispiel kann überwacht werden, wie lange das System braucht, um auf eine Clientanfrage zu antworten (d. h. Latenz), um sicherzustellen, dass das System rechtzeitig antwortet.
  • ZUSAMMENFASSUNG
  • Im Allgemeinen kann ein Aspekt des in dieser Spezifikation beschriebenen Gegenstands in Systemen und Verfahren verkörpert sein, die von Datenverarbeitungsvorrichtungen durchgeführt werden, die die Aktionen der Identifizierung von Anfragen beinhalten, die von Clients an das verteilte Speichersystem gesendet werden, wobei jede Anfrage Anfrageparameterwerte für Anfrageparameter enthält; Erzeugung der Sondierungsanfragen auf Basis der identifizierten Anfragen, wobei die Sondierungsanfragen Sondierungsanfragen-Parameterwerte für Sondierungsanfragen-Parameterwerte beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in den identifizierten Anfragen enthalten sind; Senden der erzeugten Sondierungsanfragen an das verteilte Speichersystem über ein Netzwerk, worin das verteilte Speichersystem so konfiguriert ist, dass es Vorbereitungen für die Bedienung jeder Sondierungsanfrage zum Empfangen der Sondierungsanfrage durchführt; Empfangen von Antworten auf die Sondierungsanfragen von dem verteilten Speichersystem und Ausgeben des mindestens einen Leistungsmetrikwerts, der einen aktuellen Leistungszustand des verteilten Speichersystems auf Basis der empfangenen Antworten misst.
  • Details von einer oder mehreren Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands werden in den begleitenden Zeichnungen und in der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Aspekte und potenzielle Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
  • Figurenliste
    • 1 ist ein Diagramm einer Beispielumgebung für die Überwachung der Leistung eines verteilten Speichersystems.
    • 2 ist ein Schwimmbahndiagramm eines Beispielprozesses für die Verarbeitung einer Clientanfrage in einem verteilten Speichersystem.
    • 3 ist ein Schwimmbahndiagramm eines Beispielprozesses für die Überwachung der Leistung in einem verteilten Speichersystem.
    • 4 ist ein Ablaufdiagramm eines Beispielprozesses für die Überwachung der Leistung in einem verteilten Speichersystem.
    • 5 ist ein Diagramm von Computergeräten, die zur Implementierung der in diesem Dokument beschriebenen Systeme und Verfahren verwendet werden können.
  • Entsprechende Referenznummern und Kennzeichnungen in den verschiedenen Zeichnungen zeigen entsprechende Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In einem verteilten Speichersystem gibt es viele Faktoren, die die Systemleistung beeinflussen können. Zum Beispiel können Clients über ein öffentliches Netzwerk wie das Internet auf das System zugreifen. In einem solchen Fall können Leistungsprobleme irgendwo im öffentlichen Netzwerk die Leistung des verteilten Speichersystems aus der Perspektive des jeweiligen Clients beeinflussen. Probleme mit dem verteilten Speichersystem selbst, z. B. Hardwareausfälle, Ausfälle interner Netzwerke, Software-Bugs oder andere Probleme, können ebenfalls die vom Client wahrgenommene Leistung des Systems beeinflussen.
  • In manchen Fällen kann die Beziehung zwischen dem verteilten Speichersystem und seinen Clients einem Service Level Agreement (SLA) unterliegen. Ein SLA beinhaltet im Allgemeinen Leistungsziele, die der Anbieter des verteilten Speichersystems bei der Erfüllung von Clientanfragen vereinbart hat. Ein SLA kann zum Beispiel angeben, dass der Anbieter des verteilten Speichersystems bei der Verarbeitung einer Anfrage eine Latenz von nicht mehr als 10 ms garantiert. In manchen Fällen kann das SLA Maßnahmen beinhalten, die ergriffen werden, wenn das Leistungsziel nicht erfüllt wird, z. B: dass der Anbieter Rückerstattungen an Kunden ausstellt. Solche Vereinbarungen können außerdem Bestimmungen beinhalten, dass der Anbieter des verteilten Speichersystems für Leistungsprobleme, die sich außerhalb seiner Kontrolle ergeben (z. B. Ausfälle öffentlicher Netzwerke, Ausfälle von Kundennetzwerken, Probleme mit Kundengeräten), nicht verantwortlich ist.
  • Auch in Fällen, in denen kein SLA vorhanden ist, kann es sein, dass ein Anbieter eines verteilten Speichersystems den Zustand des Systems auf eine Weise überwachen möchte, die nicht störend ist und die die Leistung das Systems bei der Erfüllung von Anfragen für Clients nicht beeinflusst.
  • Demgemäß beschreibt die vorliegende Offenbarung Techniken für die Überwachung der Leistung in einem verteilten Datenbanksystem durch Profilierung von Clientanfragen. Ein Beispielverfahren beinhaltet die Identifizierung von Anfragen, die von Clients an das verteilte Speichersystem gesendet werden. Diese Anfragen können Anfrageparameter beinhalten, z. B. einen Anfragetyp, Gleichzeitigkeitsparameter und ein Anfrageziel, das die Daten angibt, die die Anfrage betrifft. In manchen Fällen können Anfragen auf Basis von Informationen identifiziert werden, die von Clients des verteilten Speichersystems gesendet werden. Auf Basis dieser identifizierten Anfragen werden Sondierungsanfragen erzeugt, die Sondierungsanfrageparameter beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in der identifizierten Anfrage enthalten sind. Die erzeugten Sondierungsanfragen werden an das verteilte Speichersystem gesendet, das durch Durchführung von Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage antwortet, aber nicht tatsächlich auf die Daten zugreift, die durch das Anfrageziel angegeben werden. Zum Beispiel kann das verteilte Speichersystem als Antwort auf eine Sondierungsanfrage mit einem Anfragetyp „lesen“ Vorbereitungen für das Lesen der Daten treffen, die durch das Anfrageziel angegeben werden (z. B. Suchen der Daten, Stellen der Anfrage in die Warteschlange usw.), kann aber ein mit den Daten verbundenes Feld lesen, auf das der Client nicht zugreifen kann. Dies ermöglicht eine sorgfältige Profilierung des Systems, ohne die Verarbeitung normaler Clientanfragen zu stören. Wenn Antworten auf die Sondierungsanfragen vom verteilten Speichersystem empfangen werden, können Leistungsmetriken berechnet werden.
  • In manchen Fällen kann der Prozess von dem Computergerät durchgeführt werden, das sich an einem gemeinsamen Ort mit dem Speichersystem (z. B. im selben internen Netzwerk) befindet, um die Leistung des verteilten Speichersystems allein zu messen, sodass Probleme außerhalb der Kontrolle des Anbieters (z. B. Ausfälle öffentlicher Netzwerke) durch den Prozess nicht angegeben werden.
  • Die hierin beschriebenen Techniken können die folgenden Vorteile bereitstellen. Durch Profilierung tatsächlicher Clientanfragen zur Erzeugung von Sondierungsanfragen ermöglicht die vorliegende Technik die Überwachung eines verteilten Speichersystems mithilfe einer Annäherung von Clientanfragen, die zurzeit vom verteilten Speichersystem erfüllt werden. Außerdem kann durch Überwachung des Zustands des verteilten Speichersystems, ohne auf Daten zuzugreifen, die für Clients zugänglich sind, die Leistungsauswirkung einer solchen Überwachung auf tatsächliche Clientanfragen minimiert werden. Des Weiteren kann durch Überwachung des verteilten Speichersystems isoliert von anderen Faktoren außerhalb der Kontrolle des Systemanbieters eine genauere Sicht der echten Leistung des Systems erhalten werden, worin die echte Leistung die durchgängige Leistung beinhaltet, die ein Client beim Anfordern von Service vom verteilten Speichersystem wahrnimmt, z. B. in Bezug auf die Latenz. Solche Informationen können bei der Ermittlung der Einhaltung eines SLA nützlich sein. Die Techniken können außerdem statistische Informationen über die Verteilung der Kundenanfragen selbst bereitstellen (z. B. ob ein bestimmtes Datenelement beliebter ist als andere), was den Anbieter und den Kunden darüber informieren kann, ob die Arbeitslast angepasst werden sollte (z. B. um Hotspots zu vermeiden). Außerdem ermöglicht die Technik die Profilierung verschiedener Aspekte des verteilten Speichersystems, z. B. Warteschlangenzeit, tatsächliche Verarbeitungszeit, Serverstandortzeit, zusammen mit der aktuellen CPU- und Speichernutzung des Servers, Warteschlangenlänge und anderen Metriken. Des Weiteren können die Techniken eine einfachere Verwaltung der SLA/SLO-Einhaltung ermöglichen, da die Profilierung komplett durch den Anbieter des verteilten Speichersystems kontrolliert wird.
  • 1 ist ein Diagramm einer Beispielumgebung für die Überwachung der Leistung eines verteilten Datenbanksystems. Wie dargestellt beinhaltet die Umgebung 100 ein verteiltes Speichersystem 110 mit einer Vielzahl von Servern 112, die jeweils eine Vielzahl von Datengruppen 114 verwalten. Im Betrieb senden Clients 120 eine Anfrage 122 an das verteilte Speichersystem 110. Das verteilte Speichersystem 110 verarbeitet die Anfrage 122 und sendet Antworten 124 an die Clients 120. Die Clients 120 senden Anfrageinformationen 126 an einen Sondierer 130. Diese Anfrageinformationen 126 beinhalten Informationen über die Anfragen, die von einem bestimmten Client 120 an das verteilte Speichersystem 110 gesendet wurden, z. B. den Anfragetyp, die Anfrageparameter und das Anfrageziel der jeweiligen Anfrage. Der Sondierer 130 empfängt die Anfrageinformationen 126 und sendet auf Basis der Anfrageinformationen 126 Sondierungsanfragen 132 an das verteilte Speichersystem 110. Das verteilte Speichersystem 110 verarbeitet die Sondierungsanfragen und gibt Antworten 134 an das Programm 130 zurück. Der Sondierer 130 analysiert die Antworten und gibt Leistungsmetriken 140 aus, die die aktuelle Leistung des verteilten Speichersystems 110, bestimmter Server 112 im verteilten Speichersystem 110, bestimmter Datengruppen 114 im verteilten Speichersystem 110 oder die aktuelle Leistung anderer Komponenten im verteilten Speichersystem 110 angeben.
  • Das verteilte Speichersystem 110 kann ein verteiltes System mit einer Vielzahl von Servern sein 112, die durch ein lokales oder privates Netzwerk (nicht dargestellt) verbunden sind. In manchen Fällen kann das lokale oder private Netzwerk sich komplett in einer einzigen Betriebsstätte befinden, während in anderen Fällen das lokale oder private Netzwerk einen größeren Bereich abdecken und mehrere Betriebsstätten miteinander verbinden kann. Die Server 112 können miteinander kommunizieren, um die Clientanfrage 122 zu erfüllen, indem sie die von Clients 120 angeforderten Daten speichern, abrufen und aktualisieren. In manchen Fällen kann das verteilte Speichersystem 110 eine verteilte Datenbank, ein verteiltes Dateisystem oder eine andere Art von verteiltem Speicher sein. Das verteilte Speichersystem 110 kann auch Komponenten zur Verwaltung und Organisation der Operationen der Server 112 im System beinhalten.
  • Im verteilten Speichersystem 110 kann jeder Server 112 ein Computer mit einem Prozessor und einem Speichergerät, z. B. einer Festplatte für das Speichern von Daten, die vom verteilten Speichersystem 110 verwaltet werden, sein. In manchen Fällen können Daten an die verschiedenen Server 112 gemäß der Verteilungsrichtlinie verteilt werden. Zum Beispiel kann eine Verteilungsrichtlinie angeben, dass eine bestimmte Tabelle oder Datei im verteilten Speichersystem 110 auf einer bestimmten Anzahl von Servern 112 gespeichert werden muss, um die Redundanz aufrechtzuerhalten. Die Verteilungsrichtlinie kann außerdem angeben, dass Daten an mehreren verschiedenen Orten gespeichert werden müssen, um die geografische Redundanz aufrechtzuerhalten. In manchen Fällen kann der Server 112 ein externes Speichergerät oder -system, z. B. ein verteiltes Dateisystem, statt eines direkt verbundenen persistenten Speichers nutzen.
  • Jeder der Server 112 verwaltet eine oder mehrere Datengruppen 114. Die Datengruppen 114 können den gesamten Datensatz beinhalten, der vom verteilten Speichersystem 110 verwaltet wird. Jede Datengruppe 114 kann Daten aus einem Teil einer Tabelle in einer verteilten Datenbank, eine oder mehrere Dateien von einem verteilten Dateisystem oder andere Teile von Daten im verteilten Speichersystem 110 darstellen/enthalten. Im Betrieb kann jede Anfrage 122 und Sondierungsanfrage 132 durch das verteilte Speichersystem 110 analysiert werden, um auf Basis des Anfrageziels die bestimmte Datengruppe 114 zu ermitteln, zu der die Anfrage oder Sondierungsanfrage gehört. Das verteilte Speichersystem kann dann die Anfrage oder Sondierungsanfrage zu einem bestimmten Server 112 leiten, der die bestimmte Datengruppe 114 verwaltet.
  • In manchen Fällen können die Clients 120 Benutzer des verteilten Speichersystems 110 sein. Die Clients 120 können auch Entitäten (z. B. Websites oder Anwendungen) sein, die das verteilte Speichersystem 110 zum Speichern und Abrufen von Daten verwenden. Jeder der Clients 120 kann Informationen über die jeweilige Anfrage 122 aufzeichnen, die er zum verteilten Speichersystem 110 sendet. In manchen Fällen kann jeder Client 120 Aufzeichnungen der gesamten Anfrage, wie zum verteilten Speichersystem 110 gesendet, speichern. Jeder Client kann außerdem eine Zusammenfassung der Anfrage 122, die an das verteilte Speichersystem gesendet wurde, speichern, er kann z. B. eine Zahl von Anfragen speichern, die mit demselben Satz an Anfrageparametern gesendet wurden. Der Client 120 kann zum Beispiel die Tatsache aufzeichnen, dass fünf Anfragen mit dem Anfragetyp „lesen“, ein Gleichzeitigkeitsparameter „schwach“ und ein Anfrageziel der Tabelle mit Namen „Kunden“ gesendet wurden. Diese Anfrageinformationen 126 können zum Beispiel in regelmäßigen Intervallen von jedem Client 120 an den Sondierer 130 gesendet werden. Die Anfrageinformationen 126 können von den Clients 120 über ein öffentliches Netzwerk, z. B. das Internet, an den Sondierer 130 gesendet werden. In manchen Fällen können die Anfrageinformationen 126 durch einen Softwareprozess oder eine Bibliothek gesammelt werden, die auf dem Client läuft und Informationen über Anfragen sammelt, die vom Client gesendet werden. In manchen Fällen kann die Softwarebibliothek vom Anbieter des verteilten Speichersystems bereitgestellt werden.
  • Der Sondierer 130 kann die von den Clients 120 empfangenen Anfrageinformationen analysieren und ein Sondierungsprofil erzeugen, das eine statistische Annäherung der Anfragen darstellt, die durch die Anfrageinformationen 126 beschrieben werden. Der Sondierer 130 kann zum Beispiel Anfrageinformationen 126 analysieren, die 10.000 Anfragen des Typs „lesen“ und 5.000 Anfragen des Typs „schreiben“ beinhalten, und ein Sondierungsprofil erzeugen, das angibt, dass 1.000 Sondierungsanfragen des Typs „lesen“ und 500 Sondierungsanfragen des Typs „schreiben“ gesendet werden sollen, um die Leistung des verteilten Systems bei der Verarbeitung der ursprünglichen Anfrage 122 zu emulieren und zu ermitteln. In manchen Fällen kann der Sondierer 130 eine Anzahl von zu erzeugenden Sondierungsanfragen 132 so auswählen, dass die Anzahl groß genug ist, um für die Anfrage 122 repräsentativ zu sein, die von den Clients 120 gesendet wird, aber klein genug, um minimale Auswirkung auf die Leistung des verteilten Speichersystems 110 zu haben.
  • Auf Basis des Sondierungsprofils sendet der Sondierer 130 die Sondierungsanfrage 132 an das verteilte Speichersystem 110. In manchen Fällen können die Sondierungsanfrage 132 im Format mit den Anfragen 122 identisch sein, die von Clients 120 gesendet werden, können aber einen Hinweis enthalten, dass sie Sondierungsanfragen und keine Anfragen von Clients 120 sind. Das verteilte Speichersystem 110 kann Sondierungsanfragen 132 empfangen und sie auf dieselbe Weise verarbeiten wie die Clientanfragen 122, außer dass das verteile Speichersystem nicht auf die tatsächlichen Daten zugreifen kann, die vom Anfrageziel jeder Sondierungsanfrage angegeben wird. In manchen Fällen kann das verteilte Speichersystem 110 stattdessen auf Daten zugreifen, die speziell für den Sondierer 130 zugewiesen sind, z. B. ein spezielles Feld, eine Spalte oder ein Metadatenwert oder ein anderer Wert, der mit den Daten verbunden ist, die vom Anfrageziel angegeben werden. So kann die Leistung mehrerer Aspekte des verteilten Speichersystems 110 profiliert werden, ohne die Verarbeitung von Clientanfragen 122 zu stören. Zum Beispiel können Sondierungsanfragen, die Gleichzeitigkeitsparameter beinhalten, die die Platzierung einer Sperre für die angeforderten Daten veranlassen würden, stattdessen veranlassen, dass das verteilte Speichersystem 110 eine Sperre für die sondiererspezifischen Daten platziert, um die Verarbeitung der Clientanfrage nicht zu stören. Eine solche Funktionalität ermöglicht die Profilierung der Gleichzeitigkeitsmerkmale des verteilten Speichersystems 110, ohne die Verarbeitung von Clientanfragen zu beeinflussen.
  • Wie dargestellt, produziert der Sondierer 130 eine oder mehrere Leistungsmetriken 140 auf Basis der gesendeten Sondierungsanfrage 132 und der empfangenen Antworten 134. In manchen Fällen können die Leistungsmetriken die gesamte Systemlatenz beinhalten, wie durch die durchschnittliche Zeit gemessen, die das verteilte Speichersystem 110 für die Beantwortung einer Sondierungsanfrage braucht. Die Leistungsmetriken können außerdem die Verfügbarkeit beinhalten, wie durch das Verhältnis fehlgeschlagener Sondierungsanfragen zu erfolgreichen Sondierungsanfragen gemessen. Die Leistungsmetriken können außerdem lokale Netzwerklatenz, Serverwarteschlangenlatenz (z. B. die durchschnittliche Zeit, die jede Sondierungsanfrage 132 vor Verarbeitung am Server wartet), Datenträger- oder Speicherlatenz oder andere Leistungsmetriken beinhalten.
  • 2 ist ein Schwimmbahndiagramm eines Beispielprozesses für die Verarbeitung einer Clientanfrage im verteilten Speichersystem. In diesem 205 sendet der Client 120 eine Anfrage zum verteilten Speichersystem 110. Bei 210 trifft das verteilte Speichersystem 110 Vorbereitungen für die Erfüllung der Anfrage. Die vom verteilten Speichersystem 110 getroffenen Vorbereitungen können zum Beispiel die Analyse der Anfrage, die Ermittlung eines bestimmten Servers, der die angeforderten Daten speichert, das Senden der Anfrage an den bestimmten Server, das Erzeugen eines Ausführungsplans für die bestimmte Anfrage (z. B. Ermittlung, auf welche Tabellen zugegriffen wird und wie die Daten zur Erfüllung der Anfrage manipuliert werden) oder andere Operationen beinhalten. Bei 215 greift das verteilte Speichersystem 110 auf die Daten zu, die von der jeweiligen Anfrage angegeben werden. Dies erfolgt im Gegensatz zur Handhabung von Sondierungsanfragen durch das verteilte Speichersystem 110, da auf die durch die Anfragen angegebenen Daten nicht zugegriffen wird (wie unten beschrieben). Bei 220 sendet das verteilte Speichersystem 110 eine Antwort auf die Anfrage an den Client. Wenn der Client zum Beispiel das Lesen bestimmter Daten aus dem verteilten Speichersystem 110 angefordert hat, kann die Antwort die angeforderten Daten beinhalten.
  • 3 ist ein Schwimmbahndiagramm eines Beispielprozesses für die Überwachung der Leistung in einem verteilten Datenbanksystem. Bei 305 sendet der Client 120 Anfragen an das verteilte Speichersystem 110, das mit Antworten auf die Anfragen bei 310 reagiert. Bei 315 stellte der Client 120 Informationen über die gesendete Anfrage für den Sondierer 130 bereit. Bei 320 erzeugt der Sondierer 130 ein Sondierungsprofil auf Basis von Informationen über die vom Client gesendeten Anfragen. In manchen Fällen kann der Sondierer Informationen über gesendete Anfragen von mehreren Clients empfangen und das Sondierungsprofil auf Basis dieser Informationen erzeugen. Bei 325 sendet der Sondierer 130 Sondierungsanfragen auf Basis des Sondierungsprofils zum verteilten Speichersystem 110. Bei 330 trifft das verteilte Speichersystem 110 Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage. Bei 335 greift das verteilte Speichersystem 110 auf sondierungsspezifische Metadaten zu, die mit den Daten verbunden sind, die durch das Anfrageziel der jeweiligen Sondierungsanfrage angegeben werden. Bei 340 sendet das verteilte Speichersystem 110 Antworten auf die Sondierungsanfragen an den Sondierer 130. Bei 345 berechnet der Sondierer Leistungsmetriken auf Basis der Antworten auf die Sondierungsanfragen.
  • 4 ist ein Ablaufdiagramm eines Beispielprozesses für die Überwachung der Leistung in einem verteilten Datenbanksystem. Bei 405 werden Anfragen, die von Clients an das verteilte Speichersystem gesendet werden, identifiziert, wobei jede Anfrage Anfrageparameter beinhaltet. In manchen Fällen beinhalten die Anfrageparameter einen Anfragetyp, Gleichzeitigkeitsparameter und ein Anfrageziel, das Daten im verteilten Speichersystem angibt, zu denen die Anfrage gehört.
  • Bei 410 werden Sondierungsanfragen auf Basis der identifizierten Anfragen erzeugt. Die Sondierungsanfragen beinhalten Sondierungsanfrageparameter, die eine statistische Probe der Anfrageparameter darstellen, die in der identifizierten Anfrage enthalten sind. In manchen Fällen beinhaltet die Erzeugung der Sondierungsanfragen das Erzeugen einer Anzahl von Sondierungsanfragen, die kleiner ist als die Anzahl der identifizierten Anfragen. Die Erzeugung der Sondierungsanfragen kann die Erzeugung einer Anzahl von Sondierungsanfragen mit einem bestimmten Anfragetyp, bestimmten Anfrageparametern und einem bestimmten Anfrageziel beinhalten, die proportional zur Anzahl identifizierter Anfragen mit dem bestimmten Anfragetyp, den bestimmten Gleichzeitigkeitsparametern und dem bestimmten Anfrageziel ist.
  • Bei 415 werden die erzeugten Sondierungsanfragen über ein Netzwerk an das verteilte Speichersystem gesendet. Das verteilte Speichersystem ist so konfiguriert, dass es Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfragen als Reaktion auf den Empfang der Sondierungsanfrage durchführt. In manchen Fällen ist das verteilte Speichersystem so konfiguriert, dass es keine Daten, die für Clients zugänglich sind, liest oder schreibt, wenn es die Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage als Reaktion auf den Empfang der Sondierungsanfrage durchführt. In einigen Implementierungen beinhalten die Daten im verteilten Speichersystem ein Sondierungsfeld, auf das von Clients nicht zugegriffen werden kann, worin das verteilte Speichersystem so konfiguriert ist, dass es auf das Sondierungsfeld, das mit einem Anfrageziel in einer Sondierungsanfrage verbunden ist, als Reaktion auf den Empfang der Sondierungsanfrage zugreift.
  • Bei 420 werden Antworten auf die Sondierungsanfragen vom verteilten Speichersystem empfangen. Bei 425 wird mindestens eine Leistungsmetrik für das verteilte Speichersystem auf Basis der empfangenen Antworten ausgegeben. In manchen Fällen beinhaltet das Ausgeben mindestens einer Leistungsmetrik das Ausgeben eines gewichteten Durchschnitts der mindestens eine Leistungsmetrik für eine bestimmte Datengruppe des verteilten Speichersystems auf Basis der Antworten auf Sondierungsanfragen mit Anfragezielen, die Daten in der bestimmten Datengruppe identifizieren. Die mindestens eine Leistungsmetrik kann mindestens eines der folgenden Elemente beinhalten: Verfügbarkeit, Datenträgerlatenz, Warteschlangenlatenz, Anfragevorbereitungslatenz oder interne Netzwerklatenz. In manchen Fällen können die Leistungsmetriken gewichtete Durchschnitte beinhalten, wobei die in der Berechnung verwendeten Gewichte aus der Anfrageinformation 126 abgeleitet werden. Wenn es zum Beispiel 10 Mal so viel Anfragen für schwache Gleichzeitigkeit wie für starke Gleichzeitigkeit gibt, können die Leistungsdaten in den nachfolgenden Leistungsmetriken für Sondierungsanfragen für schwache Gleichzeitigkeit 10 Mal so schwer wie für Sondierungen für starke Gleichzeitigkeit sein.
  • In manchen Fällen beinhaltet der Prozess 400 das Vergleichen der mindestens eine Leistungsmetrik mit einem Service-Level-Ziel (service level objective, SLO) mit einem Zielwert für die mindestens eine Leistungsmetrik für das verteilte Speichersystem. Das SLO kann in einem Service Level Agreement (SLA) für das verteilte Speichersystem enthalten sein. Der Prozess 400 kann außerdem die Ermittlung beinhalten, dass die mindestens eine Leistungsmetrik den Zielwert nicht erfüllt, und das Ausgeben eines Hinweises, dass die mindestens eine Leistungsmetrik den Zielwert nicht erfüllt.
  • 5 ist ein Blockdiagramm der Computergeräte 500, 550, die zur Implementierung der hierin beschriebenen Systeme und Verfahren benutzt werden können, entweder als Client oder als Server oder als eine Vielzahl von Servern. Das Computergerät 500 ist zur Darstellung verschiedener Formen von Digitalcomputern vorgesehen, wie Laptops, Desktops, Workstations, Personal Digital Assistants, Server, Blade-Server, Mainframes und andere geeignete Computer. Das Computergerät 550 soll verschiedene Formen mobiler Geräte repräsentieren, wie Personal Digital Assistants, Mobiltelefone, Smartphones und andere ähnliche Computergeräte. Zusätzlich können die Computer 500 oder 550 ebenfalls USB (Universal Serial Bus)-Laufwerke beinhalten. Die USB-Speichermedien können Betriebssysteme und andere Anwendungen speichern. Die USB-Flashlaufwerke können Eingabe-/Ausgabekomponenten, wie z. B. einen Funksender oder USB-Anschluss enthalten, der an einen USB-Anschluss eines anderen Computers eingesteckt werden kann. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur exemplarisch sein und sollen Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen nicht einschränken.
  • Computergerät 500 beinhaltet einen Prozessor 502, einen Speicher 504, ein Speichergerät 506, eine High-Speed-Schnittstelle 508, die sich mit Speicher 504 und High-Speed-Erweiterungsanschlüssen 510 verbindet, und eine Low-Speed-Schnittstelle 512, die sich mit dem 514 und Speichergerät 506 verbindet. Jede der Komponenten 502, 504, 506, 508, 510 und 512 sind unter Verwendung verschiedener Busse miteinander verbunden und können auf einer gängigen Hauptplatine oder gegebenenfalls in anderer Weise angebracht sein. Der Prozessor 502 kann Anweisungen zur Ausführung innerhalb des Computergeräts 500 verarbeiten, die Anweisungen beinhalten, die in dem Speicher 504 oder auf dem Speichergerät 506 gespeichert sind, um grafische Informationen für ein GUI auf einer externen Eingabe-/Ausgabevorrichtung, wie Anzeige 516, die mit High-Speed-Schnittstelle 508 verbunden ist, anzuzeigen. In anderen Implementierungen können mehrere Prozessoren und/oder mehrere Busse, wie angemessen, zusammen mit mehreren Speichern und Speichertypen verwendet werden. Es können auch mehrere Computergeräte 500 verbunden sein, wobei jedes Gerät Teile der notwendigen Operationen bereitstellt (z. B. als eine Serverbank, eine Gruppe von Blade-Servern oder ein Mehrprozessorsystem).
  • Der Speicher 504 speichert Informationen innerhalb des Computergeräts 500. In einer Implementierung ist der Speicher 504 eine oder mehrere flüchtige Speichereinheiten. In anderen Implementierungen ist der Speicher 504 eine oder mehrere nicht flüchtige Speichereinheiten. Der Speicher 504 kann auch eine andere Form von computerlesbarem Medium sein, zum Beispiel ein magnetischer oder optischer Datenträger.
  • Das Speichergerät 506 ist in der Lage, Massenspeicher für die Computergerät 500 bereitzustellen. In einer Implementierung kann das Speichergerät 506 ein computerlesbares Medium sein oder beinhalten, wie ein Diskettenlaufwerk, ein Festplattenlaufwerk, ein optisches Datenträgergerät, ein Magnetbandlaufwerk, ein Flash-Speicher oder anderes ähnliches Solid-State-Speichergerät oder eine Reihe anderer Geräte, einschließlich Geräte in einem Speichernetzwerk oder anderen Konfigurationen. Ein Computerprogrammprodukt kann konkret in einem Informationsträger ausgeführt sein. Das Computerprogrammprodukt kann auch Anweisungen enthalten, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren wie die oben beschriebenen durchführen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium wie der Speicher 504, das Speichergerät 506 oder Speicher auf einem Prozessor 502.
  • Der High-Speed-Controller 508 verwaltet bandbreitenintensive Operationen für das Computergerät 500, während der Low-Speed-Controller 512 weniger bandbreitenintensive Operationen verwaltet. Eine solche Zuordnung von Funktionen ist nur exemplarisch. In einer Ausführungsform ist der High-Speed-Controller 508 mit Speicher 504, Display 516 (z. B. über einen Grafikprozessor oder -beschleuniger) und mit High-Speed-Erweiterungsanschlüssen 510 gekoppelt, die verschiedene Erweiterungskarten aufnehmen können (nicht dargestellt). In der Implementierung ist Low-Speed-Controller 512 mit Speichergerät 506 und Low-Speed-Erweiterungsanschluss 514 gekoppelt. Der langsame Erweiterungsanschluss, der verschiedene Kommunikationsanschlüsse (z. B. USB, B, Ethernet, Funkethernet) beinhalten kann, kann an ein oder mehrere Eingabe-/Ausgabevorrichtungen, wie eine Tastatur, ein Zeigegerät, einen Scanner oder ein Netzwerkgerät, wie einen Switch oder Router, z. B. durch einen Netzwerkadapter gekoppelt sein.
  • Das Computergerät 500 kann in einer Reihe unterschiedlicher Formen implementiert sein, wie in der Figur dargestellt. So kann es beispielsweise als ein Standardserver 520 oder mehrfach in einer Gruppe solcher Server implementiert sein. Es kann außerdem als Teil eines Rack-Serversystems 524 implementiert sein. Zusätzlich kann es in einem Personal Computer wie einem Laptop-Computer 522 implementiert sein. Alternativ können Komponenten von Computergerät 500 mit anderen Komponenten in einem mobilen Gerät kombiniert sein (nicht dargestellt), z. B. Gerät 550. Jedes dieser Geräte kann ein oder mehrere von Computergeräte 500, 550 enthalten und ein gesamtes System kann aus mehreren Computergeräten 500, 550, die miteinander kommunizieren, zusammengesetzt sein.
  • Computergerät 550 beinhaltet neben anderen Komponenten einen Prozessor 552, einen Speicher 564, eine Eingabe-/Ausgabevorrichtung wie eine Anzeige 554, eine Kommunikationsschnittstelle 566 und einen Sender-Empfänger 568. Das Gerät 550 kann ebenfalls mit einem Speichergerät z. B. einem Microdrive oder einem anderen Gerät ausgestattet werden, um zusätzlichen Speicher bereitzustellen. Jede der Komponenten 550, 552, 564, 554, 566 und 568 sind unter Verwendung verschiedener Busse miteinander verbunden und mehrere der Komponenten können auf einer gängigen Hauptplatine oder gegebenenfalls in anderer Weise angebracht sein.
  • Der Prozessor 552 kann Anweisungen im Computergerät 550 ausführen, einschließlich im Speicher 564 gespeicherter Anweisungen. Der Prozessor kann als ein Chipsatz von Chips implementiert werden, die separate und mehrere analoge und digitale Prozessoren beinhalten. Zusätzlich dazu kann der Prozessor mit einer beliebigen Anzahl von Architekturen implementiert werden. So kann der Prozessor 510 beispielsweise ein CISC-Prozessor (Complex Instruction Set Computers), ein RISC-Prozessor (Reduced Instruction Set Computer) oder ein MISC-Prozessor (Minimal Instruction Set Computer) sein. Der Prozessor kann beispielsweise zur Koordinierung der anderen Komponenten des Geräts 550, wie etwa Steuerung von Benutzeroberflächen, Anwendungen, die vom Gerät 550 ausgeführt werden, und drahtlose Kommunikation durch Gerät 550 bereitstellen.
  • Prozessor 552 kann mit einem Benutzer über Steuerschnittstelle 558 und Anzeigeschnittstelle 556, die mit einer Anzeige 554 verbunden ist, kommunizieren. Das Display 554 kann beispielsweise ein TFT-Display (Thin-Film-Transistor Liquid Crystal Display) oder ein OLED-Display (Organic Light Emitting Diode) oder eine andere geeignete Displaytechnologie sein. Die Anzeigeschnittstelle 556 kann eine angemessene Schaltung als Treiber der Anzeige 554 umfassen, um einem Benutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 558 kann Befehle von einem Benutzer empfangen und sie zur Abgabe an den Prozessor 552 konvertieren. Zusätzlich kann eine externe Schnittstelle 562 in Verbindung mit Prozessor 552 bereitgestellt sein, um Nahbereichskommunikation von Gerät 550 mit anderen Geräten zu ermöglichen. Die externe Schnittstelle 562 kann beispielsweise in manchen Implementierungen eine drahtgestützte Verbindung oder in anderen Implementierungen eine drahtlose Verbindung aufbauen, und es können auch mehrere Schnittstellen zur Anwendung kommen.
  • Der Speicher 564 speichert Informationen innerhalb des Computergeräts 550. Der Speicher 564 kann als ein computerlesbares Medium bzw. als eines von mehreren computerlesbaren Medien, als flüchtiger Speicher bzw. als flüchtige Speicher oder als ein nicht-flüchtiger Speicher bzw. als nicht-flüchtige Speicher implementiert werden. Erweiterungsspeicher 574 kann ebenfalls bereitgestellt und mit dem Gerät 550 über Erweiterungsschnittstelle 572 verbunden werden, die zum Beispiel eine SIMM (Single In Line Memory Module)-Kartenschnittstelle umfassen kann. Ein solcher Erweiterungsspeicher 574 kann zusätzlichen Speicherplatz für Gerät 550 bereitstellen oder kann auch Anwendungen oder andere Informationen für Gerät 550 speichern. Insbesondere kann Erweiterungsspeicher 574 Anweisungen zum Ausführen oder Ergänzen der oben beschriebenen Prozesse enthalten und er kann außerdem sichere Informationen enthalten. Demnach kann Erweiterungsspeicher 574 beispielsweise als ein Sicherheitsmodul für Gerät 550 bereitgestellt sein und kann mit Anweisungen programmiert sein, die eine sichere Benutzung von Gerät 550 ermöglichen. Zusätzlich dazu können über die SIMM-Karten sichere Anwendungen bereitgestellt werden, zusammen mit zusätzlichen Informationen, wie dem Ablegen von Identifizierungsinformationen auf der SIMM-Karte auf eine Weise, die nicht gehackt werden kann.
  • Der Speicher kann zum Beispiel Flashspeicher und/oder NVRAM-Speicher beinhalten, wie unten besprochen. In einer Implementierung ist ein Computerprogrammprodukt greifbar in einem Informationsträger ausgeführt. Das Computerprogrammprodukt enthält Anweisungen, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren wie die oben beschriebenen durchführen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium, wie der Speicher 564, die Speichererweiterung 574 oder der Prozessorspeicher 552, das beispielsweise über den Sender-Empfänger 568 oder die externe Schnittstelle 562 empfangen werden kann.
  • Gerät 550 kann über Kommunikationsschnittstelle 566, die bei Bedarf eine digitale Signalverarbeitungsschaltung beinhalten kann, drahtlos kommunizieren. Die Verbindungsschnittstelle 566 kann Verbindungen mit verschiedenen Kommunikationstypen oder -protokollen aufbauen, darunter GSM-Sprachanrufe, SMS, EMS, oder MMS-Messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 oder GPRS unter anderen. Solche Kommunikation kann beispielsweise durch Funkfrequenz-Sender-Empfänger 568 stattfinden. Zusätzlich kann eine Kurzstreckenkommunikation stattfinden, wie unter Verwendung eines Bluetooth-, WLAN- oder anderen solchen Sende-Empfängern (nicht gezeigt). Außerdem kann GPS (Global Positioning System)-Empfängermodul 570 zusätzliche mit der Navigation und dem Ort verbundene drahtlose Daten für Gerät 550 bereitstellen, die ggf. von Anwendungen verwendet werden können, die auf Gerät 550 ausgeführt werden.
  • Gerät 550 kann ebenfalls unter Verwendung des Audio-Codec 560, der gesprochene Informationen von einem Benutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann, hörbar kommunizieren. Audio-Codec 560 kann ebenfalls akustische Töne für einen Benutzer erzeugen, zum Beispiel durch einen Lautsprecher zum Beispiel in einem Handgerät von Gerät 550. Diese Töne können Töne von Sprachtelefonanrufen beinhalten, können aufgezeichnete Töne (z. B. Sprachnachrichten, Musikdateien usw.) beinhalten und können auch Töne beinhalten, die von laufenden Anwendungen auf Gerät 550 erstellt wurden.
  • Das Computergerät 550 kann in einer Reihe unterschiedlicher Formen implementiert sein, wie in der Figur dargestellt. Zum Beispiel kann es als Mobiltelefon 580 implementiert werden. Er kann ebenfalls als Bestandteil eines Smartphones 582, eines Personal Digital Assistant oder eines ähnlichen mobilen Geräts implementiert sein.
  • Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitaler elektronischer Schaltung, integrierter Schaltung, in speziell konstruierten ASICs (anwendungsspezifische integrierte Schaltungen), in Computer-Hardware, Firmware, Software und/oder Kombinationen davon realisiert werden. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, der ein spezieller Prozessor oder ein Prozessor für allgemeine Zwecke sein kann, und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Anweisungen an ein Speichersystem, mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung gekoppelt ist.
  • Diese Computerprogramme (auch bekannt als Programme, Software, Anwendungen oder Code) enthalten Maschinenanweisungen für einen programmierbaren Prozessor und können in eine hochrangige verfahrens- und/oder objektorientierte Programmiersprache und/oder in eine Montage-/Maschinensprache umgesetzt werden. Wie hier verwendet, bezeichnen die Begriffe „maschinenlesbares Medium“, „computerlesbares Medium“ ein beliebiges Computerprogrammprodukt, eine beliebige Vorrichtung und/oder ein beliebiges Gerät (z. B. Magnetplatten, optische Platten, Speicher, programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenanweisungen als ein maschinenlesbares Signal empfängt. Der Begriff „maschinenlesbares Signal“ bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen.
  • Zur Interaktion mit einem Benutzer können die hier beschriebenen Techniken und Systeme auf einem Computer mit einem Bildschirm (z. B. einem CRT- (Cathode Ray Tube) oder LCD- (Liquid Crystal Display) Monitor) für die Anzeige von Informationen für den Benutzer und mit einer Tastatur und einem Zeigegerät (z. B. einer Maus oder einem Trackball), durch die der Benutzer Eingaben an den Computer weiterleiten kann, implementiert werden. Andere Arten von Geräten können auch verwendet werden, um eine Interaktion mit einem Benutzer bereitzustellen; zum Beispiel kann eine dem Benutzer bereitgestellte Rückmeldung irgendeine Form von Sinnesrückmeldung sein (z. B. visuelle Rückmeldung, auditive Rückmeldung oder Tastrückmeldung); und eine Eingabe vom Benutzer kann in einer beliebigen Form empfangen werden, einschließlich akustischer, Sprach- oder Tasteingaben.
  • Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert werden, das eine Back-End-Komponente beinhaltet (z. B. als Datenserver) oder das eine Middleware-Komponente (z. B. einen Anwendungsserver) beinhaltet oder das eine Front-End-Komponente (z. B. einen Client-Computer, der eine grafische Benutzeroberfläche oder einen Webbrowser aufweist, durch die ein Benutzer mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann) oder eine beliebige Kombination solcher Back-End, Middleware- oder Front-End-Komponenten beinhaltet. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium von digitaler Datenkommunikation (z. B. ein Kommunikationsnetzwerk) miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk (Local Area Network, „LAN“), ein Weitverkehrsnetzwerk (Wide Area Network, „WAN“), Peer-to-Peer-Netze (mit Ad-hoc-Mitgliedern und ständigen Mitgliedern), Netzrechnerinfrastrukturen und das Internet.
  • Das Computersystem kann Client und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben.
  • Weitere Implementierungen sind in den folgenden Beispielen zusammengefasst:
    • Beispiel 1: Ein computerimplementiertes Verfahren, das von einem oder mehreren Prozessoren zur Messung von Leistungsmetriken in einem verteilten Speichersystem ausgeführt wird, das Verfahren umfassend: Identifizierung von Anfragen, die von Clients an das verteilte Speichersystem gesendet werden, wobei jede Anfrage Anfrageparameterwerte für Anfrageparameter enthält; Erzeugung der Sondierungsanfragen auf Basis der identifizierten Anfragen, wobei die Sondierungsanfragen Sondierungsanfragen-Parameterwerte für Sondierungsanfragen-Parameterwerte beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in den identifizierten Anfragen enthalten sind; Senden der erzeugten Sondierungsanfragen an das verteilte Speichersystem über ein Netzwerk, worin das verteilte Speichersystem so konfiguriert ist, dass es Vorbereitungen für die Bedienung jeder Sondierungsanfrage zum Empfangen der Sondierungsanfrage durchführt; Empfangen von Antworten auf die Sondierungsanfragen von dem verteilten Speichersystem und Ausgeben des mindestens einen Leistungsmetrikwerts, der einen aktuellen Leistungszustand des verteilten Speichersystems auf Basis der empfangenen Antworten misst.
    • Beispiel 2: Verfahren nach Beispiel 1, worin die Erzeugung der Sondierungsanfragen das Erzeugen einer Anzahl von Sondierungsanfragen beinhaltet, die kleiner ist als die Anzahl der identifizierten Anfragen.
    • Beispiel 3: Verfahren nach Beispiel 1 oder 2, worin die Anfrageparameter einen Anfragetyp, Gleichzeitigkeitsparameter und ein Anfrageziel beinhalten, das Daten im verteilten Speichersystem angibt, zu denen die Anfrage gehört.
    • Beispiel 4: Verfahren nach Beispiel 3, worin die Erzeugung der Sondierungsanfragen die Erzeugung einer Anzahl von Sondierungsanfragen mit einem bestimmten Anfragetyp, bestimmten Anfrageparametern und einem bestimmten Anfrageziel beinhaltet, die proportional zur Anzahl identifizierter Anfragen mit dem bestimmten Anfragetyp, den bestimmten Gleichzeitigkeitsparametern und dem bestimmten Anfrageziel ist.
    • Beispiel 5: Verfahren nach einem der Beispiele 1 bis 4, worin das Ausgeben mindestens einer Leistungsmetrik das Ausgeben eines gewichteten Durchschnitts der mindestens eine Leistungsmetrik für eine bestimmte Datengruppe des verteilten Speichersystems auf Basis der Antworten auf Sondierungsanfragen mit Anfragezielen, die Daten in der bestimmten Datengruppe identifizieren, beinhaltet.
    • Beispiel 6: Verfahren nach einem der Beispiele 1 bis 5, worin die mindestens eine Leistungsmetrik mindestens eines der folgenden Elemente beinhaltet: Verfügbarkeit, Datenträgerlatenz, Warteschlangenlatenz, Anfragevorbereitungslatenz oder interne Netzwerklatenz.
    • Beispiel 7: Verfahren nach einem der Beispiele 1 bis 6, worin das verteilte Speichersystem so konfiguriert ist, dass es keine Daten, die für Clients zugänglich sind, liest oder schreibt, wenn es die Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage als Reaktion auf den Empfang der Sondierungsanfrage durchführt.
    • Beispiel 8: Verfahren nach einem der Beispiele 1 bis 7, worin die Daten im verteilten Speichersystem ein Sondierungsfeld beinhalten, auf das von Clients nicht zugegriffen werden kann, und worin das verteilte Speichersystem so konfiguriert ist, dass es auf das Sondierungsfeld, das mit einem Anfrageziel in einer Sondierungsanfrage verbunden ist, als Reaktion auf den Empfang der Sondierungsanfrage zugreift.
    • Beispiel 9: Verfahren nach einem der Beispiele 1 bis 8, des Weiteren umfassend das Vergleichen der mindestens eine Leistungsmetrik mit einem Service-Level-Ziel (service level objective, SLO) mit einem Zielwert für die mindestens eine Leistungsmetrik für das verteilte Speichersystem.
    • Beispiel 10: Verfahren nach Beispiel 9, des Weiteren umfassend die Ermittlung, dass die mindestens eine Leistungsmetrik den Zielwert nicht erfüllt, und das Ausgeben eines Hinweises, dass die mindestens eine Leistungsmetrik den Zielwert nicht erfüllt.
    • Beispiel 11: Verfahren nach Beispiel 9 oder 10, worin das Service-Level-Ziel in einem Service Level Agreement (SLA) für das verteilte Speichersystem enthalten ist.
    • Beispiel 12: Verfahren nach einem der Beispiele 1 bis 11, worin die Sondierungsanfragen statistische Darstellungen der identifizierten Anfragen sind.
    • Beispiel 13: Nicht flüchtiges, computerlesbares Speichermedium, auf dem verwendbare Anweisungen gespeichert sind, die bei Ausführung den mindestens einen Prozessor veranlassen, Operationen für die Messung von Leistungsmetriken in einem verteilten Speichersystem durchzuführen, die Operationen umfassend: Identifizierung von Anfragen, die von Clients an das verteilte Speichersystem gesendet werden, wobei jede Anfrage Anfrageparameterwerte enthält; Erzeugung der Sondierungsanfragen auf Basis der identifizierten Anfragen, wobei die Sondierungsanfragen Sondierungsanfrageparameter beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in den identifizierten Anfragen enthalten sind; Senden der erzeugten Sondierungsanfragen an das verteilte Speichersystem über ein Netzwerk, worin das verteilte Speichersystem so konfiguriert ist, dass es Vorbereitungen für die Bedienung jeder Sondierungsanfrage zum Empfangen der Sondierungsanfrage durchführt; Empfangen von Antworten auf die Sondierungsanfragen von dem verteilten Speichersystem und Ausgeben der mindestens einen Leistungsmetrikwert für das verteilte Speichersystem auf Basis der empfangenen Antworten misst.
    • Beispiel 14: Computerlesbares Medium nach Beispiel 13, worin die Erzeugung der Sondierungsanfragen das Erzeugen einer Anzahl von Sondierungsanfragen beinhaltet, die kleiner ist als die Anzahl der identifizierten Anfragen.
    • Beispiel 15: Computerlesbares Medium nach Beispiel 13 oder 14, worin die Anfrageparameter einen Anfragetyp, Gleichzeitigkeitsparameter und ein Anfrageziel beinhalten, das Daten im verteilten Speichersystem angibt, zu denen die Anfrage gehört.
    • Beispiel 16: Computerlesbares Medium nach Beispiel 15, worin die Erzeugung der Sondierungsanfragen die Erzeugung einer Anzahl von Sondierungsanfragen mit einem bestimmten Anfragetyp, bestimmten Anfrageparametern und einem bestimmten Anfrageziel beinhaltet, die proportional zur Anzahl identifizierter Anfragen mit dem bestimmten Anfragetyp, den bestimmten Gleichzeitigkeitsparametern und dem bestimmten Anfrageziel ist.
    • Beispiel 17: Computerlesbares Medium nach einem der Beispiele 13 bis 16, worin das Ausgeben mindestens einer Leistungsmetrik das Ausgeben eines gewichteten Durchschnitts der mindestens eine Leistungsmetrik für eine bestimmte Datengruppe des verteilten Speichersystems auf Basis der Antworten auf Sondierungsanfragen mit Anfragezielen, die Daten in der bestimmten Datengruppe identifizieren, beinhaltet.
    • Beispiel 18: Computerlesbares Medium nach einem der Beispiele 13 bis 17, worin die mindestens eine Leistungsmetrik mindestens eines der folgenden Elemente beinhaltet: Verfügbarkeit, Datenträgerlatenz, Warteschlangenlatenz, Anfragevorbereitungslatenz oder interne Netzwerklatenz.
    • Beispiel 19: Computerlesbares Medium nach einem der Beispiele 13 bis 18, worin das verteilte Speichersystem so konfiguriert ist, dass es keine Daten, die für Clients zugänglich sind, liest oder schreibt, wenn es die Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage als Reaktion auf den Empfang der Sondierungsanfrage durchführt.
    • Beispiel 20: System für das Messen von Leistungsmetriken in einem verteilten Speichersystem, umfassend: Identifizierung von Anfragen, die von Clients an das verteilte Speichersystem gesendet werden, wobei jede Anfrage Anfrageparameterwerte enthält; Erzeugung der Sondierungsanfragen auf Basis der identifizierten Anfragen, wobei die Sondierungsanfragen Sondierungsanfrageparameter beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in den identifizierten Anfragen enthalten sind; Senden der erzeugten Sondierungsanfragen an das verteilte Speichersystem über ein Netzwerk, worin das verteilte Speichersystem so konfiguriert ist, dass es Vorbereitungen für die Bedienung jeder Sondierungsanfrage zum Empfangen der Sondierungsanfrage durchführt; Empfangen von Antworten auf die Sondierungsanfragen von dem verteilten Speichersystem und Ausgeben der mindestens einen Leistungsmetrikwert für das verteilte Speichersystem auf Basis der empfangenen Antworten misst.
  • Obwohl vorstehend mehrere Implementierungen detailliert beschrieben wurden, sind andere Modifikationen möglich. Darüber hinaus erfordern die logischen Abläufe in den Abbildungen nicht unbedingt die abgebildete Reihenfolge oder die sequenzielle Reihenfolge, um die gewünschten Ergebnisse zu erzielen. Es können weitere Schritte zu den beschriebenen Abläufen hinzugefügt oder aus diesen weggelassen werden, und andere Komponenten zu den beschriebenen Systemen hinzugefügt oder von diesen weggelassen werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.

Claims (21)

  1. Beansprucht wird wie folgt:
  2. Computerimplementiertes Verfahren, das von einem oder mehreren Prozessoren ausgeführt wird, für das Messen von Leistungsmetriken in einem verteilten System, das Verfahren umfassend: Identifizierung von Anfragen, die von Clients zum verteilten Speichersystem gesendet werden, wobei jede Anfrage Anfrageparameterwerte für Anfrageparameter beinhaltet; Erzeugung von Sondierungsanfragen auf Basis der identifizierten Anfragen, wobei die Sondierungsanfragen Sondierungsanfrage-Parameterwerte für Sondierungsanfrage-Parameterwerte beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in den identifizierten Anfragen enthalten sind; Senden der erzeugten Sondierungsanfragen an das verteilte Speichersystem über ein Netzwerk, worin das verteilte Speichersystem so konfiguriert ist, dass es Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage als Reaktion auf den Empfang der Sondierungsanfrage durchführt; Empfangen von Antworten auf die Sondierungsanfragen vom verteilten Speichersystem; und Ausgeben mindestens eines Leistungsmetrikwerts, der einen aktuellen Leistungszustand des verteilten Speichersystems auf Basis der empfangenen Antworten misst.
  3. Verfahren nach Anspruch 1, worin die Erzeugung der Sondierungsanfragen das Erzeugen einer Anzahl von Sondierungsanfragen beinhaltet, die kleiner ist als die Anzahl der identifizierten Anfragen.
  4. Verfahren nach Anspruch 1, worin die Anfrageparameter einen Anfragetyp, Gleichzeitigkeitsparameter und ein Anfrageziel beinhalten, das Daten im verteilten Speichersystem angibt, zu denen die Anfrage gehört.
  5. Verfahren nach Anspruch 3, worin die Erzeugung der Sondierungsanfragen die Erzeugung einer Anzahl von Sondierungsanfragen mit einem bestimmten Anfragetyp, bestimmten Anfrageparametern und einem bestimmten Anfrageziel beinhaltet, die proportional zur Anzahl identifizierter Anfragen mit dem bestimmten Anfragetyp, den bestimmten Gleichzeitigkeitsparametern und dem bestimmten Anfrageziel ist.
  6. Verfahren nach Anspruch 3, worin das Ausgeben mindestens einer Leistungsmetrik das Ausgeben eines gewichteten Durchschnitts der mindestens eine Leistungsmetrik für eine bestimmte Datengruppe des verteilten Speichersystems auf Basis der Antworten auf Sondierungsanfragen mit Anfragezielen, die Daten in der bestimmten Datengruppe identifizieren, beinhaltet.
  7. Verfahren nach Anspruch 1, worin die mindestens eine Leistungsmetrik mindestens eines der folgenden Elemente beinhaltet: Verfügbarkeit, Datenträgerlatenz, Warteschlangenlatenz, Anfragevorbereitungslatenz oder interne Netzwerklatenz.
  8. Verfahren nach Anspruch 1, worin das verteilte Speichersystem so konfiguriert ist, dass es keine Daten, die für Clients zugänglich sind, liest oder schreibt, wenn es die Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage als Reaktion auf den Empfang der Sondierungsanfrage durchführt.
  9. Verfahren nach Anspruch 7, worin die Daten im verteilten Speichersystem ein Sondierungsfeld beinhalten, auf das von Clients nicht zugegriffen werden kann, und worin das verteilte Speichersystem so konfiguriert ist, dass es auf das Sondierungsfeld, das mit einem Anfrageziel in einer Sondierungsanfrage verbunden ist, als Reaktion auf den Empfang der Sondierungsanfrage zugreift.
  10. Verfahren nach Anspruch 1, des Weiteren umfassend das Vergleichen der mindestens eine Leistungsmetrik mit einem Service-Level-Ziel (service level objective, SLO) mit einem Zielwert für die mindestens eine Leistungsmetrik für das verteilte Speichersystem.
  11. Verfahren nach Anspruch 9, des Weiteren umfassend: Ermittlung, dass die mindestens eine Leistungsmetrik den Zielwert nicht erfüllt; und Ausgeben eines Hinweises, dass die mindestens eine Leistungsmetrik den Zielwert nicht erfüllt.
  12. Verfahren nach Anspruch 9, worin das Service-Level-Ziel in einem Service Level Agreement (SLA) für das verteilte Speichersystem enthalten ist.
  13. Verfahren nach Anspruch 1, worin die Sondierungsanfragen statistische Darstellungen der identifizierten Anfragen sind.
  14. Ein nicht flüchtiges computerlesbares Medium, auf dem verwendbare Anweisungen gespeichert sind, die bei Ausführung den mindestens einen Prozessor veranlassen, Operationen für die Messung von Leistungsmetriken in einem verteilten Speichersystem durchzuführen, die Operationen umfassend: Identifizierung von Anfragen, die von Clients an das verteilte Speichersystem gesendet werden, wobei jede Anfrage Anfrageparameter beinhaltet; Erzeugung von Sondierungsanfragen auf Basis der identifizierten Anfragen, wobei die Sondierungsanfragen Sondierungsanfrage-Parameterwerte beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in den identifizierten Anfragen enthalten sind; Senden der erzeugten Sondierungsanfragen an das verteilte Speichersystem über ein Netzwerk, worin das verteilte Speichersystem so konfiguriert ist, dass es Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage als Reaktion auf den Empfang der Sondierungsanfrage durchführt; Empfangen von Antworten auf die Sondierungsanfragen vom verteilten Speichersystem; und Ausgeben mindestens eine Leistungsmetrik für das verteilte Speichersystem auf Basis der empfangenen Antworten.
  15. Computerlesbares Medium nach Anspruch 13, worin die Erzeugung der Sondierungsanfragen das Erzeugen einer Anzahl von Sondierungsanfragen beinhaltet, die kleiner ist als die Anzahl der identifizierten Anfragen.
  16. Computerlesbares Medium nach Anspruch 13, worin die Anfrageparameter einen Anfragetyp, Gleichzeitigkeitsparameter und ein Anfrageziel beinhalten, das Daten im verteilten Speichersystem angibt, zu denen die Anfrage gehört.
  17. Computerlesbares Medium nach Anspruch 15, worin die Erzeugung der Sondierungsanfragen die Erzeugung einer Anzahl von Sondierungsanfragen mit einem bestimmten Anfragetyp, bestimmten Anfrageparametern und einem bestimmten Anfrageziel beinhaltet, die proportional zur Anzahl identifizierter Anfragen mit dem bestimmten Anfragetyp, den bestimmten Gleichzeitigkeitsparametern und dem bestimmten Anfrageziel ist.
  18. Computerlesbares Medium nach Anspruch 15, worin das Ausgeben mindestens einer Leistungsmetrik das Ausgeben eines gewichteten Durchschnitts der mindestens eine Leistungsmetrik für eine bestimmte Datengruppe des verteilten Speichersystems auf Basis der Antworten auf Sondierungsanfragen mit Anfragezielen, die Daten in der bestimmten Datengruppe identifizieren, beinhaltet.
  19. Computerlesbares Medium nach Anspruch 13, worin die mindestens eine Leistungsmetrik mindestens eines der folgenden Elemente beinhaltet: Verfügbarkeit, Datenträgerlatenz, Warteschlangenlatenz, Anfragevorbereitungslatenz oder interne Netzwerklatenz.
  20. Computerlesbares Medium nach Anspruch 13, worin das verteilte Speichersystem so konfiguriert ist, dass es keine Daten, die für Clients zugänglich sind, liest oder schreibt, wenn es die Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage als Reaktion auf den Empfang der Sondierungsanfrage durchführt.
  21. System für die Messung von Leistungsmetriken in einem verteilten Speichersystem, umfassend: Speicher zur Speicherung von Daten; und ein oder mehrere Prozessoren, die verwendet werden können, um auf den Speicher zuzugreifen und Operationen durchzuführen, die Folgendes umfassen: Identifizierung von Anfragen, die von Clients an das verteilte Speichersystem gesendet werden, wobei jede Anfrage Anfrageparameter beinhaltet; Erzeugung von Sondierungsanfragen auf Basis der identifizierten Anfragen, wobei die Sondierungsanfragen Sondierungsanfrage-Parameterwerte beinhalten, die eine statistische Probe der Anfrageparameter darstellen, die in den identifizierten Anfragen enthalten sind; Senden der erzeugten Sondierungsanfragen an das verteilte Speichersystem über ein Netzwerk, worin das verteilte Speichersystem so konfiguriert ist, dass es Vorbereitungen für die Erfüllung der jeweiligen Sondierungsanfrage als Reaktion auf den Empfang der Sondierungsanfrage durchführt; Empfangen von Antworten auf die Sondierungsanfragen vom verteilten Speichersystem; und Ausgeben mindestens eine Leistungsmetrik für das verteilte Speichersystem auf Basis der empfangenen Antworten.
DE112016005207.3T 2015-11-13 2016-09-27 Leistungsüberwachung in einem verteilten Speichersystem Pending DE112016005207T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562255316P 2015-11-13 2015-11-13
US62/255,316 2015-11-13
PCT/US2016/053933 WO2017083022A1 (en) 2015-11-13 2016-09-27 Performance monitoring in a distributed storage system

Publications (1)

Publication Number Publication Date
DE112016005207T5 true DE112016005207T5 (de) 2018-08-16

Family

ID=57113778

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202016008054.8U Active DE202016008054U1 (de) 2015-11-13 2016-09-27 Leistungsüberwachung in einem verteilten Speichersystem
DE112016005207.3T Pending DE112016005207T5 (de) 2015-11-13 2016-09-27 Leistungsüberwachung in einem verteilten Speichersystem

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE202016008054.8U Active DE202016008054U1 (de) 2015-11-13 2016-09-27 Leistungsüberwachung in einem verteilten Speichersystem

Country Status (9)

Country Link
US (3) US10686686B2 (de)
EP (2) EP3968159A1 (de)
JP (1) JP6526907B2 (de)
KR (1) KR102110757B1 (de)
CN (2) CN107924337B (de)
AU (1) AU2016351383B2 (de)
DE (2) DE202016008054U1 (de)
GB (1) GB2556772B (de)
WO (1) WO2017083022A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542725B (zh) * 2018-11-15 2022-04-05 北京金山云网络技术有限公司 一种分布式系统的服务质量监控方法、装置及监控服务器
CN110618889A (zh) * 2019-08-14 2019-12-27 网联清算有限公司 服务可用性的探测方法、装置、计算机设备和存储介质
CN110990183B (zh) * 2019-12-04 2022-05-17 腾讯科技(深圳)有限公司 数据库集群的异常检测方法、装置、计算机可读存储介质
CN111290907A (zh) * 2020-01-14 2020-06-16 深圳市网心科技有限公司 分布式存储网络压测方法及装置、计算机装置及存储介质
CN111258870A (zh) * 2020-01-17 2020-06-09 中国建设银行股份有限公司 分布式存储系统的性能分析方法、装置、设备及存储介质
US11570182B1 (en) * 2020-03-30 2023-01-31 Amazon Technologies, Inc. Compute-less authorization
CN111600929B (zh) * 2020-04-07 2023-05-19 厦门网宿有限公司 传输线路探测方法、路由策略生成方法及代理服务器
US11695851B2 (en) * 2020-06-03 2023-07-04 Micron Technology, Inc. Gateway for vehicle with caching buffer for distributed storage system
CN111708677B (zh) * 2020-06-19 2023-07-07 浪潮云信息技术股份公司 一种云计算环境下的云硬盘使用量采集方法
CN112559271B (zh) * 2020-12-24 2023-10-20 北京百度网讯科技有限公司 分布式应用的接口性能监测方法、装置、设备及存储介质
CN113138903B (zh) * 2021-04-28 2024-05-28 北京百度网讯科技有限公司 用于跟踪存储系统的性能的方法和设备
CN113608974B (zh) * 2021-06-29 2023-12-22 济南浪潮数据技术有限公司 一种分布式存储系统的性能压测方法、系统及相关组件
CN115373836A (zh) * 2022-05-09 2022-11-22 华为技术有限公司 计算网络、算力度量方法、调度装置及相关产品

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19813884B4 (de) * 1998-03-30 2008-05-29 International Business Machines Corp. System und Verfahren zur Ermittlung und Darstellung von verbindungsbezogenen Leistungsdaten in Netzwerken
US6070190A (en) * 1998-05-11 2000-05-30 International Business Machines Corporation Client-based application availability and response monitoring and reporting for distributed computing environments
US6336117B1 (en) * 1999-04-30 2002-01-01 International Business Machines Corporation Content-indexing search system and method providing search results consistent with content filtering and blocking policies implemented in a blocking engine
US6981180B1 (en) * 2000-03-16 2005-12-27 Akamai Technologies, Inc. Method and apparatus for testing request-response service using live connection traffic
IL157501A0 (en) * 2001-02-20 2004-03-28 Associates International Inc C System and method for monitoring service provider achievements
US7640342B1 (en) * 2002-09-27 2009-12-29 Emc Corporation System and method for determining configuration of one or more data storage systems
US7257515B2 (en) * 2004-03-03 2007-08-14 Hewlett-Packard Development Company, L.P. Sliding window for alert generation
US7630862B2 (en) * 2004-03-26 2009-12-08 Microsoft Corporation Load test simulator
JP2008250719A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 情報処理装置
CN101782868A (zh) * 2009-01-21 2010-07-21 国际商业机器公司 一种用于对本地方法调用进行性能测试的方法和装置
US8019862B2 (en) * 2009-03-17 2011-09-13 Microsoft Corporation Collaborative speed determination in distributed systems
JP4883139B2 (ja) * 2009-05-28 2012-02-22 富士通株式会社 監視システムの性能測定プログラム,監視システムの性能測定方法及び監視システムの性能測定装置
CN102331989A (zh) * 2010-07-12 2012-01-25 张艳红 基于内容排序的图像、视频搜索引擎
US9323561B2 (en) 2010-08-13 2016-04-26 International Business Machines Corporation Calibrating cloud computing environments
US8489812B2 (en) 2010-10-29 2013-07-16 International Business Machines Corporation Automated storage provisioning within a clustered computing environment
WO2012078316A1 (en) * 2010-12-09 2012-06-14 Northwestern University Endpoint web monitoring system and method for measuring popularity of a service or application on a web server
US8762113B2 (en) * 2011-06-03 2014-06-24 Sony Computer Entertainment America Llc Method and apparatus for load testing online server systems
US20140187519A1 (en) * 2012-12-27 2014-07-03 The Board Of Trustees Of The Leland Stanford Junior University Biomarkers for predicting major adverse events
EP2843537B1 (de) * 2013-08-30 2019-03-27 Fujitsu Limited Verfahren und Systeme zur Simulation einer Arbeitsbelastung eines Speichersystems
US9203803B2 (en) * 2013-11-14 2015-12-01 Broadcom Corporation Proxy device for a network of devices
CN104754021B (zh) * 2013-12-31 2018-04-13 伊姆西公司 用于促进对分布式存储系统中的数据的访问的装置和方法
US9854053B1 (en) * 2014-03-24 2017-12-26 Amazon Technologies, Inc. Providing faster data access using multiple caching servers
US20150276795A1 (en) * 2014-04-01 2015-10-01 Chipworks Incorporated Atomic force microscopy using correlated probe oscillation and probe-sample bias voltage
US9906425B2 (en) * 2014-07-23 2018-02-27 Cisco Technology, Inc. Selective and dynamic application-centric network measurement infrastructure
CN104717107B (zh) * 2015-03-27 2019-03-26 北京奇安信科技有限公司 网络设备探测的方法、装置及系统

Also Published As

Publication number Publication date
AU2016351383A1 (en) 2018-03-08
US11582130B2 (en) 2023-02-14
KR20180030168A (ko) 2018-03-21
CN107924337B (zh) 2021-11-12
KR102110757B1 (ko) 2020-06-08
US10686686B2 (en) 2020-06-16
WO2017083022A1 (en) 2017-05-18
US20170141992A1 (en) 2017-05-18
CN107924337A (zh) 2018-04-17
CN114217948A (zh) 2022-03-22
JP6526907B2 (ja) 2019-06-05
US20230188452A1 (en) 2023-06-15
GB201802304D0 (en) 2018-03-28
DE202016008054U1 (de) 2017-02-16
EP3968159A1 (de) 2022-03-16
EP3374864B1 (de) 2021-11-03
EP3374864A1 (de) 2018-09-19
JP2018533779A (ja) 2018-11-15
US20200382403A1 (en) 2020-12-03
GB2556772A (en) 2018-06-06
GB2556772B (en) 2021-10-06
AU2016351383B2 (en) 2019-06-06

Similar Documents

Publication Publication Date Title
DE112016005207T5 (de) Leistungsüberwachung in einem verteilten Speichersystem
DE112013000865B4 (de) Konsolidieren von unterschiedlichen Cloud-Dienst-Daten und -Verhaltensweisen auf der Grundlage von Vertrauensbeziehungen zwischen Cloud-Diensten
US10248674B2 (en) Method and apparatus for data quality management and control
DE112012004240T5 (de) Überwachen des Ressourcenverbrauchs eines Anwendungsprogramms
DE112013003300B4 (de) Schrittweise Vorbereitung von Videos auf die Lieferung
DE202014010941U1 (de) Einen gegenwärtigen Standort auf Basis einer Standorthistorie ableiten
DE102013210891A1 (de) Dynamisches Substituieren von Übersetzungen
DE102012220390A1 (de) Verwenden des geografischen Ortes zum Ermitteln von Element- und Gebietsdaten zum Bereitstellen an eine Datenverarbeitungseinheit
DE112021006232T5 (de) Proaktive anomalieerkennung
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
WO2014206131A1 (en) Method and apparatus for report generation
DE202014010885U1 (de) Beschleunigung basierend auf zwischengespeicherte Flüsse
DE202014010939U1 (de) Systeme für das Assoziieren von Microposts mit geografischen Standorten
DE112020002684T5 (de) Ein Mehrfachverfahrenssystem für optimale Vorhersagemodellauswahl
DE102016204322A1 (de) Sichern einer Einheit unter Verwendung von grafischer Analyse
DE112021000338T5 (de) Auslagern der statistikerfassung
DE102021125019B4 (de) Orchestrierung von einheiten für das internet der dinge
DE112016004745B4 (de) Syndiziertes, auf einer Cloud beruhendes Dienstmodell "Benachrichtigung als ein Dienst" Erweiterung in einem RSS-Feed
CN113986947A (zh) 一种数据流转的展示方法、装置、设备及可读存储介质
DE112018005424T5 (de) Automatisches Verbinden von externen Daten mit einem Geschäftsanalyseprozess
DE112020005801T5 (de) Erkennen eines datenverlustrisikos bei 5g-fähigen einheiten
DE112020004487T5 (de) Erkennen von mutationsereignissen zum überwachen der integrität
DE102021123576A1 (de) Frühzeitiges stoppen von versuchen bei stapelweise erfolgender bayesscher optimierung in industrieprozessen
WO2013189320A2 (zh) 一种虚拟桌面监控方法及装置
DE102016125948A1 (de) Verringerung von Latenzzeiten in der Bereitstellung digitaler Inhalte über ein Netzwerk

Legal Events

Date Code Title Description
R012 Request for examination validly filed