Patents by Inventor Craig W. Stanfill

Craig W. Stanfill 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: 11916759
    Abstract: A computing system includes a distributed computing cluster including a plurality of computing nodes interconnected by an interconnect network over which the computing nodes of the plurality of computing nodes communicate with each other by passing messages. The computing nodes are configured with a first parameter governing transmissions of messages by the computing nodes over the interconnect network. The computing nodes are configured to accumulate messages for transmission as a group of messages according to the first parameter, and the computing system is configured to limit injections of computing requests into the distributed computing cluster according to a second parameter. A controller is configured to receive at least one predetermined service level requirement and to control a value of the second parameter and a value of the first parameter to control a computational throughput of the distributed computing cluster while complying with the at least one service level requirement.
    Type: Grant
    Filed: May 18, 2021
    Date of Patent: February 27, 2024
    Assignee: Ab Initio Technology LLC
    Inventor: Craig W. Stanfill
  • Publication number: 20220391257
    Abstract: A method for performing a distributed computation on a computing system using computational resources dynamically allocated using a computational resource manager includes storing information specifying quantities of computational resources associated with respective ones of a number of program portions of the program, where the program portions perform successive transformations of data and each program portion uses computational resources granted by the computational resource manager enabling computation associated with that program portion to be performed in the computing system, requesting a first quantity of computational resources associated with a first program portion of the number of program portions from the computational resource manager, receiving a second quantity of computational resources from the computational resource manager, less than the requested first quantity of computational resources, performing computation associated with the first portion of the program using the second quantity of
    Type: Application
    Filed: June 3, 2022
    Publication date: December 8, 2022
    Inventors: Stephen J. Schmidt, David Ricardo, Craig W. Stanfill, Jacky Cheuk Kei Chu, Ephraim Meriwether Vishniac
  • Patent number: 11301445
    Abstract: A graph-based program specification includes: a plurality of components, each corresponding to a processing task and including one or more ports for sending or receiving one or more data elements; and one or more links, each connecting an output port of an upstream component of the plurality of components to an input port of a downstream component of the plurality of components. Prepared code is generated representing subsets of the plurality of components, including: identifying a plurality of subset boundaries between components in different subsets based at least in part on characteristics of linked components; forming the subsets based on the identified subset boundaries; and generating prepared code for each formed subset that when used for execution by a runtime system causes processing tasks corresponding to the components in that formed subset to be performed according to information embedded in the prepared code for that formed subset.
    Type: Grant
    Filed: December 3, 2019
    Date of Patent: April 12, 2022
    Assignee: Ab Initio Technology LLC
    Inventors: Craig W. Stanfill, Richard Shapiro, Stephen A. Kukolich
  • Patent number: 11295049
    Abstract: A method implemented by a data processing system for processing data items of a stream of data items, including: accessing a specification that represents the executable logic, wherein a state of the specification for a particular value of the key specifies one or more portions of the executable logic that are executable in that state; receiving, over an input device or port, data items of a stream of data; for a first one of the data items of the stream, identifying a first state of the specification for a value of the key associated with that first one of the data items; processing, by the data processing system, the first one of the data items according to one or more portions of executable logic that are represented in the specification as being associated with the first state.
    Type: Grant
    Filed: February 3, 2020
    Date of Patent: April 5, 2022
    Assignee: Ab Initio Technology LLC
    Inventors: Joel Gould, Scott Studer, Craig W. Stanfill
  • Patent number: 11288284
    Abstract: A method for managing data in a distributed data processing system including a number of processing nodes includes storing data units in data stores that are associated with a number of different levels of durability. The method includes maintaining indicators including a first indicator associated with a first durability level and a second indicator associated with a second durability level. The first indicator is maintained to reflect a time interval at which all sets of data units associated with the time interval are stored at the first durability level. The second indicator is maintained to reflect a timer interval at which all sets of data units associated with the time interval are stored at the second durability level. The first and second indicators are used to manage processing of the data units in the distributed data processing system.
    Type: Grant
    Filed: October 30, 2018
    Date of Patent: March 29, 2022
    Assignee: Ab Initio Technology LLC
    Inventor: Craig W. Stanfill
  • Patent number: 11281596
    Abstract: One or more mappings each define a correspondence between one or more input attributes of an input entity and one or more output attributes of an output entity, where the input entity includes one or more key attributes identified as part of a unique key, and the output entity includes one or more key attributes identified as part of a unique key. Generating instances of the output entity includes: determining one or more mapped input attributes of the input entity that correspond to each of the key attributes of the output entity, based on the mappings; and comparing the mapped input attributes with the key attributes of the input entity to determine whether the mapped input attributes include: (1) all of the key attributes of the input entity, or (2) fewer than all of the key attributes of the input entity.
    Type: Grant
    Filed: January 28, 2019
    Date of Patent: March 22, 2022
    Assignee: Ab Initio Technology LLC
    Inventors: Jed Roberts, Craig W. Stanfill, Scott Studer
  • Patent number: 11281693
    Abstract: A method for processing tasks in a distributed data processing system includes processing sets of tasks. The method includes maintaining, at a first processing node a number of counters including a working counter indicating a current time interval of the number of time intervals in the distributed data processing system, and a replication counter indicating a time interval of the number of time intervals for which at least one of (1) all tasks associated with that time interval, or (2) all corresponding results associated with that time interval, are replicated at multiple processing nodes of the number of processing nodes. The method includes providing messages from the first processing node to the other processing nodes of the number of processing nodes, the messages including the working counter and the replication counter.
    Type: Grant
    Filed: October 30, 2018
    Date of Patent: March 22, 2022
    Assignee: Ab Initio Technology LLC
    Inventors: Craig W. Stanfill, Joseph Skeffington Wholey, III
  • Patent number: 11269918
    Abstract: A method for managing a distributed data processing system, the method implementing counters to track durability states of data units in the distributed data processing system, wherein the counters are used to manage processing of the data units in the distributed data processing system.
    Type: Grant
    Filed: October 30, 2018
    Date of Patent: March 8, 2022
    Assignee: Ab Initio Technology LLC
    Inventors: Bryan Phil Douros, Craig W. Stanfill, Joseph Skeffington Wholey, III
  • Publication number: 20210367861
    Abstract: A computing system includes a distributed computing cluster including a plurality of computing nodes interconnected by an interconnect network over which the computing nodes of the plurality of computing nodes communicate with each other by passing messages. The computing nodes are configured with a first parameter governing transmissions of messages by the computing nodes over the interconnect network. The computing nodes are configured to accumulate messages for transmission as a group of messages according to the first parameter, and the computing system is configured to limit injections of computing requests into the distributed computing cluster according to a second parameter. A controller is configured to receive at least one predetermined service level requirement and to control a value of the second parameter and a value of the first parameter to control a computational throughput of the distributed computing cluster while complying with the at least one service level requirement.
    Type: Application
    Filed: May 18, 2021
    Publication date: November 25, 2021
    Inventor: Craig W. Stanfill
  • Patent number: 11093456
    Abstract: Entity data represent entities related according to a hierarchy, with at least one root entity at a highest level and one or more entities at one or more levels below the highest level. One or more entities each have multiple instances, and at least one attribute having respective elements for each of the instances. Input data includes expressions that express functions of arguments, with one or more of the arguments referencing an attribute of an entity represented in the entity data. Processing expressions includes: (a) analyzing an expression to determine, for each of one or more attributes, at least one of: (1) a position in the hierarchy of an entity of the attribute, or (2) a number of elements of a result of a function applied to an argument that references the attribute, and (b) evaluating the expression, or indicating an error based on a result of analyzing the expression.
    Type: Grant
    Filed: July 16, 2019
    Date of Patent: August 17, 2021
    Assignee: Ab Initio Technology LLC
    Inventors: Craig W. Stanfill, Richard Shapiro
  • Patent number: 11074240
    Abstract: A method for processing state update requests in a distributed data processing system includes processing a set of state update requests associated with a first time interval including maintaining a count of issued state update requests for the set of state update requests, maintaining a count of state updates performed for the first set of state update requests, and updating a state consistency indicator to indicate that state updates associated with all state update requests of the first set of state update requests have been performed in response to determining that the count of state updates performed for the first set of state update requests equals the count of issued state update requests for the first set of state update requests.
    Type: Grant
    Filed: October 30, 2018
    Date of Patent: July 27, 2021
    Assignee: Ab Initio Technology LLC
    Inventor: Craig W. Stanfill
  • Patent number: 10949414
    Abstract: A method for processing data using a distributed data processing system includes providing input data to the distributed data processing system from a distributed data processing system interface component in communication with the distributed data processing system. The distributed data processing system processes the input data to generate a response, which it provides to the distributed data processing system interface component. The distributed data processing system interface component holds the response in escrow until it receives an indication from the distributed data processing system that the response has reached a sufficient level of durability.
    Type: Grant
    Filed: October 30, 2018
    Date of Patent: March 16, 2021
    Assignee: Ab Initio Technology LLC
    Inventors: Bryan Phil Douros, Craig W. Stanfill
  • Publication number: 20210049146
    Abstract: Distributed processing of a data collection includes receiving information for configuring a distributed processing system. A first configuration of components is formed including sources of data elements and workers configured to process data elements, distributed among computing resources. Each data element includes a partition value that identifies a subset of the workers according to a partition rule. Data elements are accepted from the sources for a first part of the data collection in a first processing epoch and the data elements are routed through the first configuration. After accepting a first part of the data collection, change of configuration is initiated to a second configuration. A succession of two or more transitions between configurations of components is performed to a succession of modified configurations, a last of which corresponds to the second configuration. Further data elements are accepted from sources of the second configuration in a second processing epoch.
    Type: Application
    Filed: March 27, 2020
    Publication date: February 18, 2021
    Inventors: Jeffrey Newbern, Craig W. Stanfill
  • Patent number: 10896025
    Abstract: User input is received specifying components of a graph-based program specification. User input is received specifying links, at least some connecting an output port of an upstream component to an input port of a downstream component. The graph-based program specification is processed to identify one or more subsets of the components, including: identifying one or more subset entry points and one or more subset exit points that occur between components in different subsets based at least in part on data processing characteristics of linked components, and forming the subsets based on the identified subset entry points and exit points. A visual representation of the formed subsets is rendered within a user interface. Prepared code is generated for each formed subset that when used for execution by a runtime system causes processing tasks corresponding to the components in each formed subset to be performed.
    Type: Grant
    Filed: December 10, 2018
    Date of Patent: January 19, 2021
    Assignee: Ab Initio Technology LLC
    Inventors: Craig W. Stanfill, Adam Weiss, Andrew F. Roberts, Stephen A. Kukolich
  • Patent number: 10885003
    Abstract: A graph-based program specification includes: a plurality of components, each corresponding to a processing task and including one or more ports, including scalar data ports for sending or receiving a single data element and collection data ports for sending or receiving a collection of multiple data elements; and one or more links, each connecting an output port of an upstream component to an input port of a downstream component. Prepared code is generated representing subsets of the plurality of components, including: identifying one or more subset boundaries, including identifying one or more links connecting a collection data port of a component to a scalar data port of a component; forming the subsets based on the identified subset boundaries; and generating prepared code for each formed subset that when used for execution by a runtime system causes processing tasks corresponding to the components in each formed subset to be performed.
    Type: Grant
    Filed: November 17, 2017
    Date of Patent: January 5, 2021
    Assignee: Ab Initio Technology LLC
    Inventors: Craig W. Stanfill, Richard Shapiro, Stephen A. Kukolich
  • Publication number: 20200349135
    Abstract: A graph-based program specification includes: a plurality of components, each corresponding to a processing task and including one or more ports for sending or receiving one or more data elements; and one or more links, each connecting an output port of an upstream component of the plurality of components to an input port of a downstream component of the plurality of components. Prepared code is generated representing subsets of the plurality of components, including: identifying a plurality of subset boundaries between components in different subsets based at least in part on characteristics of linked components; forming the subsets based on the identified subset boundaries; and generating prepared code for each formed subset that when used for execution by a runtime system causes processing tasks corresponding to the components in that formed subset to be performed according to information embedded in the prepared code for that formed subset.
    Type: Application
    Filed: December 3, 2019
    Publication date: November 5, 2020
    Inventors: Craig W. Stanfill, Richard Shapiro, Stephen A. Kukolich
  • Patent number: 10817310
    Abstract: A graph-based program specification includes components corresponding to tasks and directed links between ports of the components, including: a first type of link configuration defined by respective output and input ports of linked components, and a second type of link configuration defined by respective output and input ports of linked components. A compiler recognizes different types of link configurations and provides in a target program specification occurrences of a target primitive for executing a function for each occurrence of a data element flowing over a link of the second type. A computing node initiates execution of the target program specification, and determines at runtime, for components associated with the occurrences of the target primitive, an order in which instances of tasks corresponding to the components are to be invoked, and/or a computing node on which instances of tasks corresponding to the components are to be executed.
    Type: Grant
    Filed: September 1, 2017
    Date of Patent: October 27, 2020
    Assignee: Ab Initio Technology LLC
    Inventors: Craig W. Stanfill, Richard Shapiro, Adam Weiss, Andrew F. Roberts, Joseph Skeffington Wholey, III, Joel Gould, Stephen A. Kukolich
  • Publication number: 20200175213
    Abstract: A method implemented by a data processing system for processing data items of a stream of data items, including: accessing a specification that represents the executable logic, wherein a state of the specification for a particular value of the key specifies one or more portions of the executable logic that are executable in that state; receiving, over an input device or port, data items of a stream of data; for a first one of the data items of the stream, identifying a first state of the specification for a value of the key associated with that first one of the data items; processing, by the data processing system, the first one of the data items according to one or more portions of executable logic that are represented in the specification as being associated with the first state.
    Type: Application
    Filed: February 3, 2020
    Publication date: June 4, 2020
    Inventors: Joel Gould, Scott Studer, Craig W. Stanfill
  • Patent number: 10628240
    Abstract: Processing multiple kinds of event messages in a computing system includes storing the event messages as records associated with event messages. Each event message includes a timestamp and the records include a field indicating a target delivery time for an event result for the event message, the target delivery time being determined according to a kind of the event message. The event messages are processed to deliver event results based on information in the event messages and the target delivery times. Event messages are prioritized to deliver event results according to information indicating priority. A target delivery time is computed for event messages having a same priority based on fixed delays relative to their timestamps. Event results are delivered based on a comparison of their target delivery times to a clock time.
    Type: Grant
    Filed: December 15, 2017
    Date of Patent: April 21, 2020
    Assignee: Ab Initio Technology LLC
    Inventor: Craig W. Stanfill
  • Patent number: D928175
    Type: Grant
    Filed: April 1, 2019
    Date of Patent: August 17, 2021
    Assignee: Ab Initio Technology LLC
    Inventors: Andrew Fiske Roberts, Craig W. Stanfill, Adam Harris Weiss