Patents by Inventor John W. Nicol
John W. Nicol 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: 10191657Abstract: The disclosed embodiments provide a system for detecting and managing memory inefficiency in a software program. During operation, the system obtains a first snapshot of a heap for a software program, wherein the first snapshot includes a first set of objects stored in the heap at a first time. Next, the system applies a compression technique to the first snapshot to obtain a first set of inefficiency metrics for the first set of objects, wherein each inefficiency metric in the first set of inefficiency metrics represents a memory inefficiency of an object in the heap at the first time. The system then outputs the first set of inefficiency metrics with additional attributes of the first set of objects to improve identification of the memory inefficiency in the software program.Type: GrantFiled: December 15, 2015Date of Patent: January 29, 2019Assignee: Microsoft Technology Licensing, LLCInventors: John W. Nicol, Cuong H. Tran, Haricharan K. Ramachandra, Badrinath K. Sridharan
-
Patent number: 10019340Abstract: A system, apparatus, and methods are provided for managing on-demand profiling of one or more instances of a software application executing on a plurality of machines within one or more data centers. During operation, the system executes the one or more instances of the software application on the plurality of machines. Next, the system publishes, to a command channel, a command message that comprises a profiling request, wherein the profiling request specifies a subset of the machines. The system then receives, via a data channel, one or more data messages from the subset of the machines, wherein the data messages comprise data gathered by the subset of the machines in response to receiving the command message. Next, the system then evaluates the performance of the software application by aggregating and processing the data messages. Responsive to detecting an anomaly in the performance, the system then executes one or more remedies.Type: GrantFiled: March 21, 2016Date of Patent: July 10, 2018Assignee: Microsoft Technology Licensing, LLCInventors: John W. Nicol, Zhenyun Zhuang, Arman H. Boehm, Tao Feng, Haricharan K. Ramachandra, Badrinath K. Sridharan
-
Patent number: 9952787Abstract: The disclosed embodiments provide a system for detecting and managing inefficiency in external services. During operation, the system obtains a snapshot of a data stream transmitted over an external service from a computer system at a first time. Next, the system applies a compression technique to the snapshot to obtain a set of inefficiency metrics for a set of data elements in the snapshot. The system then outputs the set of inefficiency metrics with additional attributes of the data stream to improve identification of inefficiency in the data stream.Type: GrantFiled: May 20, 2016Date of Patent: April 24, 2018Assignee: Microsoft Technology Licensing, LLCInventors: John W. Nicol, Ritesh Maheshwari, Nicholas P. Baggott, Haricharan K. Ramachandra, Badrinath K. Sridharan
-
Patent number: 9952772Abstract: The disclosed embodiments provide a system for detecting and managing inefficiency in local storage. During operation, the system obtains a first snapshot of data in local storage of a computer system, wherein the first snapshot comprises a first set of data elements in the local storage at a first time. Next, the system applies a compression technique to the first snapshot to obtain a first set of inefficiency metrics for the first set of data elements. The system then outputs the first set of inefficiency metrics with additional attributes of the data to improve management of inefficiency in the data.Type: GrantFiled: May 20, 2016Date of Patent: April 24, 2018Assignee: Microsoft Technology Licensing, LLCInventors: John W. Nicol, Ritesh Maheshwari, Nicholas P. Baggott, Haricharan K. Ramachandra, Badrinath K. Sridharan
-
Publication number: 20170336995Abstract: The disclosed embodiments provide a system for detecting and managing inefficiency in external services. During operation, the system obtains a snapshot of a data stream transmitted over an external service from a computer system at a first time. Next, the system applies a compression technique to the snapshot to obtain a set of inefficiency metrics for a set of data elements in the snapshot. The system then outputs the set of inefficiency metrics with additional attributes of the data stream to improve identification of inefficiency in the data stream.Type: ApplicationFiled: May 20, 2016Publication date: November 23, 2017Applicant: LinkedIn CorporationInventors: John W. Nicol, Ritesh Maheshwari, Nicholas P. Baggott, Haricharan K. Ramachandra, Badrinath K. Sridharan
-
Publication number: 20170336984Abstract: The disclosed embodiments provide a system for detecting and managing inefficiency in local storage. During operation, the system obtains a first snapshot of data in local storage of a computer system, wherein the first snapshot comprises a first set of data elements in the local storage at a first time. Next, the system applies a compression technique to the first snapshot to obtain a first set of inefficiency metrics for the first set of data elements. The system then outputs the first set of inefficiency metrics with additional attributes of the data to improve management of inefficiency in the data.Type: ApplicationFiled: May 20, 2016Publication date: November 23, 2017Applicant: LinkedIn CorporationInventors: John W. Nicol, Ritesh Maheshwari, Nicholas P. Baggott, Haricharan K. Ramachandra, Badrinath K. Sridharan
-
Publication number: 20170270024Abstract: A system, apparatus, and methods are provided for managing on-demand profiling of one or more instances of a software application executing on a plurality of machines within one or more data centers. During operation, the system executes the one or more instances of the software application on the plurality of machines. Next, the system publishes, to a command channel, a command message that comprises a profiling request, wherein the profiling request specifies a subset of the machines. The system then receives, via a data channel, one or more data messages from the subset of the machines, wherein the data messages comprise data gathered by the subset of the machines in response to receiving the command message. Next, the system then evaluates the performance of the software application by aggregating and processing the data messages. Responsive to detecting an anomaly in the performance, the system then executes one or more remedies.Type: ApplicationFiled: March 21, 2016Publication date: September 21, 2017Applicant: LinkedIn CorporationInventors: John W. Nicol, Zhenyun Zhuang, Arman H. Boehm, Tao Feng, Haricharan K. Ramachandra, Badrinath K. Sridharan
-
Patent number: 9720817Abstract: In order to perform system-capability testing, an application in an application layer may provide predefined system capabilities and/or requirements of or associated with the application to a communication plugin in a data-link layer, such as availability of communication via a network and/or a latency of the network less than a predefined value. In response, the communication plugin may determine feedback information that specifies whether the predefined system capabilities are available and whether the predefined requirements are satisfied. Then, the communication plugin may provide the feedback information to the application. When the feedback information indicates that a system capability is unavailable, remedial action may be performed. For example, the remedial action may include updating a version of the application, updating a version of the communication plugin, and/or updating a path to a location in a network.Type: GrantFiled: July 16, 2015Date of Patent: August 1, 2017Assignee: LinkedIn CorporationInventors: John W. Nicol, Alan D. Cabrera, Elbert H. Tsay
-
Publication number: 20170168726Abstract: The disclosed embodiments provide a system for detecting and managing memory inefficiency in a software program. During operation, the system obtains a first snapshot of a heap for a software program, wherein the first snapshot includes a first set of objects stored in the heap at a first time. Next, the system applies a compression technique to the first snapshot to obtain a first set of inefficiency metrics for the first set of objects, wherein each inefficiency metric in the first set of inefficiency metrics represents a memory inefficiency of an object in the heap at the first time. The system then outputs the first set of inefficiency metrics with additional attributes of the first set of objects to improve identification of the memory inefficiency in the software program.Type: ApplicationFiled: December 15, 2015Publication date: June 15, 2017Applicant: LinkedIn CorporationInventors: John W. Nicol, Cuong H. Tran, Haricharan K. Ramachandra, Badrinath K. Sridharan
-
Publication number: 20170017565Abstract: In order to perform system-capability testing, an application in an application layer may provide predefined system capabilities and/or requirements of or associated with the application to a communication plugin in a data-link layer, such as availability of communication via a network and/or a latency of the network less than a predefined value. In response, the communication plugin may determine feedback information that specifies whether the predefined system capabilities are available and whether the predefined requirements are satisfied. Then, the communication plugin may provide the feedback information to the application. When the feedback information indicates that a system capability is unavailable, remedial action may be performed. For example, the remedial action may include updating a version of the application, updating a version of the communication plugin, and/or updating a path to a location in a network.Type: ApplicationFiled: July 16, 2015Publication date: January 19, 2017Applicant: LinkedIn CorporationInventors: John W. Nicol, Alan D. Cabrera, Elbert H. Tsay
-
Patent number: 9329858Abstract: The disclosed embodiments provide a system that manages access to resource versions in a shared computing environment. Routing data including locations of the resource versions is used to route a request to a resource version in the shared computing environment. For an application that is implemented by a set of resources, the routing data and the request is used to execute the application using an alternative version of a resource that is under test and default versions of other resources that are not under test.Type: GrantFiled: September 30, 2014Date of Patent: May 3, 2016Assignee: LinkedIn CorporationInventors: John W. Nicol, Dwight E. Holman, Soumya Mahadevan, Jens O. Pillgram-Larsen
-
Publication number: 20160092208Abstract: The disclosed embodiments provide a system that manages access to resource versions in a shared computing environment. Routing data including locations of the resource versions is used to route a request to a resource version in the shared computing environment. For an application that is implemented by a set of resources, the routing data and the request is used to execute the application using an alternative version of a resource that is under test and default versions of other resources that are not under test.Type: ApplicationFiled: September 30, 2014Publication date: March 31, 2016Inventors: John W. Nicol, Dwight E. Holman, Soumya Mahadevan, Jens O. Pillgram-Larsen
-
Patent number: 9135591Abstract: The disclosed embodiments provide a method, system, and apparatus for facilitating use of a software library project. During operation, the system obtains a set of data associated with use of the software library project, wherein the data comprises a set of dependencies of calls and objects associated with the software library project. Next, the system applies a set of business rules to the data to assess one or more characteristics associated with the software library project. The system then enables use of the data and the one or more characteristics in assessing a health of the software library project.Type: GrantFiled: May 15, 2014Date of Patent: September 15, 2015Assignee: LinkedIn CorporationInventors: John W. Nicol, Baron L. Roberts, Jens O. Pillgram-Larsen, David P. McCutcheon