[go: up one dir, main page]

DE202016008054U1 - Performance monitoring in a distributed storage system - Google Patents

Performance monitoring in a distributed storage system Download PDF

Info

Publication number
DE202016008054U1
DE202016008054U1 DE202016008054.8U DE202016008054U DE202016008054U1 DE 202016008054 U1 DE202016008054 U1 DE 202016008054U1 DE 202016008054 U DE202016008054 U DE 202016008054U DE 202016008054 U1 DE202016008054 U1 DE 202016008054U1
Authority
DE
Germany
Prior art keywords
request
requests
storage system
distributed storage
probe
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202016008054.8U
Other languages
German (de)
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 DE202016008054U1 publication Critical patent/DE202016008054U1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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.A non-transitory computer-readable medium having stored thereon usable instructions that, when executed, cause the at least one processor to perform operations for measuring performance metrics in a distributed storage system comprising operations: identifying requests sent by clients to the distributed storage system where each request includes request parameters; Generating probe requests based on the identified requests, wherein the probe requests include probe request parameter values representing a statistical sample of the request parameters included in the identified requests; Sending the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to prepare for satisfaction of the respective probe request in response to receipt of the probe request; Receiving replies to the probing requests from the distributed storage system; and outputting at least one performance metric for the distributed storage system based on the received responses.

Description

HINTERGRUNDBACKGROUND

Diese Spezifikation bezieht sich im Allgemeinen auf die Überwachung der Leistung in einem verteilten Speichersystem.This specification generally relates to monitoring performance in a distributed storage system.

Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.Under protection and subject to the utility model are, according to the provisions of the utility model law, only devices as defined in the appended claims, but no method. Wherever in the description, if appropriate, reference is made to methods, these references are merely illustrative of the device or devices set forth in the appended claims.

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.In distributed systems, different performance metrics can be tracked to determine the overall health of the system. For example, it can be monitored how long the system takes to respond to a client request (i.e., latency) to ensure that the system responds in a timely manner.

ZUSAMMENFASSUNGSUMMARY

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.In general, one aspect of the subject matter described in this specification may be embodied in systems and methods performed by data processing devices that include the actions of identifying requests sent by clients to the distributed storage system, each request containing query parameter values for request parameters ; Generating the probe requests based on the identified requests, wherein the probe requests include probe request parameter values for probe request parameter values representing a statistical sample of the request parameters included in the identified requests; Transmitting the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to prepare for servicing each probe request to receive the probe request; Receiving replies to the probe requests from the distributed memory system and outputting the at least one power metric value that measures a current performance state of the distributed memory system based on the received responses.

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.Details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects and potential advantages of the subject matter will become apparent from the description, drawings and claims.

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

1 ist ein Diagramm einer Beispielumgebung für die Überwachung der Leistung eines verteilten Speichersystems. 1 Figure 10 is a diagram of an example environment for monitoring the performance of a distributed storage system.

2 ist ein Schwimmbahndiagramm eines Beispielprozesses für die Verarbeitung einer Clientanfrage in einem verteilten Speichersystem. 2 Figure 11 is a swim-line diagram of an example process for processing a client request in a distributed storage system.

3 ist ein Schwimmbahndiagramm eines Beispielprozesses für die Überwachung der Leistung in einem verteilten Speichersystem. 3 Figure 11 is a swim-line diagram of an example process for monitoring performance in a distributed storage system.

4 ist ein Ablaufdiagramm eines Beispielprozesses für die Überwachung der Leistung in einem verteilten Speichersystem. 4 Figure 4 is a flow chart of an example process for monitoring performance in a distributed storage system.

5 ist ein Diagramm von Computergeräten, die zur Implementierung der in diesem Dokument beschriebenen Systeme und Verfahren verwendet werden können. 5 Figure 13 is a diagram of computing devices that may be used to implement the systems and methods described in this document.

