Most active commenters
  • cmrdporcupine(4)

←back to thread

287 points shadaj | 14 comments | | HN request time: 0.683s | source | bottom
1. cmrdporcupine ◴[] No.43196622[source]
Two things:

Distributed systems are difficult to reason about.

Computer hardware today is very powerful.

There is a yo-yo process in our industry over the last 50 years between centralization and distribution. We necessarily distribute when we hit the limits of what centralization can accomplish because in general centralization is easier to reason about.

When we hit those junctures, there's a flush of effort into distributed systems. The last major example of this I can think of was the 2000-2010 period, when MapReduce, "NoSQL" databases, Google's massive arrays of supposedly identical commodity grey boxes (not the case anymore), the High Scalability blog, etc. were the flavour of the time.

But then, frankly, mass adoption of SSDs, much more powerful computers, etc. made a lot of those things less necessary. The stuff that most people are doing doesn't require a high level of distributed systems sophistication.

Distributed systems are an interesting intellectual puzzle. But they should be a means to an end not an end in themselves.

replies(3): >>43196814 #>>43197204 #>>43198508 #
2. porridgeraisin ◴[] No.43196814[source]
I think the reason that distributed systems still are the go-to choice for many software teams is to do with people/career expectations/careers orienting themselves around distributed systems over the time period you mentioned. It will take a while for it to re-orient, and then distributed systems might become a fad again ;) An example of this is typical promotion incentives being easier to get in microservice teams, thereby incentivising people to organize the team/architecture in that way.
replies(1): >>43197815 #
3. spratzt ◴[] No.43197204[source]
I would go even further and argue that vast majority of businesses will never need to think about distributed systems. Modern hardware makes them irrelevant to all but the most niche of applications.
replies(1): >>43199199 #
4. cmrdporcupine ◴[] No.43197815[source]
Honestly, I am more cynical and just think people are always looking for ways to make their jobs more interesting than they actually are.
replies(2): >>43199451 #>>43199808 #
5. tonyarkles ◴[] No.43198508[source]
> But then, frankly, mass adoption of SSDs, much more powerful computers, etc. made a lot of those things less necessary. The stuff that most people are doing doesn't require a high level of distributed systems sophistication.

I did my MSc in Distributed Systems and it was always funny (to me) to ask a super simple question when someone was presenting distributed system performance metrics that they'd captured to compare how a system scaled across multiple systems: how long does it take your laptop to process the same dataset? No one ever seemed to have that data.

And then the (in)famous COST paper came out and validated the question I'd been asking for years: https://www.usenix.org/system/files/conference/hotos15/hotos...

replies(1): >>43199038 #
6. cmrdporcupine ◴[] No.43199038[source]
“You can have a second computer once you’ve shown you know how to use the first one.” –Paul Barham

Wow I love that.

Many people in our profession didn't seem to really notice when the number of IOPS on predominant storage media went from under 200 to well over 100,000 in a matter of just a few years.

I remember evaluating and using clusters of stuff like Cassandra back in the late 00s because it just wasn't possible to push enough data to disk to keep up with traffic on a single machine. It's such an insanely different scenario now.

replies(1): >>43199289 #
7. th0ma5 ◴[] No.43199199[source]
I had a longer comment elsewhere but to me this says that the distribution is happening somewhere and what you're also saying is that companies have to decide how much they want or care to control it.
replies(1): >>43205715 #
8. tonyarkles ◴[] No.43199289{3}[source]
My not-super-humble opinion is that people didn’t notice because SSDs became mainstream/cheap around the same time cloud migration got popular. Lots of VPS providers offer pretty mediocre IOPS and disk bandwidth on the lower tiers; I’d argue disproportionately so. A $300 desktop from Costco with 8GB of RAM and a 500GB SSD is going to kick the crap out of most 8GB RAM VPSes for IO performance. So… right when rack mounted servers could affordably provide insane amounts of IO performance, we all quit buying rack mount servers and didn’t notice how much worse off we are with VPSes.
9. Nevermark ◴[] No.43199451{3}[source]
> Honestly, I am more cynical and just think people are always looking for ways to make their jobs more interesting than they actually are.

When you frame the problem that way, unnecessary complexity seems like part of a healthy solution path. /h

Companies get reliability benefits from slack, but creative people abhor wasted slack. Some basic business strategy/wisdom for maintaining/managing creative slack is needed.

10. EtCepeyd ◴[] No.43199808{3}[source]
FWIW, at least one other comment seems to correlate job complexity with job security: https://news.ycombinator.com/item?id=43197623
replies(1): >>43200171 #
11. cmrdporcupine ◴[] No.43200171{4}[source]
I work in embedded and it's absolutely not "less complex"
replies(1): >>43204555 #
12. davemp ◴[] No.43204555{5}[source]
For sure. Maybe less accidental complexity. Embedded has been doing asynchronous IO since before it was cool. You also have distributed computing if you’re doing something like sensor networks.
13. spratzt ◴[] No.43205715{3}[source]
No. The issue is whether you NEED to not whether you want to.

10 to 15 years ago, you could argue, however implausibly, that hardware constraints meant vertical scaling was impossible, and you were forced to adopt a distributed architecture. Subsequent improvement in hardware performance, means that in 2025, vertical scaling is perfect acceptable in nearly all areas, relegating distributed architecture to the most niche and marginal applications. The type of applications that the vast majority of businesses will never encounter.

replies(1): >>43216737 #
14. th0ma5 ◴[] No.43216737{4}[source]
There is essentially no tooling for this and vendors all default to distributed patterns. Either you directly control the scaling or you're relinquishing it.