3 ms·
What I have often wondered, is how are "distributed" systems different from systems in the small where different components may be thought of as nodes on a netw
by roganp 11y ago
What I have often wondered, is how are "distributed" systems different from systems in the small where different components may be thought of as nodes on a network. In other words, why are not multiple threaded apps writing to the same database subject to the same constraints if the components of the system are not provably 100% reliable? Is it just a practical matter, that communication between a host and external storage is just so much more reliable than communication across larger distances that we don't have to worry about it?
- themartorana 11y agoThe only difference really is single-point-of-failure. Multiple threads writing to the same DB record can be assisted with transactions or locking - but again, the DB is, in the end, absolutely authoritative. What it says goes, and if it's unavailable, so is everything. When solving for high Availability through a distributed cluster, you might give up immediate Consistency. But partitions can end up giving different answers (authoritatively, even) and an unavailable master record doesn't mean something won't answer as if it _were_ authoritative. A single node DB - like a MySQL server - still has failure points, but none that plague CAP systems (well, except Availability, but that's how we got into this mess to begin with).