Entsprechende Referenznummern und Kennzeichnungen in den verschiedenen Zeichnungen zeigen entsprechende Elemente an.Corresponding reference numbers and markings in the various drawings indicate corresponding elements.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

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 a distributed storage system, there are many factors that can affect system performance. For example, clients can access the system over a public network, such as the Internet. In such a case, performance issues anywhere in the public network may affect the performance of the distributed storage system from the perspective of the particular client. Problems with the distributed storage system itself, e.g. Hardware failures, internal network failures, software bugs or other issues can also impact the performance of the system as perceived by the client.

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.In some cases, the relationship between the distributed storage system and its clients may be subject to a Service Level Agreement (SLA). An SLA generally includes performance goals that the distributed storage system provider has agreed upon when meeting client requests. For example, an SLA may indicate that the distributed storage system provider guarantees a latency of no more than 10 ms when processing a request. In some cases, the SLA may include actions that are taken if the performance goal is not met, e.g. B: that the provider Refunds to customers. Such arrangements may also include provisions that the distributed storage system provider is not responsible for performance issues beyond its control (eg, public network failures, customer network failures, customer equipment issues).

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.Even in cases where there is no SLA, a distributed storage system vendor may want to monitor the state of the system in a non-intrusive manner that does not affect the performance of the system in meeting requests for clients ,

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.Accordingly, the present disclosure describes techniques for monitoring performance in a distributed database system by profiling client requests. An example method involves identifying requests sent by clients to the distributed storage system. These requests may include request parameters, e.g. A request type, simultaneity parameter, and a request destination indicating the data concerning the request. In some cases, requests may be identified based on information sent by clients of the distributed storage system. Based on these identified queries, probe requests are generated containing probe request parameters representing a statistical sample of the request parameters contained in the identified request. The generated probe requests are sent to the distributed memory system which responds by making preparations for the fulfillment of the respective probe request, but does not actually access the data indicated by the request destination. For example, in response to an inquiry request request type "read", the distributed storage system may prepare to read the data indicated by the request destination (e.g., search the data, place the request in the queue, etc.), but can read a field associated with the data that the client can not access. This allows a careful profiling of the system without disrupting the processing of normal client requests. When replies to the probe requests are received from the distributed storage system, performance metrics can be calculated.

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.In some cases, the process may be performed by the computing device that is in a shared location with the storage system (eg, within the same internal network) to measure the performance of the distributed storage system alone, such that problems beyond the vendor's control (eg failures of public networks) are not indicated by the process.

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.The techniques described herein can provide the following advantages. By profiling actual client requests to generate probe requests, the present technique enables the monitoring of a distributed storage system by approximating client requests currently being met by the distributed storage system. In addition, by monitoring the state of the distributed storage system without accessing data accessible to clients, the performance impact of such monitoring on actual client requests can be minimized. Further, by monitoring the distributed storage system isolated from other factors beyond the control of the system provider, a more accurate view of the system's true performance can be obtained, wherein the true performance includes the consistent performance a client perceives when requesting service from the distributed storage system, e.g. , In terms of latency. Such information may be useful in determining compliance with an SLA. The techniques may also provide statistical information about the distribution of the customer requests themselves (eg, whether a particular data item is more popular than others), which may inform the provider and the customer as to whether the workload should be adjusted (eg, at Avoid hotspots). In addition, the technique enables the profiling of various aspects of the distributed storage system, e.g. Queue time, actual processing time, server site time, along with the server's current CPU and memory usage, queue length, and other metrics. Furthermore, the techniques may allow easier management of SLA / SLO compliance because the profiling is completely controlled by the distributed storage system vendor.

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. 1 Figure 10 is a diagram of an example environment for monitoring the performance of a distributed database system. As shown, the environment includes 100 a distributed storage system 110 with a variety of servers 112 , each containing a variety of data groups 114 manage. In operation, clients send 120 a request 122 to the distributed storage system 110 , The distributed storage system 110 processes the request 122 and send answers 124 to the clients 120 , The clients 120 send inquiry information 126 to a sounder 130 , This request information 126 Include information about the requests made by a particular client 120 to the distributed storage system 110 were sent, z. For example, the request type, the request parameters, and the request destination of each request. The sounder 130 receives the request information 126 and sends based on the request information 126 exploratory inquiries 132 to the distributed storage system 110 , The distributed storage system 110 processes the sounding requests and gives answers 134 to the program 130 back. The sounder 130 analyzes the answers and gives performance metrics 140 off, which is the current performance of the distributed storage system 110 , certain server 112 in the distributed storage system 110 , certain data groups 114 in the distributed storage system 110 or the current performance of other components in the distributed storage system 110 specify.

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.The distributed storage system 110 can be a distributed system with a large number of servers 112 which are connected by a local or private network (not shown). In some cases, the local or private network may be located entirely in a single permanent establishment, while in other cases the local or private network may cover a larger area and connect multiple sites. The servers 112 can communicate with each other to the client request 122 to be fulfilled by the clients 120 store, retrieve and update requested data. In some cases, the distributed storage system 110 a distributed database, a distributed file system, or some other type of distributed storage. The distributed storage system 110 can also components to manage and organize the operations of the server 112 in the system.

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.In the distributed storage system 110 can any server 112 a computer with a processor and a storage device, e.g. A hard drive for storing data from the distributed storage system 110 be managed. In some cases, data can be sent to the different servers 112 distributed according to the distribution policy. For example, a distribution policy may indicate that a particular table or file is in the distributed storage system 110 on a certain number of servers 112 must be stored in order to maintain the redundancy. The distribution policy can also specify that data must be stored in several different locations to maintain geographic redundancy. In some cases, the server can 112 an external storage device or system, e.g. B. use a distributed file system, instead of a directly connected persistent storage.

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.Each of the servers 112 manages one or more data groups 114 , The data groups 114 can include the entire record from the distributed storage system 110 is managed. Each data group 114 may be data from a portion of a table in a distributed database, one or more files from a distributed file system, or other portions of data in the distributed storage system 110 represent / included. In operation, any request 122 and sounding request 132 through the distributed storage system 110 be analyzed to determine the particular data set based on the request destination 114 to which the request or probe request belongs. The distributed storage system may then request or probe a particular server 112 direct the specific data group 114 managed.

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.In some cases, the clients can 120 Distributed storage system user 110 be. The clients 120 can also be entities (such as Web sites or applications) that use the distributed storage system 110 to store and retrieve data. Each of the clients 120 can provide information about each request 122 record it to the distributed storage system 110 sends. In some cases, every client can 120 Records the entire request, such as the distributed storage system 110 sent, save. Each client may also provide a summary of the request 122 that has been sent to the distributed storage system, it can store, for. For example, store a number of requests sent with the same set of request parameters. The client 120 For example, it may record the fact that five requests with the request type "read", a simultaneity parameter "weak" and a request destination of the table named "customers" have been sent. This request information 126 For example, at regular intervals by each client 120 to the sounder 130 be sent. The request information 126 can from the clients 120 via a public network, e.g. The Internet, to the sounder 130 be sent. In some cases, the request information 126 be collected through a software process or library that runs on the client and collects information about requests sent by the client. In some cases, the software library may be provided by the distributed storage system vendor.

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.The sounder 130 Can by the clients 120 analyze received request information and generate a probe profile representing a statistical approximation of the requests made by the request information 126 to be discribed. The sounder 130 For example, request information 126 which will generate 10,000 read-type queries and 5,000 write-type queries, and generate an exploratory profile indicating that 1,000 "read" exploratory requests and 500 "write" exploratory requests should be sent to the Performance of the distributed system processing the original request 122 to emulate and identify. In some cases, the sounder 130 a number of probing requests to be generated 132 so select that the number is big enough for the request 122 to be representative of the clients 120 is sent, but small enough to minimal impact on the performance of the distributed storage system 110 to have.

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.Based on the sounding profile, the sounder sends 130 the exploratory inquiry 132 to the distributed storage system 110 , In some cases, the sounding request 132 in the format with the requests 122 be identical to that of clients 120 can be sent but may contain a notice that they are probing requests and not requests from clients 120 are. The distributed storage system 110 can sound inquiries 132 receive and process them in the same way as the client requests 122 except that the shared storage system can not access the actual data specified by the request destination of each probe request. In some cases, the distributed storage system 110 instead, access data specifically for the probe 130 are assigned, for. For example, a specific field, column, or metadata value or other value associated with the data specified by the request destination. Thus, the performance of several aspects of the distributed storage system 110 be profiled without processing client requests 122 disturb. For example, probe requests that include simultaneity parameters that would cause the placement of a lock on the requested data may instead cause the distributed memory system 110 places a lock on the probe-specific data so as not to disturb the processing of the client request. Such functionality enables the profiling of the concurrency features of the distributed storage system 110 without affecting the processing of client requests.

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.As shown, the probe produces 130 one or more performance metrics 140 based on the sent inquiry request 132 and the answers received 134 , In some cases, the performance metrics may include the total system latency as measured by the average time that the distributed storage system has 110 for answering an exploratory inquiry. The performance metrics may also include availability as measured by the ratio of failed probe requests to successful probe requests. The performance metrics may also include local network latency, server queue latency (e.g., the average time that each probe request 132 wait for processing on the server), volume or memory latency, or other performance metrics.

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. 2 Figure 11 is a swim-line diagram of an example process for processing a client request in the distributed storage system. In this 205 the client sends 120 a request to the distributed storage system 110 , at 210 hits the distributed storage system 110 Preparing for the fulfillment of the request. The distributed storage system 110 Preparations made may include, for example, analyzing the request, identifying a particular server storing the requested data, sending the request to the particular server, generating an execution plan for the particular request (eg, determining which tables are being accessed and how the data is manipulated to fulfill the request) or other operations. at 215 accesses the distributed storage system 110 to the data specified by the particular request. This is in contrast to the handling of probe requests by the distributed storage system 110 because the data specified by the requests is not accessed (as described below). at 220 sends the distributed storage system 110 an answer to the request to the client. For example, if the client is reading certain data from the distributed storage system 110 requested, the answer may include the requested data.

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. 3 Figure 12 is a swim-line diagram of an example process for monitoring performance in a distributed database system. at 305 the client sends 120 Requests to the distributed storage system 110 that comes with answers to the requests 310 responding. at 315 asked the client 120 Information about the sent request for the sounder 130 ready. at 320 the sounder generates 130 an exploratory profile based on information about the requests sent by the client. In some cases, the probe may receive information about sent requests from multiple clients and generate the probe profile based on that information. at 325 sends the sounder 130 Exploratory inquiries based on the probing profile for the distributed storage system 110 , at 330 hits the distributed storage system 110 Preparations for the fulfillment of the respective exploratory inquiry. at 335 accesses the distributed storage system 110 to probe-specific metadata associated with the data indicated by the request destination of the respective probe request. at 340 sends the distributed storage system 110 Answers to the sounding requests to the sounder 130 , at 345 the sounder calculates performance metrics based on the answers to the sounding requests.

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. 4 Figure 3 is a flow chart of an example process for monitoring performance in a distributed database system. at 405 Incoming requests sent by clients to the distributed storage system are identified, each request including request parameters. In some cases, the request parameters include a request type, concurrency parameter, and a request destination indicating data in the distributed storage system to which the request belongs.

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. at 410 Probe requests are generated based on the identified requests. The probe requests include probe query parameters that represent a statistical sample of the query parameters contained in the identified request. In some cases, the generation of the probe requests involves generating a number of probe requests that is less than the number of identified requests. The generation of the probe requests may involve generating a number of probe requests having a particular request type, request parameters, and a particular request destination that is proportional to the number of identified requests with the particular request type, the specific concurrency parameters, and the particular request destination.

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.at 415 The generated probe requests are sent over a network to the distributed storage system. The distributed storage system is configured to prepare for satisfaction of the respective probe requests in response to receiving the probe request. In some cases, the distributed storage system is configured to read or write data accessible to clients as it prepares to complete the respective probe request in response to receiving the probe request. In some implementations, the data in the distributed storage system includes a probe field that can not be accessed by clients, wherein the distributed memory system is configured to respond to the probe field associated with a request destination in a probe request in response to the reception the probe request accesses.

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.at 420 Responses to the probe requests are received by the distributed storage system. at 425 At least one performance metric for the distributed storage system is issued based on the received responses. In some cases, outputting at least one performance metric includes outputting a weighted average of the at least one performance metric for a particular data group of the distributed storage system based on the replies to probe requests with request destinations identifying data in the particular data group. The at least one performance metric may include at least one of the following: availability, media latency, queue latency, request preemption latency, or internal network latency. In some cases, the performance metrics may include weighted averages, where the weights used in the calculation are from the query information 126 be derived. For example, if there are 10 times as many requests for weak simultaneity as for high concurrency, the performance data in the subsequent performance metrics for soft simultaneity probes may be 10 times heavier than for probes for high simultaneity.

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.In some cases, the process involves 400 comparing the at least one performance metric with a service level objective (SLO) having a target value for the at least one performance metric for the distributed storage system. The SLO may be included in a Distributed Storage System Service Level Agreement (SLA). The process 400 may further include determining that the at least one performance metric does not meet the target value, and outputting an indication that the at least one performance metric is not meeting the target value.

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. 5 is a block diagram of the computing devices 500 . 550 which may be used to implement the systems and methods described herein, either as a client or as a server or as a plurality of servers. The computer device 500 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes and other suitable computers. The computer device 550 is intended to represent various forms of mobile devices, such as personal digital assistants, mobile phones, smart phones and other similar computing devices. In addition, the computers can 500 or 550 also include USB (Universal Serial Bus) drives. The USB storage media can store operating systems and other applications. The USB flash drives can handle input / output components such as B. a radio transmitter or USB port included, which can be plugged into a USB port of another computer. The components, their connections and relationships and their functions shown herein are intended to be exemplary only and not intended to limit implementations of the inventions described and / or claimed in this document.

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).computing device 500 includes a processor 502 , a store 504 , a storage device 506 , a high-speed interface 508 that deals with memory 504 and high-speed expansion ports 510 connects, and a low-speed interface 512 that deals with the 514 and storage device 506 combines. Each of the components 502 . 504 . 506 . 508 . 510 and 512 are interconnected using different buses and may be mounted on a common motherboard or otherwise. The processor 502 may instructions for execution within the computing device 500 process, which contain instructions in the memory 504 or on the storage device 506 are saved to graphic Information for a GUI on an external input / output device, such as display 516 that interface with high speed 508 connected to display. In other implementations, multiple processors and / or multiple buses may be used, as appropriate, along with multiple memories and storage types. There can also be several computer devices 500 Each device provides portions of the necessary operations (eg, as a server bank, a group of blade servers, or a multiprocessor system).

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.The memory 504 stores information within the computing device 500 , In one implementation, the memory is 504 one or more volatile storage units. In other implementations, the memory is 504 one or more non-volatile storage devices. The memory 504 may also be another form of computer-readable medium, for example a magnetic or optical medium.

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.The storage device 506 is capable of mass storage for the computing device 500 provide. In one implementation, the storage device may 506 a computer readable medium such as a floppy disk drive, hard disk drive, optical disk device, magnetic tape drive, flash memory or other similar solid state storage device or a variety of other devices, including devices in a storage network or other configurations. A computer program product may be embodied concretely in an information carrier. The computer program product may also include instructions that, when executed, perform one or more methods such as those described above. The information carrier is a computer- or machine-readable medium such as the memory 504 , the storage device 506 or memory on a processor 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.The high-speed controller 508 Manages bandwidth-intensive operations for the computing device 500 while the low-speed controller 512 managed less bandwidth-intensive operations. Such an assignment of functions is only an example. In one embodiment, the high-speed controller 508 with memory 504 , Display 516 (eg via a graphics processor or accelerator) and with high-speed expansion ports 510 coupled, which can accommodate various expansion cards (not shown). In the implementation is low-speed controller 512 with storage device 506 and low-speed expansion port 514 coupled. The slow expansion port, which may include various communication ports (eg, USB, B, Ethernet, wireless Ethernet), may be connected to one or more input / output devices, such as a keyboard, a pointing device, a scanner, or a network device, such as a switch or Router, z. B. be coupled by a network adapter.

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.The computer device 500 can be implemented in a number of different forms, as shown in the figure. For example, it can act as a standard server 520 or implemented multiple times in a group of such servers. It can also be considered part of a rack server system 524 be implemented. Additionally it can work in a personal computer like a laptop computer 522 be implemented. Alternatively, components of computer device 500 combined with other components in a mobile device (not shown), e.g. B. device 550 , Each of these devices can be one or more of computing devices 500 . 550 included and an entire system can be made up of multiple computing devices 500 . 550 Being composed communicate with each other.

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.computing device 550 includes among other components a processor 552 , a store 564 , an input / output device such as a display 554 , a communication interface 566 and a transceiver 568 , The device 550 can also be used with a storage device z. As a microdrive or other device to provide additional memory. Each of the components 550 . 552 . 564 . 554 . 566 and 568 are interconnected using different buses, and several of the components may be mounted on a common motherboard or otherwise.

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.The processor 552 can be instructions in the computer device 550 execute, including in memory 564 stored instructions. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. Additionally, the processor can be implemented with any number of architectures. So can the processor 510 for example, a Complex Instruction Set Computer (CISC) processor, a Reduced Instruction Set Computer (RISC) processor, or a Minimal Instruction Set Computer (MISC) processor. For example, the processor may coordinate the other components of the device 550 such as control of user interfaces, applications, by the device 550 running, and wireless communication through device 550 provide.

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.processor 552 can with a user via control interface 558 and display interface 556 that with an ad 554 connected, communicate. the display 554 For example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED display (Organic Light Emitting Diode) or other suitable display technology. The display interface 556 can be an appropriate circuit as a driver of the ad 554 to present graphical and other information to a user. The control interface 558 can receive commands from a user and send them to the processor 552 convert. In addition, an external interface 562 in conjunction with processor 552 be provided to close range communication of device 550 to allow with other devices. The external interface 562 For example, in some implementations, it may be a wired connection or a wireless connection in other implementations, and multiple interfaces may be used.

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.The memory 564 stores information within the computing device 550 , The memory 564 can be implemented as a computer-readable medium or as one of several computer-readable media, as a volatile memory or as a non-volatile memory or non-volatile memory. extended memory 574 can also be provided and with the device 550 via extension interface 572 For example, it may include a single in-line memory module (SIMM) card interface. Such an expansion memory 574 can add extra storage space for device 550 can also provide applications or other information for device 550 to save. In particular, expansion memory can 574 It also contains instructions for completing or completing the processes described above, and it may also contain secure information. Accordingly, expansion memory 574 for example, as a security module for device 550 be provided and may be programmed with instructions for safe device use 550 enable. In addition, secure applications can be provided via the SIMM cards, along with additional information such as storing identification information on the SIMM card in a manner that can not be hacked.

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.The memory may include, for example, flash memory and / or NVRAM memory as discussed below. In one implementation, a computer program product is tangibly implemented in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 564 , the memory extension 574 or the processor memory 552 , for example via the transceiver 568 or the external interface 562 can be received.

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.device 550 can via communication interface 566 which may include, if necessary, a digital signal processing circuit, communicate wirelessly. The connection interface 566 can establish connections to various types of communication or protocols, including GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS among others. Such communication may be, for example, by radio frequency transceivers 568 occur. Additionally, short distance communication may take place, such as using a Bluetooth, WLAN or other such transceivers (not shown). In addition, GPS (Global Positioning System) receiver module 570 additional wireless device data associated with navigation and location 550 may be used by applications that may be on device 550 be executed.

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.device 550 can also be done using the audio codec 560 who audibly communicate spoken information from a user and convert it into usable digital information. Audio codec 560 may also generate audible tones to a user, for example through a speaker, for example, in a handset of the device 550 , These tones may include tones of voice telephone calls, may include recorded sounds (eg, voice messages, music files, etc.), and may also include sounds from on-device applications 550 were created.

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.The computer device 550 can be implemented in a number of different forms, as shown in the figure. For example, it can be used as a mobile phone 580 be implemented. He can also be part of a smartphone 582 , a Personal Digital Assistant or similar mobile device.

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.Various implementations of the systems and techniques described herein may be implemented in digital electronic circuitry, integrated circuit, in specially designed ASICs (application specific integrated circuits), in computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementation in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be a special purpose processor or processor, and for receiving Data and instructions from and for transmitting data and instructions to a storage system, at least one Input device and at least one output device is coupled.

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.These computer programs (also known as programs, software, applications, or code) contain machine instructions for a programmable processor and may be translated into a high-level procedural and / or object-oriented programming language and / or assembly / machine language. As used herein, the terms "machine-readable medium", "computer-readable medium" refer to any computer program product, device, and / or device (eg, magnetic disks, optical disks, memory, programmable logic devices (PLDs)) that uses to provide machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.

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.For interaction with a user, the techniques and systems described herein may be used on a computer with a display (eg, a CRT (Cathode Ray Tube) or LCD (Liquid Crystal Display) monitor) for displaying information to the user and with a keyboard and a pointing device (eg, a mouse or a trackball) through which the user can forward input to the computer. Other types of devices may also be used to provide interaction with a user; for example, a feedback provided to the user may be some form of sensory feedback (eg, visual feedback, auditory feedback, or tactile feedback); and an input from the user may be received in any form, including acoustic, voice or touch inputs.

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.The systems and techniques described herein may be implemented in a computer system that includes a back-end component (eg, as a data server) or that includes a middleware component (eg, an application server) or a front-end Component (e.g., a client computer having a graphical user interface or web browser through which a user can interact with an implementation of the systems and techniques described herein) or any combination of such back end, middleware, or front End components includes. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communications network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), peer-to-peer networks (with ad hoc members and permanent members), network computer infrastructures and the 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.The computer system may include client and server. A client and server are generally remote from each other and typically interact over a communications network. The relationship between client and server arises because of computer programs that run on the respective computers and that have a client-server relationship with each other.

