Calculating zoom level timeline data
AssigneeMicrosoft Technology Licensing, LLC
InventorsMayank Agarwal, Xinhua Ji, Alexander Dadiomov
Life of this patent
Estimating the term…
Abstract
The present invention extends to methods, systems, and computer program products for calculating zoom level timeline data. Event aggregators are configured to read execution data from sequentially received input buffers and pre-calculate data chunks for a specified zoom level to create a zoom tree. The density of execution data can be used to determine when pre-calculation is beneficial. In response to a user request, pre-calculated data can be combined with responsively calculated data for presentation to a user. User requests can specify zoom levels and time ranges over which data is to be presented.
Claims23
At a computer system including one or more processors and system memory, the computer system configured to generate visual presentation data representative of computing activities, the visual presentation data generated from buffers containing raw computing activity data for presentation at a plurality of different zoom levels, the plurality of zoom levels varying from a configurable lowest zoom level to a configurable highest zoom level, the plurality of zoom levels having at least one intermediate zoom level between the lowest zoom level and the highest zoom level, each zoom level in the plurality of zoom levels having a specified chunk size covering a specified amount of time, the chunk size for lower zoom levels covering larger specified amounts of time so as to generate visual presentation data with coarser granularity, the chunk size for higher zoom levels covering smaller specified amounts of time so as to generate visual presentation data with finer granularity, the visual presentation data for presentation at a visualizer component, the visualizer component configurable to transition the presentation of the visual presentation data between the plurality of different zoom levels, the computer system also including a plurality of zoom level activity aggregators, each zoom level activity aggregator configured to process raw computing activity data into visual presentation data for presentation at a specified zoom level selected from among the plurality of different zoom levels, a method for formulating visual presentation data for presentation at each of the plurality of different zoom levels for a specified time period, the method comprising:
- an act of receiving a buffer, the buffer including raw computing activity data for a first time period within the specified time period, the first time period having a start time and an end time;
- an act of determining that a portion of the buffer is sparsely populated by determining that the data density within the portion of the buffer is below a threshold data density, the portion of the buffer being from the start time to an intermediate time, the intermediate time being prior to the end time;
- an act of identifying a cutoff zoom level, zoom levels above the cutoff zoom level covering specified amounts of time that are completely within the buffer portion, zoom levels at and below the cutoff zoom level covering specified amounts of time that extend outside the buffer portion;
- an act of accessing a dynamically variable zoom level activity aggregator stack, the zoom level activity aggregator stack including a plurality of zoom level activity aggregators for zoom levels ranging from a specified lowest zoom level to a specified higher zoom level, the depth of the dynamically variable aggregator stack being variable depending on the data density of the raw computing activity data;
- for each zoom level activity aggregator in the zoom level activity aggregator stack, an act of sending the buffer to the zoom level activity aggregator for processing to generate pre-calculating visual presentation data chunks for a corresponding zoom level;
- for any zoom levels above specified higher zoom level up to and including the cutoff zoom level:
- an act of configuring a zoom level activity aggregator for the zoom level;
- an act of sending the buffer to the configured zoom level activity aggregator for processing to generate visual presentation data for the zoom level;
- and
- an act of pushing the configured zoom level activity aggregator onto the zoom level activity aggregator stack;
- subsequent to pushing zoom level activity aggregators for any zoom levels onto the zoom level activity aggregator stack and for each zoom level activity aggregator on the zoom level activity aggregator stack starting with the zoom level activity aggregator for the cutoff zoom level and moving incrementally down to zoom level activity aggregators for lower zoom levels:
- an act of determining if a pre-calculated data chunk for a designated zoom level was completed and flushed out as a result of consuming the buffer;
- and
- an act of dropping the zoom level activity aggregator for the designated zoom level from the zoom level activity aggregator stack, when it is determined that the pre-calculated data chunk was completed and flushed out.
A computer-implemented method for producing an execution visualizer showing a timeline of presentation data representing application execution dynamics, by generating the execution visualizer based on a zoom tree populated with event presentation data pre-calculated for multiple zoom levels, the pre-calculation based on a single pass over raw computing activities for a specified time span, and the computer-implemented method comprising acts of:
- formulating, based on buffer formulation criteria that comprises a time span and a buffer time interval, a plurality of buffers that receive a stream of raw computing activities that represent execution dynamics in a single pass of the stream of raw computing activities over the time span;
- for each different zoom level in a zoom tree:
- receiving in parallel from the plurality of buffers the stream of raw computing activities from the plurality of buffers;
- pre-calculating in parallel for each zoom level the stream of raw computing activities by aggregating the stream of raw computing activities so as to prepare one or more chunks of event presentation data for each zoom level based on the pre-calculated stream of raw computing activities for each zoom level, the pre-calculation based at least on:
- chunking criteria that defines a chunk of time for which a portion of the stream of raw computing activities is to be pre-calculated based on an amount of time displayed on a single screen for a given zoom level;
- and
- event aggregation criteria that determines how computing activities are to be combined for each chunk of a given zoom level;
- populating each different zoom level in the zoom tree with the one or more pre-calculated chunks of presentation data prepared for each different zoom level;
- and
- in response to a request to display presentation data specified in the request by a zoom level and a display time period, retrieving from the zoom tree one or more pre-calculated chunks of presentation data for the specified zoom level and display time;
- and
- presenting the retrieved one or more chunks of presentation data as a timeline for the specified display time.
A computing system structured with an architecture for producing an execution visualizer showing a timeline of presentation data representing application execution dynamics, by generating the execution visualizer based on a zoom tree populated with event presentation data pre-calculated for multiple zoom levels, the pre-calculation based on a single pass over raw computing activities for a specified time span, the computing system comprising:
- a buffer formulation module that formulates, based on buffer formulation criteria that comprises a time span and a buffer time interval, a plurality of buffers that receive a stream of raw computing activities that represent execution dynamics in a single pass over the time span;
- a plurality of event aggregators each corresponding to a different zoom level in a zoom tree, the event aggregators receiving in parallel from the plurality of buffers the stream of raw computing activities from the plurality of buffers, and each of the event aggregators comprising one or more processors executing computer-executable instructions which cause the event aggregators to perform the following process in parallel for each of the different zoom levels of the zoom tree:
- pre-calculating the stream of raw computing activities for each zoom level by aggregating the stream of raw computing activities so as to prepare one or more chunks of event presentation data for each zoom level based on the pre-calculated stream of raw computing activities for each zoom level, the pre-calculation based at least on:
- chunking criteria that defines a chunk of time for which a portion of the stream of raw computing activities is to be pre-calculated based on an amount of time displayed on a single screen for a given zoom level;
- and
- event aggregation criteria that determines how computing activities are to be combined for each chunk of a given zoom level;
- generating the zoom tree by populating each different zoom level in the zoom tree with the one or more pre-calculated chunks of presentation data prepared for each different zoom level;
- and
- a visualizer component which receives a request to display presentation data specified in the request by a zoom level and a display time period, the visualizer component retrieving from the zoom tree one or more pre-calculated chunks of presentation data for the specified zoom level and display time in response to the received request;
- and
- a display device presenting the retrieved one or more chunks of presentation data as a timeline for the specified display time.
A computer program product comprising one or more storage devices containing computer-executable instructions executable by one or more processors for implementing within a computing environment a method for producing an execution visualizer showing a timeline of presentation data representing application execution dynamics, by generating the execution visualizer based on a zoom tree populated with event presentation data pre-calculated for multiple zoom levels, the pre-calculation based on a single pass over raw computing activities for a specified time span, and the computer-implemented method comprising acts of:
- formulating, based on buffer formulation criteria that comprises a time span and a buffer time interval, a plurality of buffers that receive a stream of raw computing activities that represent execution dynamics in a single pass over the time span;
- for each different zoom level in a zoom tree:
- receiving in parallel from the plurality of buffers the stream of raw computing activities from the plurality of buffers;
- pre-calculating in parallel for each zoom level the stream of raw computing activities by aggregating the stream of raw computing activities so as to prepare one or more chunks of event presentation data for each zoom level based on the pre-calculated stream of raw computing activities for each zoom level, the pre-calculation based at least on:
- chunking criteria that defines a chunk of time for which a portion of the stream of raw computing activities is to be pre-calculated based on an amount of time displayed on a single screen for a given zoom level;
- and
- event aggregation criteria that determines how computing activities are to be combined for each chunk of a given zoom level;
- populating each different zoom level in the zoom tree with the one or more pre-calculated chunks of presentation data prepared for each different zoom level;
- and
- in response to a request to display presentation data specified in the request by a zoom level and a display time period, retrieving from the zoom tree one or more pre-calculated chunks of presentation data for the specified zoom level and display time;
- and
- presenting the retrieved one or more chunks of presentation data as a timeline for the specified display time.
Dependencies are inferred from the claim text.