Patents by Inventor Andrew John Paroski

Andrew John Paroski 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: 10642589
    Abstract: A method includes receiving a user-defined extension configured to operate on data from a content database and comprising code expressed in a first programming language, the user-defined extension comprising at least one unresolved object and a function calling the at least one unresolved object. On a first pass through the user-defined extension code, each respective unresolved object is bound to a respective placeholder object such that the function calls each respective placeholder object and each respective placeholder object is mapped to the respective unresolved object, and delaying evaluation of the user-defined extension code until a second pass through the user-defined extension code. On the second pass, machine code corresponding to a compiled version of the user-defined extension is obtained by sequentially obtaining machine code for each respective unresolved object as each respective placeholder is called in the function.
    Type: Grant
    Filed: March 13, 2017
    Date of Patent: May 5, 2020
    Assignee: MemSQL, Inc.
    Inventors: Michael Adam Andrews, Andrew John Paroski, Eric Norman Hanson
  • Patent number: 10620925
    Abstract: A method for generating code for queries in a database system includes obtaining a user query in a first programming language, the user query comprising at least one query parameter for selecting data from a content database. The method includes obtaining machine code corresponding to a compiled version of the user query. Obtaining the machine code includes generating code in a second programming language corresponding to a compiled version of the user query, generating byte code defining a plurality of functions corresponding to a compiled version of the code in the second programming language, and obtaining the machine code corresponding to the compiled version of the user query based on the byte code. The method further comprises executing the machine code using the at least one query parameter, thereby returning a result satisfying the at least one query parameter. A related non-transitory computer-readable medium and system are also provided.
    Type: Grant
    Filed: March 30, 2017
    Date of Patent: April 14, 2020
    Assignee: MemSQL, Inc.
    Inventors: Andrew John Paroski, Michael Adams Andrews, Eric Norman Hanson
  • Publication number: 20180260437
    Abstract: A method for generating code for queries in a database system includes obtaining a user query in a first programming language, the user query comprising at least one query parameter for selecting data from a content database. The method includes obtaining machine code corresponding to a compiled version of the user query. Obtaining the machine code includes generating code in a second programming language corresponding to a compiled version of the user query, generating byte code defining a plurality of functions corresponding to a compiled version of the code in the second programming language, and obtaining the machine code corresponding to the compiled version of the user query based on the byte code. The method further comprises executing the machine code using the at least one query parameter, thereby returning a result satisfying the at least one query parameter. A related non-transitory computer-readable medium and system are also provided.
    Type: Application
    Filed: March 30, 2017
    Publication date: September 13, 2018
    Inventors: Andrew John PAROSKI, Michael Adams ANDREWS, Eric Norman HANSON
  • Publication number: 20180260196
    Abstract: A method includes receiving a user-defined extension configured to operate on data from a content database and comprising code expressed in a first programming language, the user-defined extension comprising at least one unresolved object and a function calling the at least one unresolved object. On a first pass through the user-defined extension code, each respective unresolved object is bound to a respective placeholder object such that the function calls each respective placeholder object and each respective placeholder object is mapped to the respective unresolved object, and delaying evaluation of the user-defined extension code until a second pass through the user-defined extension code. On the second pass, machine code corresponding to a compiled version of the user-defined extension is obtained by sequentially obtaining machine code for each respective unresolved object as each respective placeholder is called in the function.
    Type: Application
    Filed: March 13, 2017
    Publication date: September 13, 2018
    Inventors: Michael Adam ANDREWS, Andrew John PAROSKI, Eric Norman HANSON
  • Patent number: 9697022
    Abstract: Scripts are incrementally compiled at runtime to generate executable code. The incremental compilation generates executable code corresponding to a basic block of the script. The executable code for a basic block of script is generated for a set of types of variables of the basic block resulting from execution of the script in response to a request. The generated executable code is stored and executed for subsequent requests if these requests result in the same types of variables for the basic block. The incremental compilation of the script is performed in a lazy fashion, such that executable code is not generated for combinations of types of variables of the script code that are not obtained from requests received at runtime. The script may dynamically generate portions of a web page that is returned in response to a request for execution of the script.
    Type: Grant
    Filed: May 28, 2015
    Date of Patent: July 4, 2017
    Assignee: Facebook, Inc.
    Inventors: Keith Adams, Andrew John Paroski, Jason Owen Evans
  • Publication number: 20150261553
    Abstract: Scripts are incrementally compiled at runtime to generate executable code. The incremental compilation generates executable code corresponding to a basic block of the script. The executable code for a basic block of script is generated for a set of types of variables of the basic block resulting from execution of the script in response to a request. The generated executable code is stored and executed for subsequent requests if these requests result in the same types of variables for the basic block. The incremental compilation of the script is performed in a lazy fashion, such that executable code is not generated for combinations of types of variables of the script code that are not obtained from requests received at runtime. The script may dynamically generate portions of a web page that is returned in response to a request for execution of the script.
    Type: Application
    Filed: May 28, 2015
    Publication date: September 17, 2015
    Inventors: Keith Adams, Andrew John Paroski, Jason Owen Evans
  • Patent number: 9098299
    Abstract: Scripts are incrementally compiled at runtime to generate executable code. The incremental compilation generates executable code corresponding to a basic block of the script. The executable code for a basic block of script is generated for a set of types of variables of the basic block resulting from execution of the script in response to a request. The generated executable code is stored and executed for subsequent requests if these requests result in the same types of variables for the basic block. The incremental compilation of the script is performed in a lazy fashion, such that executable code is not generated for combinations of types of variables of the script code that are not obtained from requests received at runtime. The script may dynamically generate portions of a web page that is returned in response to a request for execution of the script.
    Type: Grant
    Filed: July 11, 2012
    Date of Patent: August 4, 2015
    Assignee: Facebook, Inc.
    Inventors: Keith Adams, Andrew John Paroski, Jason Owen Evans
  • Patent number: 8984542
    Abstract: Disclosed are a method and system for binding a program object in a source code to one of a number of implementations of the program object, using caching techniques. Binding a program object to a particular implementation includes performing the binding process at compile time and runtime of the source code. During compilation phase, the program objects in the source code are identified, and each of the program objects is assigned a slot in a target cache. The slot is configured to store a pointer that points to a particular implementation of a program object to which the slot is assigned. During execution phase, the particular implementation of the program object is determined based on execution flow of the source code. After the particular implementation is determined, the program object is bound to the particular implementation by updating the assigned target cache slot with a pointer pointing to the particular implementation.
    Type: Grant
    Filed: November 30, 2012
    Date of Patent: March 17, 2015
    Assignee: Facebook, Inc.
    Inventors: Keith Adams, Andrew John Paroski, Jason Owen Evans
  • Publication number: 20140157291
    Abstract: Disclosed are a method and system for binding a program object in a source code to one of a number of implementations of the program object, using caching techniques. Binding a program object to a particular implementation includes performing the binding process at compile time and runtime of the source code. During compilation phase, the program objects in the source code are identified, and each of the program objects is assigned a slot in a target cache. The slot is configured to store a pointer that points to a particular implementation of a program object to which the slot is assigned. During execution phase, the particular implementation of the program object is determined based on execution flow of the source code. After the particular implementation is determined, the program object is bound to the particular implementation by updating the assigned target cache slot with a pointer pointing to the particular implementation.
    Type: Application
    Filed: November 30, 2012
    Publication date: June 5, 2014
    Inventors: Keith C. Adams, Andrew John Paroski, Jason Owen Evans
  • Publication number: 20140156708
    Abstract: Disclosed are a method and system for implementing an array data type of a programming language using various data structures. The disclosed method includes a plurality of implementations in which the array data type may be implemented. The implementations provide an efficient way to retrieve elements from the array, especially in the order they are inserted into the array. The data structures also minimize the computing resources required to manage and access the array. The disclosed technique also selects one of the many implementations based on criteria such as access pattern or size of the array.
    Type: Application
    Filed: November 30, 2012
    Publication date: June 5, 2014
    Applicant: Facebook, Inc.
    Inventors: Keith Adams, Andrew John Paroski, Jason Owen Evans
  • Publication number: 20130074052
    Abstract: Scripts are incrementally compiled at runtime to generate executable code. The incremental compilation generates executable code corresponding to a basic block of the script. The executable code for a basic block of script is generated for a set of types of variables of the basic block resulting from execution of the script in response to a request. The generated executable code is stored and executed for subsequent requests if these requests result in the same types of variables for the basic block. The incremental compilation of the script is performed in a lazy fashion, such that executable code is not generated for combinations of types of variables of the script code that are not obtained from requests received at runtime. The script may dynamically generate portions of a web page that is returned in response to a request for execution of the script.
    Type: Application
    Filed: July 11, 2012
    Publication date: March 21, 2013
    Inventors: Keith Adams, Andrew John Paroski, Jason Owen Evans