|
|
|
|
|
by ora600
5715 days ago
|
|
I understood what he said as: Solving the problems of distributed systems is incredibly hard and not necessary if all you need is scalability and high availability. Better think of your problems in terms of engineering trade-offs and not distributed theory and understand what you are giving up and what this gains you. When you decide to give up consistency, your application can no longer assume consistency ever. Giving up availability in case of network partition means few extra minutes of downtime a year. I don't think he completely misunderstood distributed systems - I think he decided to completely side-step the entire field. |
|
Once one scales beyond a single node the system becomes distributed. Then by definition one must deal with distributed systems problems in order to achieve scale beyond the capabilities of a single node.
> When you decide to give up consistency, your application can no longer assume consistency ever. Giving up availability in case of network partition means few extra minutes of downtime a year.
Depends on the application. Giving up availability might mean cascading failures throughout your entire application. For instance if the datastore is unavailable for writes then any kind of queueing systems built around the DB (a common design pattern) run the risk of overflow during the downtime.
And I would make the argument that once an application scales beyond a single datacenter it cannot help but give up strict consistency under error conditions.
> I don't think he completely misunderstood distributed systems - I think he decided to completely side-step the entire field.
If he didn't misunderstand them then he is purposefully ignoring the hard problems. Which is worse?