Causal Errors in Distributed Systems
N. Lesley, Holly Hou, Joydeep Mitra · 2003
This article presents a project that analyzes the pattern of causal errors in distributed systems. It asks the question: how wrong could the system be if causal order is not enforced? Simulations of a stock-trading system show that the number of failed trades due to causal errors has minimal impact on the system. Building software has always been recognized as a difficult problem, and it's especially difficult in distributed systems. Message delays, different processor speeds, service access clashes, and many other issues add to the complexity of the software development process. In a message-passing distributed system, application developers must worry about message ordering. Some researchers have argued that this should be the application developer's concern 1, 2, while others argue that it should be left to the underlying communication system 3. This debate is based on the premise that message order errors are bad and must be handled at either the communication or the application level. We choose a third approach, posing the question: how bad are message order errors? In particular, we investigate causal ordering's effect on the correctness of distributed applications. We're interested in such questions as l How wrong would the system be if no restrictions on causal IEEE Distributed Systems Online Published by the IEEE Computer Society 1541-4922/03/$17.00 @ 2003 IEEE ordering existed? l What is the relationship between network delays and causal order violations? l Is there a relationship between a system's business logic and the percentage of causal order errors that cause problems? We begin to answer these questions by providing motivation for this work and explaining the context in which we pursue it.