110 likes | 234 Vues
This research delves into the challenges posed by weak consistency models in software engineering, highlighting their difficulty in programming, testing, and debugging. Weak consistency often compromises availability, performance, and partition tolerance in distributed systems. The study quantifies the costs associated with these models and investigates verification problems that arise from their complexity. By examining memory consistency models and their implications, the research emphasizes the need for a deeper understanding of these trade-offs, especially in the context of cloud computing.
E N D
Complexity of Weak Consistency Models Madan Musuvathi Research in Software Engineering Microsoft Research
Weak Consistency Models • Hard to program • Hard to test • Hard to debug • General consensus: trade consistency for • Availability • Performance • Partition-tolerance • …
Quantifying the Cost of Weak Consistency • How hard are weak consistency models to program/test/debug? • Study the hardness of associated verification problems • Assumption: • Programming models that are hard for computers to reason are also hard for humans
Memory Consistency Models • A memory consistency model is an abstraction of the memory subsystem • Defines when and in what order memory operations from one thread are visible to others • Sequential consistency is what programmers want, but is expensive
Quiz: Can this assert fail ? Answer: depends on the memory model ! Init: x = 0; y = 0 x = 1; t = y; y = 1; u = x; assert( ! (t == 0&& u == 0) )
Sequential Consistency Can the assert fail? No Init: x = 0; y = 0 x = 1; t = y; y = 1; u = x; assert( ! (t == 0 && u == 0) ) SC
x86 Memory Model Can the assert fail? Yes Init: x = 0; y = 0 x = 1; t = y; y = 1; u = x; assert( ! (t == 0 && u == 0) ) x86
Memory Model Verification Problem • Safety verification • Does this system reach a bad state • Liveness verification • Does this system repeatedly reach a good state Finite State Machine Finite State Machine Finite State Machine … Memory Model Memory (finite)
Complexity of Memory Model Verification [POPL ‘10] • Formalizes the intuition that SC is easier to program than relaxed memory models
Shared Memory vs Message Passing Decidable Undecidable Finite State Machine Finite State Machine Finite State Machine … Shared Memory Finite State Machine Finite State Machine Finite State Machine … Message Passing Network
Conclusion • Weak consistency comes at a cost of programmability/testability/debuggability • Studying the associated verification problem can quantify this cost • Future: Formalize weak consistency models for the cloud