Tracking data of virtual disk snapshots using tree data structures
US-2017052717-A1 · Feb 23, 2017 · US
US11436123B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11436123-B2 |
| Application number | US-202016916219-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 30, 2020 |
| Priority date | Jun 30, 2020 |
| Publication date | Sep 6, 2022 |
| Grant date | Sep 6, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques are provided for application tracing for inline performance analysis. One method comprises obtaining trace events generated by instructions executed in response to trace points in instrumented software; updating, for each trace event, a buffer entry of a sampling buffer that corresponds to a particular processing core and a time window, wherein the buffer entry is identified based on (a) a flow type identifier associated with the instructions, (b) an identifier of a respective trace event, and (c) an identifier of an adjacent trace event to the respective trace event, and wherein the updating comprises updating, for the time window: (i) a first counter indicating a cumulative number of events for the respective and adjacent trace events, and (ii) a second counter indicating a cumulative amount of time between the respective and adjacent trace events; and determining one or more performance metrics associated with the respective and adjacent trace events in the time window using the first and second counters.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: obtaining a plurality of trace events generated by one or more instructions executed in response to trace points placed in instrumented software; updating, for each trace event, a buffer entry of a particular sampling buffer of a plurality of sampling buffers, wherein the particular sampling buffer corresponds to a particular processing core of a plurality of processing cores and a time window, wherein the particular processing core executes the one or more instructions that generated a respective trace event, wherein the buffer entry of the particular sampling buffer is identified based at least in part on (a) a flow type identifier associated with the one or more instructions, (b) an identifier of the respective trace event, and (c) an identifier of an adjacent trace event to the respective trace event, wherein the adjacent trace event corresponds to an adjacent trace point processed by a given execution instance, and wherein the updating comprises (i) updating a first counter indicating a cumulative number of events for the respective trace event and the adjacent trace event for the time window, and (ii) updating a second counter indicating a cumulative amount of time between the respective trace event and the adjacent trace event in the time window; and determining one or more performance metrics associated with the respective trace event and the adjacent trace event in the time window using the first counter and the second counter, wherein the method is performed by at least one processing device comprising a processor coupled to a memory. 2. The method of claim 1 , further comprising determining one or more of an average and a variance of the time between the respective trace event and the adjacent trace event in the time window using the first counter and the second counter. 3. The method of claim 1 , further comprising determining one or more of a minimum and a maximum of the amount of time between the respective trace event and the adjacent trace event in the time window for a given flow type. 4. The method of claim 1 , further comprising destaging a content of the buffer entries of the plurality of sampling buffers using at least one destage thread. 5. The method of claim 1 , wherein the flow type identifier is identified in the instrumented software. 6. The method of claim 5 , wherein the flow type identifier identifies a flow type comprising one or more of a read synchronous flow, a write synchronous flow, a disk defragmentation flow, a disk rebuild flow, a synchronous execution flow and a background execution flow. 7. The method of claim 1 , wherein the particular sampling buffer is identified by applying a hash operation to (a) the flow type identifier associated with the one or more instructions, (b) the identifier of the respective trace event, and (c) the identifier of the adjacent trace event to the respective trace event. 8. An apparatus comprising: at least one processing device comprising a processor coupled to a memory; the at least one processing device being configured to implement the following steps: obtaining a plurality of trace events generated by one or more instructions executed in response to trace points placed in instrumented software; updating, for each trace event, a buffer entry of a particular sampling buffer of a plurality of sampling buffers, wherein the particular sampling buffer corresponds to a particular processing core of a plurality of processing cores and a time window, wherein the particular processing core executes the one or more instructions that generated a respective trace event, wherein the buffer entry of the particular sampling buffer is identified based at least in part on (a) a flow type identifier associated with the one or more instructions, (b) an identifier of the respective trace event, and (c) an identifier of an adjacent trace event to the respective trace event, wherein the adjacent trace event corresponds to an adjacent trace point processed by a given execution instance, and wherein the updating comprises (i) updating a first counter indicating a cumulative number of events for the respective trace event and the adjacent trace event for the time window, and (ii) updating a second counter indicating a cumulative amount of time between the respective trace event and the adjacent trace event in the time window; and determining one or more performance metrics associated with the respective trace event and the adjacent trace event in the time window using the first counter and the second counter. 9. The apparatus of claim 8 , further comprising determining one or more of an average and a variance of the time between the respective trace event and the adjacent trace event in the time window using the first counter and the second counter. 10. The apparatus of claim 8 , further comprising determining one or more of a minimum and a maximum of the amount of time between the respective trace event and the adjacent trace event in the time window for a given flow type. 11. The apparatus of claim 8 , further comprising destaging a content of the buffer entries of the plurality of sampling buffers using at least one destage thread. 12. The apparatus of claim 8 , wherein the flow type identifier is identified in the instrumented software. 13. The apparatus of claim 12 , wherein the flow type identifier identifies a flow type comprising one or more of a read synchronous flow, a write synchronous flow, a disk defragmentation flow, a disk rebuild flow, a synchronous execution flow and a background execution flow. 14. The apparatus of claim 8 , wherein the particular sampling buffer is identified by applying a hash operation to (a) the flow type identifier associated with the one or more instructions, (b) the identifier of the respective trace event, and (c) the identifier of the adjacent trace event to the respective trace event. 15. A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform the following steps: obtaining a plurality of trace events generated by one or more instructions executed in response to trace points placed in instrumented software; updating, for each trace event, a buffer entry of a particular sampling buffer of a plurality of sampling buffers, wherein the particular sampling buffer corresponds to a particular processing core of a plurality of processing cores and a time window, wherein the particular processing core executes the one or more instructions that generated a respective trace event, wherein the buffer entry of the particular sampling buffer is identified based at least in part on (a) a flow type identifier associated with the one or more instructions, (b) an identifier of the respective trace event, and (c) an identifier of an adjacent trace event to the respective trace event, wherein the adjacent trace event corresponds to an adjacent trace point processed by a given execution instance, and wherein the updating comprises (i) updating a first counter indicating a cumulative number of events for the respective trace event and the adjacent trace event for the time window, and (ii) updating a second counter indicating a cumulative amount of time between the respective trace event and the adjacent trace event in the time window; and determining one or more performance metrics associated with the respective trace event and the adjacent trace event in the time window using the first counter and the second counter.
Performance evaluation by tracing or monitoring · CPC title
for systems · CPC title
where the computing system component is a software system · CPC title
Event-based monitoring · CPC title
Monitoring involving counting · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.