Weitere Implementierungen sind in den folgenden Beispielen zusammengefasst:Other implementations are summarized in the following examples:

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.Example 1: A computer-implemented method executed by one or more processors for measuring performance metrics in a distributed storage system, the method comprising: identifying requests sent by clients to the distributed storage system, each request including request parameter values for request parameters; Generating the probe requests based on the identified requests, wherein the probe requests include probe request parameter values for probe request parameter values representing a statistical sample of the request parameters included in the identified requests; Transmitting the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to prepare for servicing each probe request to receive the probe request; Receiving replies to the probe requests from the distributed memory system and outputting the at least one power metric value that measures a current performance state of the distributed memory system based on the received responses.

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.Example 2: The method of Example 1, wherein generating the probe requests includes generating a number of probe requests that is less than the number of identified requests.

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.Example 3: The method of Example 1 or 2, wherein the query parameters include a request type, simultaneity parameter, and a request destination indicating data in the distributed storage system to which the request belongs.

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.Example 4: The method of Example 3, wherein generating the probe requests includes generating a number of probe requests a certain request type, specific request parameters, and a particular request destination that is proportional to the number of identified requests with the particular request type, the specific concurrency parameters, and the particular request destination.

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. Example 5: The method of any one of Examples 1 to 4, wherein outputting at least one performance metric comprises outputting a weighted average of the at least one performance metric for a particular data group of the distributed storage system based on the replies to probe requests with request destinations that identify data in the particular data group , includes.

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.Example 6: The method of any one of Examples 1 to 5, wherein the at least one performance metric includes at least one of the following: availability, media latency, queue latency, request preemption latency, or internal network latency.

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.Example 7: The method of any one of Examples 1 to 6, wherein the distributed storage system is configured to not read or write data accessible to clients when preparing to fulfill the respective probe request in response to the receipt the exploratory request.

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.Example 8: The method of any one of Examples 1 to 7, wherein the data in the distributed storage system includes a probe field that is inaccessible to clients, and wherein the distributed memory system is configured to point to the probe field associated with a request destination in a probe request, accesses in response to receipt of the probe request.

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.Example 9: The method of any one of Examples 1-8, further comprising comparing the at least one performance metric with a service level objective (SLO) having a target value for the at least one performance metric for the distributed storage system.

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.Example 10: The method of Example 9, further comprising determining that the at least one performance metric does not meet the target value, and outputting an indication that the at least one performance metric does not meet the target value.

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.Example 11: The method of Example 9 or 10, wherein the service level target is included in a distributed storage system service level agreement (SLA).

