Patents by Inventor Daniel Heidinga

Daniel Heidinga 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: 11086776
    Abstract: A method of maintaining correctness of pointers from a managed heap to off-heap memory includes storing in a cache a first heap object in a managed heap that holds at least one off-heap pointer pointing to a first off-heap data structure and creating a weak reference node linked to the first heap object such that the first heap object is not kept alive by the weak reference node during garbage collection. Further disclosed are systems for maintaining correctness of pointers from a managed heap to off-heap memory.
    Type: Grant
    Filed: August 29, 2018
    Date of Patent: August 10, 2021
    Assignee: International Business Machines Corporation
    Inventors: Bjoern Vaardal, Daniel Heidinga, Graham Chapman
  • Publication number: 20210208914
    Abstract: Resolving segmented constant pools in a virtual machine managed runtime. An embodiment includes allocating, using one or more processors of a computing device, for each specialization created in a class of specializations, a constant pool (CP) cache, assigning an owner to each segment of constant pools, maintaining, in a memory of the computing device, a list of specializations in the class, and copying, upon determining that a CP segment entry visible to the specialization is resolved in the owner, the entry to a specializations cache of the memory. An embodiment includes assigning a new specialized CP segment as an owner of that CP segment and adding a new entry associated with the new specialization to a template class owners table, retrieving, based on looking for entry at runtime, a slot pointed to in the owners table and resolving the CP entry in the constant pool cache of the owner.
    Type: Application
    Filed: January 2, 2020
    Publication date: July 8, 2021
    Applicant: International Business Machines Corporation
    Inventors: Oluwatobi Ajila, daniel Heidinga
  • Patent number: 11042429
    Abstract: Systems and methods for selective stack trace generation during Java exception handling are disclosed. In embodiments, a method includes determining, by a Java virtual machine (JVM) of a computing device, that an exception object escapes a catch block of Java bytecodes; setting, by the JVM of the computing device, an escaped flag based on the determining that the exception object escapes the catch block; walking, by the JVM of the computing device, a call stack to locate an applicable catch block for the exception object, wherein the applicable catch block is the catch block; determining, by the JVM of the computing device, that the escaped flag is set in response to locating the applicable catch block; and creating, by the JVM of the computing device, a stack trace based on the determining that the escaped flag is set.
    Type: Grant
    Filed: January 7, 2019
    Date of Patent: June 22, 2021
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Irwin D'Souza, Kevin J. Langman, Daniel Heidinga
  • Publication number: 20210157552
    Abstract: A computer-implemented method for bytecode class verification includes: encountering a class requiring verification of its bytecode during a run of an application; determining whether class relationship data for the class exists in a shared classes cache; in response to a determination that the class relationship data for the class does not exist in the shared classes cache: performing a linear bytecode walk of the bytecode to identify relationship data for the class and verify that the bytecode is well-formed; and storing the identified relationship data as the class relationship data for the class in the shared classes cache; in response to a determination that the class relationship data for the class does exist in the shared classes cache: retrieving the class relationship data for the class from the shared classes cache; and processing the class relationship data.
    Type: Application
    Filed: November 25, 2019
    Publication date: May 27, 2021
    Inventors: Sharon WANG, Daniel HEIDINGA, Hang SHAO, Oluwatobi AJILA, Graham CHAPMAN
  • Publication number: 20210081220
    Abstract: During verification of a bytecode, when a second class remains to be loaded for verification in an MRE, a verifier in the MRE is prevented from loading the second class, where the bytecode includes a relationship between a first class and the second class. The relationship is recorded and the verifier is caused to omit a loading operation on the second class. An execution is started of an application encoded in the bytecode. The second class is caused to be loaded and verified prior to a use of the second class during the execution.
    Type: Application
    Filed: September 13, 2019
    Publication date: March 18, 2021
    Applicant: International Business Machines Corporation
    Inventors: Daniel Heidinga, Sharon Wang, Oluwatobi Adeoye Ajila, Graham Alan Chapman
  • Patent number: 10936290
    Abstract: A computer-implemented method includes: selecting, by a computer device, a set of fields in a program which are marked as final fields to be treated as constants; adding, by the computer device, detection logic to the program, the detection logic including a process that detects writes to the final fields to be treated as constants; compiling, by the computer device, the program into compiled code; executing, by the computer device, the compiled code; detecting, by the computer device, a write to a first one of the final fields to be treated as constants; and transitioning, by the computer device, execution of the compiled code from the compiled code to an interpreter for processing by compensation code that operates on the first one of the final fields to be treated as constants.
    Type: Grant
    Filed: November 29, 2018
    Date of Patent: March 2, 2021
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Andrew James Craik, Nicholas James Coughlin, Graham Alan Chapman, Daniel Heidinga
  • Publication number: 20200226024
    Abstract: Optimizing containerized applications includes receiving managed runtime code, creating a first container within a managed runtime environment, and executing the managed runtime code in the first container within the managed runtime environment. Responsive to a determination that the managed runtime environment has performed at least one optimization of the managed runtime code to create optimized managed runtime code during a first lifetime of the managed runtime environment, the first container is checkpointed into a first memory image to create a first checkpointed container including the optimized managed runtime code. The first checkpointed container is stored.
    Type: Application
    Filed: January 11, 2019
    Publication date: July 16, 2020
    Applicant: International Business Machines Corporation
    Inventors: ZI JIAN LIN, Gordon Duzhou, Daihee Kim, Daniel Heidinga, Andrew Low, Parker Lees
  • Publication number: 20200218553
    Abstract: Systems and methods for selective stack trace generation during Java exception handling are disclosed. In embodiments, a method includes determining, by a Java virtual machine (JVM) of a computing device, that an exception object escapes a catch block of Java bytecodes; setting, by the JVM of the computing device, an escaped flag based on the determining that the exception object escapes the catch block; walking, by the JVM of the computing device, a call stack to locate an applicable catch block for the exception object, wherein the applicable catch block is the catch block; determining, by the JVM of the computing device, that the escaped flag is set in response to locating the applicable catch block; and creating, by the JVM of the computing device, a stack trace based on the determining that the escaped flag is set.
    Type: Application
    Filed: January 7, 2019
    Publication date: July 9, 2020
    Inventors: Irwin D'SOUZA, Kevin J. LANGMAN, Daniel HEIDINGA
  • Publication number: 20200174763
    Abstract: A computer-implemented method includes: selecting, by a computer device, a set of fields in a program which are marked as final fields to be treated as constants; adding, by the computer device, detection logic to the program, the detection logic including a process that detects writes to the final fields to be treated as constants; compiling, by the computer device, the program into compiled code; executing, by the computer device, the compiled code; detecting, by the computer device, a write to a first one of the final fields to be treated as constants; and transitioning, by the computer device, execution of the compiled code from the compiled code to an interpreter for processing by compensation code that operates on the first one of the final fields to be treated as constants.
    Type: Application
    Filed: November 29, 2018
    Publication date: June 4, 2020
    Inventors: Andrew James CRAIK, Nicholas James COUGHLIN, Graham Alan CHAPMAN, Daniel HEIDINGA
  • Patent number: 10606629
    Abstract: A first execution of an application is performed on a virtual machine. A set of virtual machine parameters associated with the first execution is determined. One or more command lines of the application are mapped to the set of virtual machine parameters. The mapping is stored in a cache. A second execution of the application is performed on the virtual machine. The second execution retrieves the set of virtual machine parameters from the cache.
    Type: Grant
    Filed: December 15, 2017
    Date of Patent: March 31, 2020
    Assignee: International Business Machines Corporation
    Inventors: Daniel Heidinga, Peter D. Shipton, Aleksandar Micic, Devarghya Bhattacharya, Kenneth B. Kent
  • Patent number: 10585692
    Abstract: A first execution of an application is performed on a virtual machine. A set of virtual machine parameters associated with the first execution is determined. One or more command lines of the application are mapped to the set of virtual machine parameters. The mapping is stored in a cache. A second execution of the application is performed on the virtual machine. The second execution retrieves the set of virtual machine parameters from the cache.
    Type: Grant
    Filed: August 15, 2017
    Date of Patent: March 10, 2020
    Assignee: International Business Machines Corporation
    Inventors: Daniel Heidinga, Peter D. Shipton, Aleksandar Micic, Devarghya Bhattacharya, Kenneth B. Kent
  • Publication number: 20190056965
    Abstract: A first execution of an application is performed on a virtual machine. A set of virtual machine parameters associated with the first execution is determined. One or more command lines of the application are mapped to the set of virtual machine parameters. The mapping is stored in a cache. A second execution of the application is performed on the virtual machine. The second execution retrieves the set of virtual machine parameters from the cache.
    Type: Application
    Filed: August 15, 2017
    Publication date: February 21, 2019
    Inventors: Daniel Heidinga, Peter D. Shipton, Aleksandar Micic, Devarghya Bhattacharya, Kenneth B. Kent
  • Publication number: 20190056967
    Abstract: A first execution of an application is performed on a virtual machine. A set of virtual machine parameters associated with the first execution is determined. One or more command lines of the application are mapped to the set of virtual machine parameters. The mapping is stored in a cache. A second execution of the application is performed on the virtual machine. The second execution retrieves the set of virtual machine parameters from the cache.
    Type: Application
    Filed: December 15, 2017
    Publication date: February 21, 2019
    Inventors: Daniel Heidinga, Peter D. Shipton, Aleksandar Micic, Devarghya Bhattacharya, Kenneth B. Kent