×

System for distributed computation processing includes dynamic assignment of predicates to define interdependencies

  • US 5,329,626 A
  • Filed: 10/23/1990
  • Issued: 07/12/1994
  • Est. Priority Date: 10/23/1990
  • Status: Expired due to Term
First Claim
Patent Images

1. In a computer system, a method of performing distributed computations, the steps of the method performed by said computer system comprising:

  • providing a set of cooperating computational agents to perform each distributed computation, each computational agent being programmed to progress through a sequence of state transitions among a predefined set of states;

    defining and storing in at least one computer memory a plurality of distinct predicates that can be assigned to ones of said computational agents, each distinct predicate specifying a distinct state transition dependency between state transitions of first and second specified ones of said computational agents;

    each said defined predicate specifying a state transition of said first computational agent that is to be blocked until said second computational agent performs a specified action that satisfies said each defined predicate;

    wherein a first one of said plurality of defined predicates is a mutual strong commit dependency predicate that requires said specified first and second computational agents to commit a distributed computation'"'"'s results only when said first and second computational agents mutually agree to commit said distributed computation'"'"'s results and otherwise requires said first and second computational agents not to commit said distributed computation'"'"'s results; and

    wherein a second one of said plurality of defined predicates is a finish dependency predicate that determines which of said specified first and second computational agents must finish a corresponding portion of said distributed computation before the other of said specified first and second computational agents;

    dynamically assigning a set of predicates to the set of computational agents performing each distributed computation so as to define a corresponding set of state transition interdependencies said set of computational agents;

    wherein each assigned predicate is selected from said plurality of predicates, and different sets of predicates are assigned to the sets of computational agents for different distributed computations;

    storing in at least one computer memory dependency data for each said computational agent specifying (A) a first set of state transitions of said each computational agent that are to be blocked, (B) preconditions for allowing each of said first set of state transitions to proceed, (C) a second set of state transitions of said each computation agent that are preconditions for state transitions by other ones of said computational agents for which each of said second set of state transitions are preconditions;

    performing each distributed computation with said set of computational agents provided for that distributed computation, including blocking state transitions by ones of said set computational agents in accordance with said predicates assigned to said set of computational agents, and allowing each said blocked state transition to proceed when said action specified by the corresponding predicate is performed.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×