Patents by Inventor Michael H. Dawson

Michael H. Dawson 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: 11061743
    Abstract: A computer system for event loop optimization through event ordering within an event loop of a node to improve externally visible attributes of the runtime. The optimization is carried out by labeling a set of events by assigning one or more attributes to each event of the set of events; processing a plurality of events of the set of events for an interval based on at least the attributes of each event of the plurality of events; ordering the events of the plurality of events within the interval based on assigned priorities to the one or more assigned attributes of each event of the plurality of events; and executing the plurality of events in the order determined based on the assigned priorities.
    Type: Grant
    Filed: October 29, 2019
    Date of Patent: July 13, 2021
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Gireesh Punathil
  • Patent number: 10896130
    Abstract: Methods and systems for pre-fetching operations include executing event callbacks in an event loop using a processor until execution stops on a polling request. A path walk is performed on future events in the event loop until the polling request returns to pre-fetch information for the future events into a processor cache associated with the processor. Execution of the event callbacks in the event loop is resumed after the polling request returns.
    Type: Grant
    Filed: October 19, 2016
    Date of Patent: January 19, 2021
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Gireesh Punathil
  • Publication number: 20200065164
    Abstract: A computer system for event loop optimization through event ordering within an event loop of a node to improve externally visible attributes of the runtime. The optimization is carried out by labeling a set of events by assigning one or more attributes to each event of the set of events; processing a plurality of events of the set of events for an interval based on at least the attributes of each event of the plurality of events; ordering the events of the plurality of events within the interval based on assigned priorities to the one or more assigned attributes of each event of the plurality of events; and executing the plurality of events in the order determined based on the assigned priorities.
    Type: Application
    Filed: October 29, 2019
    Publication date: February 27, 2020
    Inventors: Michael H. Dawson, Gireesh Punathil
  • Patent number: 10552318
    Abstract: An illustrative embodiment of a computer-implemented method for working set adjustment receives a request to use less heap memory than an original maximum forming a new maximum, and determines whether a garbage collection will move objects in response to the request. Responsive to a determination the garbage collection will move objects, add a first callback triggered by initiation of the garbage collection and invoking a handler for the first callback notifying a memory manager to free objects allocated by balloon. The first callback completes and the garbage collection starts. A handler for a second callback is invoked which notifies the memory manager to allocate balloon objects and frees backing memory to an operating system, the balloon objects consuming an amount of memory space equal to a remaining portion of memory necessary to return to the operating system. Completion of the second call back allows the garbage collection to proceed as usual.
    Type: Grant
    Filed: January 2, 2018
    Date of Patent: February 4, 2020
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Charles R. Gracie, Graeme Johnson
  • Patent number: 10545802
    Abstract: A method of event loop optimization through event ordering within an event loop of a node to improve externally visible attributes of the runtime. The optimization is carried out by labeling a set of events by assigning one or more attributes to each event of the set of events; processing a plurality of events of the set of events for an interval based on at least the attributes of each event of the plurality of events; ordering the events of the plurality of events within the interval based on assigned priorities to the one or more assigned attributes of each event of the plurality of events; and executing the plurality of events in the order determined based on the assigned priorities.
    Type: Grant
    Filed: March 10, 2017
    Date of Patent: January 28, 2020
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Gireesh Punathil
  • Patent number: 10338899
    Abstract: Embodiments disclose systems, methods and computer program products to perform an operation for sharing artifacts between instances of an application deployed in a cloud computing environment. The operation generally includes upon determining, during staging of the application, that a set of artifacts are not available for instances of the application to share in the cloud computing environment, generating the set of artifacts via a first application instance, storing the set of artifacts, and requesting a re-staging of the application. The operation also includes during the re-staging of the application, generating a file for deploying scaled instances of the application and packing the stored set of artifacts into the generated file via a second application instance. The operation further includes executing an instance scale out of the application with the generated file comprising the stored set of artifacts.
    Type: Grant
    Filed: October 24, 2016
    Date of Patent: July 2, 2019
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Dayal D. Dilli, Kenneth B. Kent, Panagiotis Patros, Peter D. Shipton
  • Patent number: 10261818
    Abstract: Real-time application metrics of an application executed by a virtual machine are dynamically monitored by a controlling agent and analyzed to determine an optimal configuration of the virtual machine for executing the application. Based on the measured metrics, tunable parameters of the virtual machine may be adjusted to achieve desired application performance.
    Type: Grant
    Filed: February 10, 2015
    Date of Patent: April 16, 2019
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Christopher J. Blythe, Michael H. Dawson, Curtis E. Hrischuk, Aaron J. Quirk
  • Patent number: 10235165
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Grant
    Filed: November 9, 2016
    Date of Patent: March 19, 2019
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Publication number: 20180260259
    Abstract: A method of event loop optimization through event ordering within an event loop of a node to improve externally visible attributes of the runtime. The optimization is carried out by labeling a set of events by assigning one or more attributes to each event of the set of events; processing a plurality of events of the set of events for an interval based on at least the attributes of each event of the plurality of events; ordering the events of the plurality of events within the interval based on assigned priorities to the one or more assigned attributes of each event of the plurality of events; and executing the plurality of events in the order determined based on the assigned priorities.
    Type: Application
    Filed: March 10, 2017
    Publication date: September 13, 2018
    Inventors: Michael H. Dawson, Gireesh Punathil
  • Patent number: 10061570
    Abstract: In an approach for removing tenant initialization check per tenant for compiled code, a processor receives a request to create a tenant. A processor creates the tenant. A processor marks a current thread of the tenant as not eligible to run just-in-time (JIT) code, wherein the marking indicates that when a method is invoked, a non-JIT version of the method is executed. A processor executes initialization of a first class from an optimization list, wherein the optimization list is a configurable list of classes to be initialized prior to running JIT code. A processor determines that class initialization has been executed for all classes on the optimization list. A processor adjusts the marking to indicate that the current thread is eligible to run JIT code and that the tenant may run JIT code that assumes, without checking, that classes on the optimization list are initialized.
    Type: Grant
    Filed: September 30, 2016
    Date of Patent: August 28, 2018
    Assignee: International Business Machines Corporation
    Inventors: Oluwatobi A. Ajila, Graham A. Chapman, Michael H. Dawson, San Hong Li, Hui Shi
  • Publication number: 20180121350
    Abstract: An illustrative embodiment of a computer-implemented method for working set adjustment receives a request to use less heap memory than an original maximum forming a new maximum, and determines whether a garbage collection will move objects in response to the request. Responsive to a determination the garbage collection will move objects, add a first callback triggered by initiation of the garbage collection and invoking a handler for the first callback notifying a memory manager to free objects allocated by balloon. The first callback completes and the garbage collection starts. A handler for a second callback is invoked which notifies the memory manager to allocate balloon objects and frees backing memory to an operating system, the balloon objects consuming an amount of memory space equal to a remaining portion of memory necessary to return to the operating system. Completion of the second call back allows the garbage collection to proceed as usual.
    Type: Application
    Filed: January 2, 2018
    Publication date: May 3, 2018
    Inventors: Michael H. Dawson, Charles R. Gracie, Graeme Johnson
  • Publication number: 20180113684
    Abstract: Embodiments disclose systems, methods and computer program products to perform an operation for sharing artifacts between instances of an application deployed in a cloud computing environment. The operation generally includes upon determining, during staging of the application, that a set of artifacts are not available for instances of the application to share in the cloud computing environment, generating the set of artifacts via a first application instance, storing the set of artifacts, and requesting a re-staging of the application. The operation also includes during the re-staging of the application, generating a file for deploying scaled instances of the application and packing the stored set of artifacts into the generated file via a second application instance. The operation further includes executing an instance scale out of the application with the generated file comprising the stored set of artifacts.
    Type: Application
    Filed: October 24, 2016
    Publication date: April 26, 2018
    Inventors: Michael H. DAWSON, Dayal D. DILLI, Kenneth B. KENT, Panagiotis PATROS, Peter D. SHIPTON
  • Publication number: 20180107600
    Abstract: Methods and systems for pre-fetching operations include executing event callbacks in an event loop using a processor until execution stops on a polling request. A path walk is performed on future events in the event loop until the polling request returns to pre-fetch information for the future events into a processor cache associated with the processor. Execution of the event callbacks in the event loop is resumed after the polling request returns.
    Type: Application
    Filed: October 19, 2016
    Publication date: April 19, 2018
    Inventors: Michael H. Dawson, Gireesh Punathil
  • Patent number: 9898405
    Abstract: An illustrative embodiment of a computer-implemented method for working set adjustment receives a request to use less heap memory than an original maximum forming a new maximum, and determines whether a garbage collection will move objects in response to the request. Responsive to a determination the garbage collection will move objects, add a first callback triggered by initiation of the garbage collection and invoking a handler for the first callback notifying a memory manager to free objects allocated by balloon. The first callback completes and the garbage collection starts. A handler for a second callback is invoked which notifies the memory manager to allocate balloon objects and frees backing memory to an operating system. Completion of the second call back allows the garbage collection to proceed as usual.
    Type: Grant
    Filed: March 25, 2015
    Date of Patent: February 20, 2018
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Charles R. Gracie, Graeme Johnson
  • Patent number: 9870240
    Abstract: Embodiments of the present invention disclose an approach for inserting code into a running thread of execution. A computer sets a first set of bits to a first value, wherein the first value indicates that a first set of instructions should be inserted onto a stack. The computer executes a second set of instructions associated with a first safepoint, wherein the second set of instructions comprises one or more instructions to determine if the first set of bits is set to the first value. The computer determines that the first set of bits is set to the first value, and the computer inserts the first set of instructions onto the stack.
    Type: Grant
    Filed: August 30, 2016
    Date of Patent: January 16, 2018
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Graeme Johnson, San Hong Li
  • Publication number: 20180011789
    Abstract: A method, computer program product, and system for reallocating resources of an idle application or program includes a computer for running an application or a program and starting a predetermined time interval. The computer increases a number counter for each event triggered during the predetermined time interval, and the event is a predetermined trigger that is activated during the running of the application or program. The method and system includes comparing a total number of events that occur during the predetermined time interval to a threshold value. The total number of events is the value of the number counter at the end of the predetermined interval. In response to determining, by the computer, the total number of events being below the threshold value, releasing resources allocated to the program by activating, using the computer, either: i) a garbage collector application, or ii) a resource release application.
    Type: Application
    Filed: August 3, 2017
    Publication date: January 11, 2018
    Inventors: Michael H. Dawson, Gireesh Punathil
  • Publication number: 20180011788
    Abstract: A method, computer program product, and system for reallocating resources of an idle application or program includes a computer for running an application or a program and starting a predetermined time interval. The computer increases a number counter for each event triggered during the predetermined time interval, and the event is a predetermined trigger that is activated during the running of the application or program. The method and system includes comparing a total number of events that occur during the predetermined time interval to a threshold value. The total number of events is the value of the number counter at the end of the predetermined interval. In response to determining, by the computer, the total number of events being below the threshold value, releasing resources allocated to the program by activating, using the computer, either: i) a garbage collector application, or ii) a resource release application.
    Type: Application
    Filed: July 8, 2016
    Publication date: January 11, 2018
    Inventors: Michael H. Dawson, Gireesh Punathil
  • Publication number: 20170090920
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Application
    Filed: November 9, 2016
    Publication date: March 30, 2017
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Patent number: 9569206
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Grant
    Filed: September 29, 2015
    Date of Patent: February 14, 2017
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Patent number: 9563447
    Abstract: For each of a plurality of different tenants configured to concurrently execute in a virtual environment, a respective class loader graph can be constructed. For each respective class loader graph, unique types of edges between nodes that affect class loading can be identified. The edges can be traversed. Based on traversing the edges of the class loader graph, a respective unique dependency identifier (UDI) can be assigned to each class loader request. Class loader requests that are assigned the same UDI can be identified in at least two of the tenants. Responsive to identifying the class loader requests that are assigned the same UDI, a shared class loader can be assigned to each of the class loader requests. Each respective class loader request that is assigned the same UDI can be configured to call the shared class loader to load at least one class required by the respective tenant.
    Type: Grant
    Filed: March 25, 2016
    Date of Patent: February 7, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael H. Dawson, Bentley J. Hargrave, Thomas J. Watson