Beispiel 12: Verfahren nach einem der Beispiele 1 bis 11, worin die Sondierungsanfragen statistische Darstellungen der identifizierten Anfragen sind.Example 12: The method of any one of Examples 1 to 11, wherein the probe requests are statistical representations of the identified requests.

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.Example 13: A non-transitory, computer-readable storage medium having stored thereon usable instructions that, when executed, cause the at least one processor to perform operations for measuring performance metrics in a distributed storage system comprising operations: identifying requests made by clients to the computer distributed storage systems are sent, each request containing request parameter values; Generating the probe requests based on the identified requests, the probe requests including probe request parameters representing a statistical sample of the request parameters included in the identified requests; Transmitting the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to prepare for servicing each probe request to receive the probe request; Receiving replies to the probe requests from the distributed storage system and outputting the at least one distributed memory system performance metric value based on the received responses.

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.Example 14: The computer readable medium of Example 13, wherein generating the probe requests includes generating a number of probe requests that is less than the number of identified requests.

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.Example 15: The computer readable medium of Example 13 or 14, wherein the query parameters include a request type, simultaneity parameter, and a request destination indicating data in the distributed storage system to which the request belongs.

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.Example 16: The computer readable medium of Example 15, wherein generating the probe requests includes generating a number of probe requests having a particular request type, request parameters, and a particular request destination that are proportional to the number of identified requests with the particular request type, the determined concurrency parameters, and the particular request Request is.

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.Example 17: The computer readable medium of any one of Examples 13 to 16, wherein outputting at least one performance metric outputting a weighted average of the at least one performance metric for a particular data group of the distributed memory system based on the replies to probe requests with the destination data in the particular data group identify, includes.

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.Example 18: The computer-readable medium of any one of Examples 13 to 17, wherein the at least one performance metric includes at least one of the following: availability, media latency, queue latency, request-ahead latency, or internal network latency.

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.Example 19: The computer readable medium of any one of Examples 13 to 18, wherein the distributed storage system is configured to not read or write data accessible to clients when preparing to fulfill the respective probe request in response to the data request Receiving the probe request performs.

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.Example 20: A system for measuring performance metrics in a distributed storage system, comprising: identifying requests sent by clients to the distributed storage system, each request including request parameter values; Generating the probe requests based on the identified requests, the probe requests including probe request parameters representing a statistical sample of the request parameters included in the identified requests; Transmitting the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to prepare for servicing each probe request to receive the probe request; Receiving replies to the probe requests from the distributed storage system and outputting the at least one distributed memory system performance metric value based on the received responses.

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.Although several implementations have been described in detail above, other modifications are possible. In addition, the logical operations in the illustrations do not necessarily require the depicted order or sequential order to achieve the desired results. Additional steps may be added to or omitted from the described procedures, and other components added to or omitted from the described systems. Accordingly, other implementations are within the scope of the following claims.

