The Eight Fallacies of Distributed Computing
by Peter Deutsch (sent to me by roy)
"Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.
- The network is reliable
- Latency is zero
- Bandwidth is infinite
- The network is secure
- Topology doesn't change
- There is one administrator
- Transport cost is zero
- The network is homogeneous"
I do make those assumptions when I go distributed but, fortunately, I don't just go distributed for every project I design. for instance, I rarely implement a distributed system to save just a few seconds on operations like UI, data transfer, etc. I only do it for heavy hours-long calculations that can be divided and localized. I employ passive distribution where tasks are not pushed onto the nodes, they are put in a job pool and the nodes just pick from there. a job is only specs for a product (low bandwidth), the logic is preinstalled on the nodes. when a job is not finished within a specific time, it is rendered obsolete and a new job of the same specs will be created with a longer timeout. therefore, items 1, 2, 3, 5, 6 and 7 are taken care of. item 4 is only important if security is an issue. so the only thing I have to ensure is item 8.
Deustch made very good points, and I believe those issues are what naturally drove me to build the kind of distributed systems I do.
0 Comments:
Post a Comment
<< Home