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: 11916759Abstract: 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: GrantFiled: May 18, 2021Date of Patent: February 27, 2024Assignee: Ab Initio Technology LLCInventor: Craig W. Stanfill
-
Publication number: 20220391257Abstract: 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 ofType: ApplicationFiled: June 3, 2022Publication date: December 8, 2022Inventors: Stephen J. Schmidt, David Ricardo, Craig W. Stanfill, Jacky Cheuk Kei Chu, Ephraim Meriwether Vishniac
-
Patent number: 11301445Abstract: 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: GrantFiled: December 3, 2019Date of Patent: April 12, 2022Assignee: Ab Initio Technology LLCInventors: Craig W. Stanfill, Richard Shapiro, Stephen A. Kukolich
-
Patent number: 11295049Abstract: 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: GrantFiled: February 3, 2020Date of Patent: April 5, 2022Assignee: Ab Initio Technology LLCInventors: Joel Gould, Scott Studer, Craig W. Stanfill
-
Patent number: 11288284Abstract: 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: GrantFiled: October 30, 2018Date of Patent: March 29, 2022Assignee: Ab Initio Technology LLCInventor: Craig W. Stanfill
-
Patent number: 11281596Abstract: 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: GrantFiled: January 28, 2019Date of Patent: March 22, 2022Assignee: Ab Initio Technology LLCInventors: Jed Roberts, Craig W. Stanfill, Scott Studer
-
Patent number: 11281693Abstract: 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: GrantFiled: October 30, 2018Date of Patent: March 22, 2022Assignee: Ab Initio Technology LLCInventors: Craig W. Stanfill, Joseph Skeffington Wholey, III
-
Patent number: 11269918Abstract: 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: GrantFiled: October 30, 2018Date of Patent: March 8, 2022Assignee: Ab Initio Technology LLCInventors: Bryan Phil Douros, Craig W. Stanfill, Joseph Skeffington Wholey, III
-
Publication number: 20210367861Abstract: 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: ApplicationFiled: May 18, 2021Publication date: November 25, 2021Inventor: Craig W. Stanfill
-
Patent number: 11093456Abstract: 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: GrantFiled: July 16, 2019Date of Patent: August 17, 2021Assignee: Ab Initio Technology LLCInventors: Craig W. Stanfill, Richard Shapiro
-
Patent number: 11074240Abstract: 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: GrantFiled: October 30, 2018Date of Patent: July 27, 2021Assignee: Ab Initio Technology LLCInventor: Craig W. Stanfill
-
Patent number: 10949414Abstract: 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: GrantFiled: October 30, 2018Date of Patent: March 16, 2021Assignee: Ab Initio Technology LLCInventors: Bryan Phil Douros, Craig W. Stanfill
-
Publication number: 20210049146Abstract: 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: ApplicationFiled: March 27, 2020Publication date: February 18, 2021Inventors: Jeffrey Newbern, Craig W. Stanfill
-
Patent number: 10896025Abstract: 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: GrantFiled: December 10, 2018Date of Patent: January 19, 2021Assignee: Ab Initio Technology LLCInventors: Craig W. Stanfill, Adam Weiss, Andrew F. Roberts, Stephen A. Kukolich
-
Patent number: 10885003Abstract: 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: GrantFiled: November 17, 2017Date of Patent: January 5, 2021Assignee: Ab Initio Technology LLCInventors: Craig W. Stanfill, Richard Shapiro, Stephen A. Kukolich
-
Publication number: 20200349135Abstract: 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: ApplicationFiled: December 3, 2019Publication date: November 5, 2020Inventors: Craig W. Stanfill, Richard Shapiro, Stephen A. Kukolich
-
Patent number: 10817310Abstract: 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: GrantFiled: September 1, 2017Date of Patent: October 27, 2020Assignee: Ab Initio Technology LLCInventors: Craig W. Stanfill, Richard Shapiro, Adam Weiss, Andrew F. Roberts, Joseph Skeffington Wholey, III, Joel Gould, Stephen A. Kukolich
-
Publication number: 20200175213Abstract: 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: ApplicationFiled: February 3, 2020Publication date: June 4, 2020Inventors: Joel Gould, Scott Studer, Craig W. Stanfill
-
Patent number: 10628240Abstract: 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: GrantFiled: December 15, 2017Date of Patent: April 21, 2020Assignee: Ab Initio Technology LLCInventor: Craig W. Stanfill
-
Patent number: D928175Type: GrantFiled: April 1, 2019Date of Patent: August 17, 2021Assignee: Ab Initio Technology LLCInventors: Andrew Fiske Roberts, Craig W. Stanfill, Adam Harris Weiss