Claims (8)

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.A non-transitory computer-readable medium having stored thereon usable instructions that, when executed, cause the at least one processor to perform operations for measuring performance metrics in a distributed memory system comprising the operations of: Identifying requests sent by clients to the distributed storage system, each request including request parameters; Generating probe requests based on the identified requests, wherein the probe requests include probe request parameter values representing a statistical sample of the request parameters included in the identified requests; Sending the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to prepare for satisfaction of the respective probe request in response to receipt of the probe request; Receiving replies to the probing requests from the distributed storage system; and Output at least one performance metric for the distributed storage system based on the received responses. Computerlesbares Medium nach Anspruch 1, worin die Erzeugung der Sondierungsanfragen das Erzeugen einer Anzahl von Sondierungsanfragen beinhaltet, die kleiner ist als die Anzahl der identifizierten Anfragen.The computer-readable medium of claim 1, wherein generating the probe requests includes generating a number of probe requests that is less than the number of identified requests. Computerlesbares Medium 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.The computer readable medium of claim 1, wherein the query parameters include a request type, simultaneity parameters, and a request destination indicating data in the distributed storage system to which the request belongs. Computerlesbares Medium 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.The computer-readable medium of claim 3, wherein generating the probe requests includes generating a number of probe requests having a particular request type, request parameters, and a particular request destination that is proportional to the number of identified requests having the particular request type, the determined concurrency parameters, and the particular request destination. Computerlesbares Medium 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.The computer-readable medium of claim 3, wherein outputting at least one performance metric includes outputting a weighted average of the at least one performance metric for a particular data group of the distributed memory system based on the responses to probe requests with request destinations identifying data in the particular data group. Computerlesbares Medium nach Anspruch 1, worin die mindestens eine Leistungsmetrik mindestens eines der folgenden Elemente beinhaltet: Verfügbarkeit, Datenträgerlatenz, Warteschlangenlatenz, Anfragevorbereitungslatenz oder interne Netzwerklatenz. The computer readable medium of claim 1, wherein the at least one performance metric includes at least one of the following: availability, media latency, queue latency, request preemption latency, or internal network latency. Computerlesbares Medium 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.The computer-readable medium of claim 1, wherein the distributed storage system is configured to not read or write data accessible to clients as it prepares to complete the respective probe request in response to receiving the probe request. 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.A system for measuring performance metrics in a distributed storage system, comprising: Memory for storing data; and One or more processors that can be used to access memory and perform operations that include: Identifying requests sent by clients to the distributed storage system, each request including request parameters; Generating probe requests based on the identified requests, wherein the probe requests include probe request parameter values representing a statistical sample of the request parameters included in the identified requests; Sending the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to prepare for satisfaction of the respective probe request in response to receipt of the probe request; Receiving replies to the probing requests from the distributed storage system; and Output at least one performance metric for the distributed storage system based on the received responses.
DE202016008054.8U 2015-11-13 2016-09-27 Performance monitoring in a distributed storage system Active DE202016008054U1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562255316P 2015-11-13 2015-11-13
US62/255,316 2015-11-13

