Patents by Inventor Jason Owen Evans

Jason Owen Evans 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: 9880943
    Abstract: Disclosed here are methods, systems, paradigms and structures for deleting shared resources from a cache in a multi-threaded system. The shared resources can be used by a plurality of requests belonging to multiple threads executing in the system. When requests, such as requests for executing script code, and work items, such as work items for deleting a shared resource, are created, a global sequence number is assigned to each of them. The sequence number indicates the order in which the requests and work items are created. A particular work item can be executed to delete the shared resource if there are no requests having a sequence number lesser than that of the particular work item executing in the system. However, if there is at least one request with a sequence number lesser than that of the particular work item executing, the work item is ignored until the request completes executing.
    Type: Grant
    Filed: June 10, 2016
    Date of Patent: January 30, 2018
    Assignee: Facebook, Inc.
    Inventors: Keith Adams, Jason Owen Evans
  • 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: 20160283400
    Abstract: Disclosed here are methods, systems, paradigms and structures for deleting shared resources from a cache in a multi-threaded system. The shared resources can be used by a plurality of requests belonging to multiple threads executing in the system. When requests, such as requests for executing script code, and work items, such as work items for deleting a shared resource, are created, a global sequence number is assigned to each of them. The sequence number indicates the order in which the requests and work items are created. A particular work item can be executed to delete the shared resource if there are no requests having a sequence number lesser than that of the particular work item executing in the system. However, if there is at least one request with a sequence number lesser than that of the particular work item executing, the work item is ignored until the request completes executing.
    Type: Application
    Filed: June 10, 2016
    Publication date: September 29, 2016
    Inventors: Keith Adams, Jason Owen Evans
  • Patent number: 9396007
    Abstract: Disclosed here are methods, systems, paradigms and structures for deleting shared resources from a cache in a multi-threaded system. The shared resources can be used by a plurality of requests belonging to multiple threads executing in the system. When requests, such as requests for executing script code, and work items, such as work items for deleting a shared resource, are created, a global sequence number is assigned to each of them. The sequence number indicates the order in which the requests and work items are created. A particular work item can be executed to delete the shared resource if there are no requests having a sequence number lesser than that of the particular work item executing in the system. However, if there is at least one request with a sequence number lesser than that of the particular work item executing, the work item is ignored until the request completes executing.
    Type: Grant
    Filed: March 22, 2013
    Date of Patent: July 19, 2016
    Assignee: FACEBOOK, INC.
    Inventors: Keith Adams, Jason Owen Evans
  • Patent number: 9311348
    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: Grant
    Filed: May 15, 2015
    Date of Patent: April 12, 2016
    Assignee: Facebook, Inc.
    Inventors: Edwin Thur Gideon Smith, Keith Adams, 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
  • Publication number: 20150248445
    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: May 15, 2015
    Publication date: September 3, 2015
    Inventors: Edwin Thur Gideon Smith, Keith Adams, 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: 9069807
    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: Grant
    Filed: November 30, 2012
    Date of Patent: June 30, 2015
    Assignee: FACEBOOK, INC.
    Inventors: Edwin Thur Gideon Smith, Keith Adams, 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: 20140289734
    Abstract: Disclosed here are methods, systems, paradigms and structures for deleting shared resources from a cache in a multi-threaded system. The shared resources can be used by a plurality of requests belonging to multiple threads executing in the system. When requests, such as requests for executing script code, and work items, such as work items for deleting a shared resource, are created, a global sequence number is assigned to each of them. The sequence number indicates the order in which the requests and work items are created. A particular work item can be executed to delete the shared resource if there are no requests having a sequence number lesser than that of the particular work item executing in the system. However, if there is at least one request with a sequence number lesser than that of the particular work item executing, the work item is ignored until the request completes executing.
    Type: Application
    Filed: March 22, 2013
    Publication date: September 25, 2014
    Applicant: Facebook, Inc.
    Inventors: Keith Adams, 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