Download - Self-stabilization in NEST

Transcript
Page 1: Self-stabilization in NEST

Self-stabilization in NEST

Mikhail Nesterenko(based on presentation by Anish Arora, Ohio State University)

Page 2: Self-stabilization in NEST

Goals

Scalable dependability via new notions of stabilization

• e.g. weak, protective, bounded stabilization

Stabilization at all levels of NEST system stack

• e.g., at application level, via component-frameworks and automated synthesis

• e.g., at middleware level, via stabilizing monitoring

Page 3: Self-stabilization in NEST

Stabilization Notions: Original Concept

legitimate states from where safety and livenessare satisfied

illegitimate states reached possiblydue to faults

•Closure: Set of legitimate states is closed under system execution

•Convergence: Starting from any system state, every system

computation eventually reaches a legitimate state

Page 4: Self-stabilization in NEST

Weak Stabilization

• Closure• Weak Convergence: Starting from any system state, some system

computation eventually reaches a legitimate state

Page 5: Self-stabilization in NEST

Protective Stabilization

• Closure • Convergence (strong or weak)• Protection: No transition is unsafe ( )

Page 6: Self-stabilization in NEST

Bounded Stabilization

• Closure• Bounded Convergence:

Set of fault-span states is closed under system execution Starting from any fault-span state, every system computation reaches a legitimate state in bounded time

Fault-span states, convergence time is bounded

Page 7: Self-stabilization in NEST

Stabilization in NEST System Stack

AP

Timed AP

APC

Stabilizing

application

componentframework

synthesisNonstabilizingapplication

Stabilization synthesis framework

Implementing stabilizing apps

Stabilizing system/app monitoring

Page 8: Self-stabilization in NEST

Project: Stabilizing Monitoring Service

Model:

• apps/daemons/nodes periodically send a refresh to

service

• period is chosen within some interval [LF .. HF]

Service ensures in stabilizing manner:

• apps/daemons/nodes are up

• monitoring service of a node is up

Page 9: Self-stabilization in NEST

Layered Architecture

Layer 0: Hardware watchdog

implements a hardware self-rebooting mechanism

Layer 1: Basic monitoring

ensures that registered app/daemons are up

Layer 2: Remote and Advanced monitoring

ensures other nodes and distributed process groups are up

generation of suspicions for dependent apps/daemons

adaptation of refresh periods & registered apps/daemons

Page 10: Self-stabilization in NEST

Project: Implementing Stabilizing Applications

Input:

a (weakly-) stabilizing protocol consisting of processes

communicating via messages in Abstract Protocol (AP) notation

Output:

a weakly-stabilizing implementation using UNIX processes and UDP communication

Page 11: Self-stabilization in NEST

Approach

AP

Timed AP

APC

preserves all safety and liveness properties

preserves some properties, including weak-stabilization

Input

Output

•Abstract timeouts•Zero message delay •Action/fault atomicity•Action fairness

•Real timeouts•Non-zero message delay •Action/fault atomicity•Action fairness

•Real timeouts•Non-zero message delay•Event/weak fault atomicity•Weak action fairness

Page 12: Self-stabilization in NEST

Project: Stabilization Synthesis Framework

NonstabilizingAPC

Stabilizing APC

dependability componentframework

NonstabilizingAP

Stabilizing AP

synthesis procedure

Page 13: Self-stabilization in NEST

Approach

• Exponential-time synthesis procedure, with adequate

polynomial-time heuristic

sufficient for synthesis of byzantine agreement

• Dependability component framework enables reuse of

application-independent aspects of stabilization

application-dependent parameter used to instantiate this

framework, e.g. network type, communication patterns

Page 14: Self-stabilization in NEST

Sample Component Frameworks

• Reactive link-predicate stabilization component

Retransmission based

Use of ACK/NACKs

• Proactive link-predicate stabilization component

Forward error correction based

Sending parity packets in advance

• Group-of-nodes state-predicate stabilization component

Page 15: Self-stabilization in NEST

Deliverables and Milestones

• Stabilizing Monitoring Framework: Aug’02: Implementation of basic node monitoring

Aug’03: Implementation of advanced node/group monitoring

Apr’04: Demo of monitoring service use by NEST application

• Implementing Stabilizing Applications: Aug’02: AP-to-APC transformer implementation Apr’03: Demo of stabilizing transformer-based NEST application Aug’04: Transformer for stabilization of sequential processes

• Stabilizing Synthesis Framework: Aug’02: Demo of tool for synthesis of stabilizing AP protocols Apr’03: BNF & semantics of APC dependability component composition

language Aug’03: Application-independent code for reactive & proactive component

frameworks Apr’04: Demo of stabilizing framework-based NEST application

Page 16: Self-stabilization in NEST