Publications (1)

Publication Number Publication Date
DE202016008054U1 true DE202016008054U1 (en) 2017-02-16

Family

ID=57113778

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202016008054.8U Active DE202016008054U1 (en) 2015-11-13 2016-09-27 Performance monitoring in a distributed storage system
DE112016005207.3T Pending DE112016005207T5 (en) 2015-11-13 2016-09-27 Performance monitoring in a distributed storage system

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE112016005207.3T Pending DE112016005207T5 (en) 2015-11-13 2016-09-27 Performance monitoring in a distributed storage system

Country Status (9)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708677A (en) * 2020-06-19 2020-09-25 浪潮云信息技术股份公司 Cloud hard disk usage amount acquisition method in cloud computing environment

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11522808B2 (en) 2018-10-20 2022-12-06 Netapp, Inc. Shared storage model for high availability within cloud environments
US12204797B1 (en) 2023-06-30 2025-01-21 Netapp, Inc. Lock reservations for shared storage
CN109542725B (en) * 2018-11-15 2022-04-05 北京金山云网络技术有限公司 Service quality monitoring method and device for distributed system and monitoring server
CN110618889A (en) * 2019-08-14 2019-12-27 网联清算有限公司 Service availability detection method and device, computer equipment and storage medium
CN110990183B (en) * 2019-12-04 2022-05-17 腾讯科技(深圳)有限公司 Database cluster anomaly detection method and device and computer-readable storage medium
CN111290907A (en) * 2020-01-14 2020-06-16 深圳市网心科技有限公司 Distributed storage network pressure measurement method and device, computer device and storage medium
CN111258870A (en) * 2020-01-17 2020-06-09 中国建设银行股份有限公司 Performance analysis method, device, equipment and storage medium of distributed storage system
US11570182B1 (en) * 2020-03-30 2023-01-31 Amazon Technologies, Inc. Compute-less authorization
CN111600929B (en) * 2020-04-07 2023-05-19 厦门网宿有限公司 Transmission line detection method, routing strategy generation method and proxy server
US11695851B2 (en) * 2020-06-03 2023-07-04 Micron Technology, Inc. Gateway for vehicle with caching buffer for distributed storage system
CN112559271B (en) * 2020-12-24 2023-10-20 北京百度网讯科技有限公司 Interface performance monitoring method, device and equipment for distributed application and storage medium
CN113138903B (en) * 2021-04-28 2024-05-28 北京百度网讯科技有限公司 Method and apparatus for tracking performance of a storage system
CN113608974B (en) * 2021-06-29 2023-12-22 济南浪潮数据技术有限公司 Performance pressure measurement method and system of distributed storage system and related components
US11768665B2 (en) * 2021-11-18 2023-09-26 Red Hat, Inc. Generation of service-level objective specifications using java annotation
CN115373836A (en) * 2022-05-09 2022-11-22 华为技术有限公司 Computing network, computing force measuring method, scheduling device and related products

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19813884B4 (en) * 1998-03-30 2008-05-29 International Business Machines Corp. System and method for determining and presenting connection-related performance data in networks
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 (en) * 2007-03-30 2008-10-16 Toshiba Corp Information processor
CN101782868A (en) * 2009-01-21 2010-07-21 国际商业机器公司 Method and device for performance testing for local method call
US8019862B2 (en) * 2009-03-17 2011-09-13 Microsoft Corporation Collaborative speed determination in distributed systems
JP4883139B2 (en) * 2009-05-28 2012-02-22 富士通株式会社 Monitoring system performance measuring program, monitoring system performance measuring method, and monitoring system performance measuring apparatus
CN102331989A (en) * 2010-07-12 2012-01-25 张艳红 Image and video search engine based on content ranking
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
US9369525B2 (en) * 2013-06-26 2016-06-14 International Business Machines Corporation Highly resilient protocol servicing in network-attached storage
EP2843537B1 (en) * 2013-08-30 2019-03-27 Fujitsu Limited Method and systems for simulating a workload of a storage system
US9203803B2 (en) * 2013-11-14 2015-12-01 Broadcom Corporation Proxy device for a network of devices
CN104754021B (en) * 2013-12-31 2018-04-13 伊姆西公司 Apparatus and method for promoting the access to the data in distributed memory system
CN103763155A (en) * 2014-01-24 2014-04-30 国家电网公司 Multi-service heartbeat monitoring method for distributed type cloud storage system
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 (en) * 2015-03-27 2019-03-26 北京奇安信科技有限公司 The method, apparatus and system of network equipment detection

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708677A (en) * 2020-06-19 2020-09-25 浪潮云信息技术股份公司 Cloud hard disk usage amount acquisition method in cloud computing environment

