GlobalPredicateEvaluation Flashcards
What is Global Predicate Evaluation (GPE)?
A problem in DAI systems where the goal is to determine the truth of a Boolean expression referring to the global state of the system.
What are the key challenges in GPE?
1) Variables are local to processes. 2) Processes interact only via message passing. 3) The system is asynchronous with no global clock. 4) The global state observed may not be consistent. 5) Communication channels may deliver messages out of order.
What are the two approaches for GPE?
1) Reactive Architecture: Processes notify an observer of events as they occur. 2) Proactive Architecture: The observer requests state information from processes when needed.
What is a distributed system?
A distributed system consists of sequential processes connected by unidirectional communication channels.
What is an event in a distributed system?
An event is an activity of a sequential process, which can be internal events or communications (send(m) or receive(m)).
What is the happened-before relation?
A partial order of events where: 1) If e happens before e’ in the same process, then e → e’. 2) If e is a send event and e’ is the corresponding receive event, then e → e’. 3) If e → e’ and e’ → e’’, then e → e’’.
What is a global state?
A global state Σ = (σ₁, …, σₙ) is a collection of local states of all processes, where σᵢ is the local state of process pᵢ after executing event eᵢᵏ.
What is a cut in a distributed system?
A cut C = (c₁, …, cₙ) is a subset of global history H containing an initial prefix of each local history, representing a ‘freezing’ of the observation of a global state.
What is a consistent cut?
A consistent cut is a cut where if an event e belongs to the cut and e’ → e, then e’ also belongs to the cut. A consistent global state corresponds to a consistent cut.
What is a consistent run?
A consistent run ensures that if e → e’, then e appears before e’ in the run. Observing consistent runs is essential for evaluating global predicates.
What is a reactive architecture?
A reactive architecture involves processes notifying an observer of events as they occur, allowing the observer to construct a view of the distributed computation.
What is the problem with reactive architectures?
Due to variable message delays, the observer’s observation may not correspond to the actual computation, leading to inconsistencies.
What is the FIFO delivery policy?
A policy where if send(m) → send(m’), then deliver(m) → deliver(m’). It ensures messages are delivered in the order they were sent.
Why is FIFO delivery not sufficient for consistent computation?
1) No bound on message delays means it’s unclear how long to wait before delivering. 2) It doesn’t know how to order messages from different processes.
What is causal delivery?
Causal delivery ensures messages are delivered in an order consistent with the happened-before relation. Logical clocks and vector clocks are used to implement it.