Managing I/O requests

US9893972B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9893972-B1
Application numberUS-201414571223-A
CountryUS
Kind codeB1
Filing dateDec 15, 2014
Priority dateDec 15, 2014
Publication dateFeb 13, 2018
Grant dateFeb 13, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods are described providing detailed input/output (I/O) metric information that is collected and gathered by an agent of the storage volume. An I/O request is received by a storage volume, and the agent associates primary and secondary identifiers with that I/O request. For example, a trace may be associated with that I/O request. The agent may store this I/O metric information in a ring buffer. Further, after collection and aggregation, statistics may be published by an I/O metric service that further processes the data provided by the agent. Advantageously, interdependent relationships associated with the I/O request or I/O operations of that request may be included in those statistics. This may allow an operator to evaluate the performance of I/O requests for a network.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: one or more client computing devices for transmitting input/output (I/O) requests via a communications network; an I/O processing service, executed on one or more computing devices, the I/O processing service configured to: obtain a first I/O request from a client computing device of the one or more client computing devices; collect timer information associated with one or more I/O operations responsive to the first I/O request; identify a dependency relationship of the first I/O request with a second I/O request obtained from the client computing device; associate one or more identifiers based on the identified dependency relationship; aggregate, using the associated one or more identifiers, the collected timer information to form aggregated I/O metric information; and store the aggregated I/O metric information in a ring buffer based at least in part on at least one of the associated identifiers, the ring buffer specifying, at least in part, a maximum amount of aggregated I/O metric information to be collected; and a centralized I/O metric processing service, executed on one or more computing devices configured to: obtain, from the ring buffer, the aggregated I/O metric information; process the aggregated I/O metric information; and make accessible the processed aggregated I/O metric information. 2. The system of claim 1 , wherein a length of the ring buffer is based at least in part on an amount of data to be aggregated by the I/O processing service. 3. The system of claim 1 , wherein the second I/O request corresponds to I/O operations occurring subsequent to the first I/O request at storage volumes performing the first and the second I/O requests. 4. The system of claim 1 , wherein the one or more client computing devices correspond to virtual machine instances instantiated on one or more associated physical computing devices. 5. The system of claim 1 , wherein the one or more identifiers includes a trace and a span, wherein the trace is defined based at least in part on identification information of the first I/O request, and the span is defined based at least in part on operations relating to the first I/O request. 6. A computer-implemented method comprising: obtaining a first input/output (I/O) request from a client computing device; identifying, based at least in part on the first I/O request, relationship information, the relationship information defining a dependency relationship between the first I/O request and a second I/O request of a set of I/O requests, wherein the second I/O request is obtained from the client computing device; determining one or more primary identifiers and one or more secondary identifiers corresponding to the relationship information; obtaining, using the determined one or more secondary identifiers, one or more timers associated with operations responsive to processing of the first I/O request; aggregating, using the determined one or more primary identifiers and the determined one or more secondary identifiers, the one or more timers to form one or more metrics; and storing the aggregated one or more metrics based at least in part on the one or more primary identifiers. 7. The computer-implemented method of claim 6 , wherein the defined relationship between the first I/O request and the second I/O request indicates that the second I/O request includes operations to be performed in parallel to operations of the first I/O request, the computer-implemented method further comprising: obtaining at least the second I/O request from the client computing device, wherein the at least the second I/O request and the first I/O request are in the set of I/O requests, and wherein the relationship information indicates that the set of I/O requests are to be performed in parallel. 8. The computer-implemented method of claim 6 further comprising: determining one or more tertiary identifiers, the one or more tertiary identifiers based at least in part on the determined one or more primary identifiers and the determined one or more secondary identifiers; obtaining metric information based at least in part on the first I/O request; and aggregating, using the determined one or more tertiary identifiers, the metric information. 9. The computer-implemented method of claim 8 , wherein the determined one or more primary identifiers are traces, the determined one or more secondary identifiers are spans, and the determined one or more tertiary identifiers are subspans. 10. The computer-implemented method of claim 6 further comprising: obtaining data from the one or more secondary identifiers based at least in part on identification information of the one or more secondary identifiers, the identification information based at least in part on the first I/O request. 11. The computer-implemented method of claim 10 further comprising: identifying, based at least in part on the obtained data about the first I/O request, one or more I/O requests that perform below a performance threshold. 12. The computer-implemented method of claim 11 , wherein the performance threshold corresponds to a percentile. 13. The computer-implemented method of claim 6 further comprising: obtaining the aggregated one or more metrics; processing the aggregated one or more metrics; and making accessible the processed aggregated one or metrics. 14. The computer-implemented method of claim 13 further comprising: identifying one or more outliers. 15. The computer-implemented method of claim 6 , wherein the set of I/O requests comprises one or more writes or one or more reads to storage volumes, and the relationship information indicates the relationship between the one or more writes or the one or more reads. 16. The method of claim 6 , wherein storing the aggregated one or more metrics comprises storing the aggregated one or more metrics in a buffer. 17. A non-transitory computer-readable storage medium including computer-executable instructions comprising: computer-executable instructions that, when executed by a computing device associated with one or more client computing devices: obtain a first I/O request from a client computing device of the one or more client computing devices; identify, based at least in part on the first I/O request, one or more relationships between the first I/O request and a second I/O request from the client computing device; associate one or more primary identifiers and one or more secondary identifiers with at least one of the one or more relationships; collect timer measurements responsive to the first I/O request; aggregate, using at least the one or more primary identifiers, the collected timer measurements to form aggregated measurements; and store the aggregated measurements in a ring buffer based at least in part on the one or more primary identifiers, the ring buffer defining a maximum amount of metric data to be collected. 18. The non-transitory computer-readable storage medium of claim 17 further comprising: additional computer-executable instructions that, when executed, obtain the aggregated measurements; process the aggregated measurements; and make accessible the processed aggregated measurements. 19. The non-transitory computer-readable storage medium of claim 17 , wherein the first I/O request is a read operation to a storage volume, and the second I/O request is related to the read operation, the second I/O request performed in parallel to the first I/O request by the computing device.

Assignees

Inventors

Classifications

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • Network utilisation, e.g. volume of load or congestion level · CPC title

  • Monitoring storage devices or systems · CPC title

  • Improving I/O performance · CPC title

  • Virtual · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9893972B1 cover?
Systems and methods are described providing detailed input/output (I/O) metric information that is collected and gathered by an agent of the storage volume. An I/O request is received by a storage volume, and the agent associates primary and secondary identifiers with that I/O request. For example, a trace may be associated with that I/O request. The agent may store this I/O metric information …
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L43/0876. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Feb 13 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).