Also Published As

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

Similar Documents

Publication Publication Date Title
DE202016008054U1 (en) Performance monitoring in a distributed storage system
DE212017000329U1 (en) Selective sensor polling
DE112021006232T5 (en) PROACTIVE ANOMAL DETECTION
US10248674B2 (en) Method and apparatus for data quality management and control
US20110055250A1 (en) Method and system for generating and sharing dataset segmentation schemes
DE102017121758A1 (en) Intelligent assistant for repeated actions
CN111553485A (en) View display method, device, device and medium based on federated learning model
DE112013000865T5 (en) Consolidate different cloud service data and behaviors based on trust relationships between cloud services
DE102013210891A1 (en) Dynamic substitution of translations
DE112013003300B4 (en) Gradual preparation of videos on the delivery
DE112021000338B4 (en) OUTSOURCING STATISTICS COLLECTION
DE202014010941U1 (en) Derive a current location based on a site history
CN109241096A (en) Data processing method, device and system
DE112019001184T5 (en) Systems and methods for autofill field classification
DE202014010885U1 (en) Acceleration based on cached flows
DE202017100386U1 (en) Latency reduction in the feedback-based determination of system performance
US20190171446A1 (en) Value stream graphs across heterogeneous software development platforms
CN108446370B (en) Voice data statistics method and system
DE112019001493T5 (en) DETERMINING QUERY DETECTION RESILIENCE IN VIRTUAL AGENT SYSTEMS
DE112020005801T5 (en) RECOGNIZING A RISK OF DATA LOSS WITH 5G-READY DEVICES
DE112018005283T5 (en) DEDUPLICATION FOR FILES IN A CLOUD COMPUTING STORAGE AND IN DATA TRANSFER TOOLS
DE112016004745B4 (en) Syndicated, cloud-based service model "Notification as a service" extension in an RSS feed
CN118838944B (en) Correlation query method and device based on established model
DE102021125019B4 (en) ORCHESTRATING UNITS FOR THE INTERNET OF THINGS
CN113986947A (en) A method, apparatus, device and readable storage medium for displaying data flow

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years