-
公开(公告)号:US10565005B2
公开(公告)日:2020-02-18
申请号:US14259479
申请日:2014-04-23
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill
Abstract: A graph-based program specification specifies at least a partial ordering among a plurality of tasks represented by its nodes. Executing a specified program includes: executing a first subroutine corresponding to a first task, including a first task section for performing the first task; storing state information indicating a state of the first task selected from a set of possible states that includes: a pending state in which the first task section is waiting to perform the first task, and a suppressed state in which the first task section has been prevented from performing the first task; and executing a second subroutine corresponding to a second task, including a second task section for performing the second task, and a control section that controls execution of the second task section based at least in part on the state of the first task indicated by the stored state information.
-
公开(公告)号:US20190129993A1
公开(公告)日:2019-05-02
申请号:US16175408
申请日:2018-10-30
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill
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.
-
公开(公告)号:US20190129772A1
公开(公告)日:2019-05-02
申请号:US16175133
申请日:2018-10-30
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill , Joseph Skeffington Wholey, III
CPC classification number: G06F9/546 , G06F9/4887 , G06F9/5027 , G06F9/5066 , G06F9/5083 , G06F15/161 , G06F16/11 , G06F16/2365 , G06F16/27 , G06F2209/505
Abstract: A method for processing state update requests in a distributed data processing system with a number of processing nodes includes maintaining a number of counters including a working counter indicating a current time interval, a replication counter indicating a time interval for which all requests associated with that time interval are replicated at multiple processing nodes of the number of processing nodes, and a persistence counter indicating a time interval of the number of time intervals for which all requests associated with that time interval are stored in persistent storage. The counters are used to manage processing of the state update requests.
-
公开(公告)号:US10175951B2
公开(公告)日:2019-01-08
申请号:US14843084
申请日:2015-09-02
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill , Adam Weiss , Andrew F. Roberts , Stephen A. Kukolich
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.
-
公开(公告)号:US10140329B2
公开(公告)日:2018-11-27
申请号:US15077108
申请日:2016-03-22
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill
Abstract: Processing transactions in a distributed computing system that includes multiple processing modules includes: storing data items in a data storage system accessible to multiple processes running in the distributed computing system, where the data items are totally ordered according to an ordering rule, and at least some of the processes are running on different processing modules; and processing transactions using a plurality of the multiple processes. Processing a transaction using one of the plurality of the multiple processes includes: receiving a set of requests for accessing data items stored in the data storage system (where the requests are in a first order), obtaining locks on the data items sequentially in the first order if each of the locks is obtained within a first time interval, and, if any of the locks is not obtained within the first time interval, restarting the transaction being processed.
-
公开(公告)号:US10067799B2
公开(公告)日:2018-09-04
申请号:US15698970
申请日:2017-09-08
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill , Richard Shapiro , Adam Weiss , Andrew F. Roberts , Joseph Skeffington Wholey, III , Joel Gould
Abstract: Information representative of a graph-based program specification has a plurality of components, each of which corresponds to a task, and directed links between ports of said components. A program corresponding to said graph-based program specification is executed. A first component includes a first data port, a first control port, and a second control port. Said first data port is configured to receive data to be processed by a first task corresponding to said first component, or configured to provide data that was processed by said first task corresponding to said first component. Executing a program corresponding to said graph-based program specification includes: receiving said first control information at said first control port, in response to receiving said first control information, determining whether or not to invoke said first task, and after receiving said first control information, providing said second control information from said second control port.
-
公开(公告)号:US10037198B2
公开(公告)日:2018-07-31
申请号:US15234197
申请日:2016-08-11
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill , Richard Shapiro
Abstract: A received graph-based program specification includes: a plurality of components, each corresponding to at least one operation; and a plurality of directed links each connecting an upstream component to a downstream component. Processed code is generated representing one or more groups of operations by: identifying a possible level of concurrency in a first group of operations based at least in part on a topology of the graph, such that multiple operations in the first group are not prevented by the topology of the graph from executing concurrently; analyzing at least some of the operations in the first group to determine runtime characteristics associated with the analyzed operations; and generating processed code for executing the operations, where the processed code enforces a reduced level of concurrency in the first group, lower than the identified possible level of concurrency, based at least in part on the determined runtime characteristics.
-
公开(公告)号:US20180081919A1
公开(公告)日:2018-03-22
申请号:US15815772
申请日:2017-11-17
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill , Richard Shapiro , Stephen A. Kukolich
CPC classification number: G06F16/22 , G06F8/41 , G06F8/433 , G06F8/456 , G06F9/4494 , G06F9/5066 , G06F16/9024
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.
-
公开(公告)号:US20170177414A1
公开(公告)日:2017-06-22
申请号:US15368750
申请日:2016-12-05
Applicant: Ab Initio Technology LLC
Inventor: Jeffrey Newbern , Craig W. Stanfill
IPC: G06F9/50
Abstract: Work units are received into, and processed from, holding queues. A partition, associated with a unique holding queue, is assigned to each work unit stored in a given holding queue, according to a partitioning rule. Work units are separated from each holding queue into one of two or more other queues stored in the same storage as that holding queue. A ready queue (relocation queue) is for each work unit whose assigned partition is (is not) associated with the holding queue in which it is stored. Each work unit in each relocation queue is relocated to the holding queue associated with the partition assigned to that work unit. The work units are repartitioned in response to a change in the partitioning rule to a new partitioning rule before the holding queues are empty.
-
公开(公告)号:US09665396B2
公开(公告)日:2017-05-30
申请号:US14259451
申请日:2014-04-23
Applicant: Ab Initio Technology LLC
Inventor: Craig W. Stanfill
CPC classification number: G06F9/4843 , G06F9/4494 , G06F9/4881
Abstract: Controlling tasks includes: receiving ordering information that specifies at least a partial ordering among a plurality of tasks; and generating instructions for performing at least some of the tasks based at least in part on the ordering information. Instructions are stored for executing a first subroutine corresponding to a first task, including a first control section that controls execution of at least a second subroutine corresponding to a second task, the first control section including a function configured to change state information associated with the second task, and to determine whether or not to initiate execution of the second subroutine based on the changed state information. Instructions are stored for executing the second subroutine, including a task section for performing the second task and a second control section that controls execution of a third subroutine corresponding to a third task.
-
-
-
-
-
-
-
-
-