Patents by Inventor Christopher W. Fraser

Christopher W. Fraser has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9864676
    Abstract: An application programming interface may receive workload identifiers and checkpoint identifiers from which bottleneck detection may be performed. Workloads may be tracked through various checkpoints in an application and timestamps collected at each checkpoint. From these data, bottlenecks may be identified in real time or by analyzing the data in a subsequent analysis. The workloads may be processed by multiple devices which may comprise a large application. In some cases, the workloads may be processed by different devices in sequence or in a serial fashion, while in other cases workloads may be processed in parallel by different devices. The application programming interface may be part of a bottleneck detection service which may be sold on a pay-per-use model, a subscription model, or some other payment scheme.
    Type: Grant
    Filed: August 7, 2015
    Date of Patent: January 9, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Charles D. Garrett, Christopher W. Fraser
  • Patent number: 9575874
    Abstract: Error logs, bug reports, and other databases identifying problems with a tracer system may be mined to determine how a tracer may interact with a given function, module, or other group of functions. Based on such reports, a tracer may be configured to avoid certain functions or to trace such functions in a specific manner. In some cases, tracer may be configured to limit tracing to certain parameters or with other limitations to avoid any known conditions under which errors occur.
    Type: Grant
    Filed: March 9, 2015
    Date of Patent: February 21, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Renat Gautallin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20160266998
    Abstract: Error logs, bug reports, and other databases identifying problems with a tracer system may be mined to determine how a tracer may interact with a given function, module, or other group of functions. Based on such reports, a tracer may be configured to avoid certain functions or to trace such functions in a specific manner. In some cases, tracer may be configured to limit tracing to certain parameters or with other limitations to avoid any known conditions under which errors occur.
    Type: Application
    Filed: March 9, 2015
    Publication date: September 15, 2016
    Inventors: Renat Gautallin, Alexander G. Gounares, Christopher W. Fraser
  • Patent number: 9417993
    Abstract: Real time analysis of tracing data may identify functions for which tracing may be enhanced or reduced. A tracer that generates function-level data may have an aggregator that summarizes the data. Potential changes to tracing configuration may be identified by analyzing the summarized data to determine whether or not each function is being traced at a level commensurate with that function's impact to the summarized data. Those functions with little significant contribution may have their tracing reduced, while those functions with more significant contribution may have their tracing enhanced. The analysis of the summarized data may be performed in real time in some instances, causing a tracer to change the data collected while an application executes.
    Type: Grant
    Filed: August 7, 2015
    Date of Patent: August 16, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Patent number: 9389992
    Abstract: A tracing system may use different configurations for tracing various functions in different manners. A configuration may be a group of settings that may define which data elements to collect, as well as the manner in which the data may be summarized, stored, and in some cases, displayed. Example configurations may include debugging configuration, performance optimization configuration, long term monitoring configuration, and others. The tracing system may be able to trace one group of functions with one configuration, while tracing another group of functions in the same application using a different configuration.
    Type: Grant
    Filed: August 7, 2015
    Date of Patent: July 12, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Patent number: 9323651
    Abstract: A bottleneck detector may analyze individual workloads processed by an application by logging times when the workload may be processed at different checkpoints in the application. For each checkpoint, a curve fitting algorithm may be applied, and the fitted curves may be compared between different checkpoints to identify bottlenecks or other poorly performing sections of the application. A real time implementation of a detection system may compare newly captured data points against historical curves to detect a shift in the curve, which may indicate a bottleneck. In some cases, the fitted curves from neighboring checkpoints may be compared to identify sections of the application that may be a bottleneck. An automated system may apply one set of checkpoints in an application, identify an area for further investigation, and apply a second set of checkpoints in the identified area. Such a system may recursively search for bottlenecks in an executing application.
    Type: Grant
    Filed: April 18, 2013
    Date of Patent: April 26, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Charles D. Garrett, Christopher W. Fraser
  • Patent number: 9323652
    Abstract: A bottleneck detector may use an iterative method to identify a bottleneck with specificity. An automated checkpoint inserter may place checkpoints in an application. When a bottleneck is detected in an area of an application, the first set of checkpoints may be removed and a new set of checkpoints may be placed in the area of the bottleneck. The process may iterate until a bottleneck may be identified with enough specificity to aid a developer or administrator of an application. In some cases, the process may identify a specific function or line of code where a bottleneck occurs.
    Type: Grant
    Filed: April 18, 2013
    Date of Patent: April 26, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Charles D. Garrett, Christopher W. Fraser
  • Patent number: 9298589
    Abstract: A tracing system may be updated to include, exclude, or modify tracing configurations for functions based on how a user consumes tracing results. The user's interactions with graphical representations, inspections of data, and other interactions may indicate which functions may be interesting and which functions may not be. The user's interactions may be classified by use, such as during debugging, performance testing, and ongoing monitoring, and multiple user's interactions with the same function, library, module, source code file, or other groups of functions may be combined to predict a user's interest in a function.
    Type: Grant
    Filed: February 23, 2015
    Date of Patent: March 29, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Renat Gautallin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20150347283
    Abstract: A tracing system may use different configurations for tracing various functions in different manners. A configuration may be a group of settings that may define which data elements to collect, as well as the manner in which the data may be summarized, stored, and in some cases, displayed. Example configurations may include debugging configuration, performance optimization configuration, long term monitoring configuration, and others. The tracing system may be able to trace one group of functions with one configuration, while tracing another group of functions in the same application using a different configuration.
    Type: Application
    Filed: August 7, 2015
    Publication date: December 3, 2015
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20150347268
    Abstract: An application programming interface may receive workload identifiers and checkpoint identifiers from which bottleneck detection may be performed. Workloads may be tracked through various checkpoints in an application and timestamps collected at each checkpoint. From these data, bottlenecks may be identified in real time or by analyzing the data in a subsequent analysis. The workloads may be processed by multiple devices which may comprise a large application. In some cases, the workloads may be processed by different devices in sequence or in a serial fashion, while in other cases workloads may be processed in parallel by different devices. The application programming interface may be part of a bottleneck detection service which may be sold on a pay-per-use model, a subscription model, or some other payment scheme.
    Type: Application
    Filed: August 7, 2015
    Publication date: December 3, 2015
    Inventors: Charles D. Garrett, Christopher W. Fraser
  • Publication number: 20150347277
    Abstract: Real time analysis of tracing data may identify functions for which tracing may be enhanced or reduced. A tracer that generates function-level data may have an aggregator that summarizes the data. Potential changes to tracing configuration may be identified by analyzing the summarized data to determine whether or not each function is being traced at a level commensurate with that function's impact to the summarized data. Those functions with little significant contribution may have their tracing reduced, while those functions with more significant contribution may have their tracing enhanced. The analysis of the summarized data may be performed in real time in some instances, causing a tracer to change the data collected while an application executes.
    Type: Application
    Filed: August 7, 2015
    Publication date: December 3, 2015
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20150242303
    Abstract: A tracing system may be updated to include, exclude, or modify tracing configurations for functions based on how a user consumes tracing results. The user's interactions with graphical representations, inspections of data, and other interactions may indicate which functions may be interesting and which functions may not be. The user's interactions may be classified by use, such as during debugging, performance testing, and ongoing monitoring, and multiple user's interactions with the same function, library, module, source code file, or other groups of functions may be combined to predict a user's interest in a function.
    Type: Application
    Filed: February 23, 2015
    Publication date: August 27, 2015
    Inventors: Renat GAUTALLIN, Alexander G. GOUNARES, Christopher W. FRASER
  • Patent number: 9021445
    Abstract: A tracing system may use an evaluation mechanism to determine which functions to include or exclude during tracing. The architecture may evaluate functions when functions or groups of functions may be loaded for execution, as well as each time a function may be encountered. The evaluation mechanism may use whitelists, blacklists, and various expressions to identify which functions to trace and which functions to exclude. The evaluation mechanism may evaluate an expression that may identify specific conditions under which a function may be traced or not traced. The tracing mechanism may create wrapping functions for each function, including callback functions.
    Type: Grant
    Filed: June 12, 2013
    Date of Patent: April 28, 2015
    Assignee: Concurix Corporation
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Patent number: 8978016
    Abstract: Error logs, bug reports, and other databases identifying problems with a tracer system may be mined to determine how a tracer may interact with a given function, module, or other group of functions. Based on such reports, a tracer may be configured to avoid certain functions or to trace such functions in a specific manner. In some cases, tracer may be configured to limit tracing to certain parameters or with other limitations to avoid any known conditions under which errors occur.
    Type: Grant
    Filed: June 12, 2013
    Date of Patent: March 10, 2015
    Assignee: Concurix Corporation
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Patent number: 8966452
    Abstract: A tracing system may be updated to include, exclude, or modify tracing configurations for functions based on how a user consumes tracing results. The user's interactions with graphical representations, inspections of data, and other interactions may indicate which functions may be interesting and which functions may not be. The user's interactions may be classified by use, such as during debugging, performance testing, and ongoing monitoring, and multiple user's interactions with the same function, library, module, source code file, or other groups of functions may be combined to predict a user's interest in a function.
    Type: Grant
    Filed: June 12, 2013
    Date of Patent: February 24, 2015
    Assignee: Concurix Corporation
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20140317604
    Abstract: Real time analysis of tracing data may identify functions for which tracing may be enhanced or reduced. A tracer that generates function-level data may have an aggregator that summarizes the data. Potential changes to tracing configuration may be identified by analyzing the summarized data to determine whether or not each function is being traced at a level commensurate with that function's impact to the summarized data. Those functions with little significant contribution may have their tracing reduced, while those functions with more significant contribution may have their tracing enhanced. The analysis of the summarized data may be performed in real time in some instances, causing a tracer to change the data collected while an application executes.
    Type: Application
    Filed: June 12, 2013
    Publication date: October 23, 2014
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20140317605
    Abstract: A tracing system may be updated to include, exclude, or modify tracing configurations for functions based on how a user consumes tracing results. The user's interactions with graphical representations, inspections of data, and other interactions may indicate which functions may be interesting and which functions may not be. The user's interactions may be classified by use, such as during debugging, performance testing, and ongoing monitoring, and multiple user's interactions with the same function, library, module, source code file, or other groups of functions may be combined to predict a user's interest in a function.
    Type: Application
    Filed: June 12, 2013
    Publication date: October 23, 2014
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20140317603
    Abstract: A tracing system may use different configurations for tracing various functions in different manners. A configuration may be a group of settings that may define which data elements to collect, as well as the manner in which the data may be summarized, stored, and in some cases, displayed. Example configurations may include debugging configuration, performance optimization configuration, long term monitoring configuration, and others. The tracing system may be able to trace one group of functions with one configuration, while tracing another group of functions in the same application using a different configuration.
    Type: Application
    Filed: June 12, 2013
    Publication date: October 23, 2014
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20140317606
    Abstract: Error logs, bug reports, and other databases identifying problems with a tracer system may be mined to determine how a tracer may interact with a given function, module, or other group of functions. Based on such reports, a tracer may be configured to avoid certain functions or to trace such functions in a specific manner. In some cases, tracer may be configured to limit tracing to certain parameters or with other limitations to avoid any known conditions under which errors occur.
    Type: Application
    Filed: June 12, 2013
    Publication date: October 23, 2014
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser
  • Publication number: 20140317454
    Abstract: A tracing system may use an evaluation mechanism to determine which functions to include or exclude during tracing. The architecture may evaluate functions when functions or groups of functions may be loaded for execution, as well as each time a function may be encountered. The evaluation mechanism may use whitelists, blacklists, and various expressions to identify which functions to trace and which functions to exclude. The evaluation mechanism may evaluate an expression that may identify specific conditions under which a function may be traced or not traced. The tracing mechanism may create wrapping functions for each function, including callback functions.
    Type: Application
    Filed: June 12, 2013
    Publication date: October 23, 2014
    Inventors: Renat Gataullin, Alexander G. Gounares, Christopher W. Fraser