TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Fallacies of Distributed Computing Explained (2006) [pdf]

134 pointsby jxubalmost 7 years ago

2 comments

gwbas1calmost 7 years ago
I think we need to add a fallacy about serialization and protocol changes, but I&#x27;m not sure how to summarize it in a simple sentence.<p>Specifically, &quot;magic&quot; serializers often have problems interoperating with different languages; or with different versions of a protocol.<p>I&#x27;ve come across serious problems where:<p>- An application&#x27;s deserializer can&#x27;t handle a new value included in a new version of a protocol, and thus crashes.<p>- A server needs to forward part of a serialized object unmodified to another server. It strips out unrecognized values, thus requiring that we upgrade all three pieces of software instead of only two.<p>- A server&#x27;s serializer is so rigid that we can&#x27;t add xml tags &#x2F; attributes without lots of involvement with the team that works on the server; even though there&#x27;s no real reason for them to be involved in all the details
评论 #17509688 未加载
mmtalmost 7 years ago
I don&#x27;t recall seeing this explanation before, though I&#x27;m pretty sure I&#x27;ve read a version of it.<p>What I noticed immediately was what I felt was something missing in explanation of fallacy #1 (The network is reliable), something I predicted decades ago when the network gear salesmen first came around to try and convince us to replace our aging concentrators (multiport hubs) with fancy new switches: losing the backpressure mechanism of collisions would lead to bandwidth-related failures.<p>The article&#x27;s explanation mentions the reliablity of modern switches but makes a fairly shallow dismissal of this by referencing things like pulled power cords but spends most of the text actually talking about WAN reliability.<p>What I&#x27;ve seen in practice is, including with (maybe even especially with) distributed computing environments, is the scenario I proposed to the salesperson way back when: What happens when two servers send data out of their network ports at full line speed (100Mb&#x2F;s) each, at the same time, for a total of 200Mb&#x2F;s, to another server&#x27;s network port that can only receive 100Mb&#x2F;s?<p>Of course, once the switch&#x27;s buffer fills up, half the packets get dropped, and it&#x27;s not practically deterministic which half. In a distribute environment, where the number of sources greater than 2 and the number of sinks is greater than 1, it gets even less so and often more intermittent.