Live data from Hacker News

A lot of complex “scalable” systems can be done with a simple, single C++ server

twitter.com

91–100 of 376 posts

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#91
post #54

A site for proof. It keeps amusing me on what hardware/software Stack Overflow/Stack Exchange is running on: https://stackexchange.com/performance This is way less in HW than most people in the trade (from web devs to devops) seem to think when asked about it. SO ranks #36 in Alexa right now: https://www.alexa.com/siteinfo/stackoverflow.com

At the risk of exposing my ignorance - look at all those "Peak 5%-20%" labels. Doesn't that mean they have a lot more than they need?

They have a lot more CPU than they need, but the challenge is often getting servers shaped appropriately (RAM x CPU x disk x network), especially if you're not building your own.

Ultimately, their service is (most likely) not compute-bound.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#92
post #54

A site for proof. It keeps amusing me on what hardware/software Stack Overflow/Stack Exchange is running on: https://stackexchange.com/performance This is way less in HW than most people in the trade (from web devs to devops) seem to think when asked about it. SO ranks #36 in Alexa right now: https://www.alexa.com/siteinfo/stackoverflow.com

At the risk of exposing my ignorance - look at all those "Peak 5%-20%" labels. Doesn't that mean they have a lot more than they need?

Stack overflow hosts all (most?) Of their own baremetal servers in their own data center.

Looking at the specs of the machines, they are actually pretty basic as far as servers go. A server isn't barely worth the cost of it's chassis and motherboard if you put less than 64 G ram and 24 CPUs in it.

In other words, these are about the lowest specd proper servers you can get. So yeah, even their modest hardware is still overspecd for running their website.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#93
post #35

Morals of this story: 1. Always use the most performant language available to you. (What if your program gets a few million users?) 2. Horizontal scalability is too much complexity/work. Just apply the correct amount of optimization when you initially write the code. If you, like me, read this on mobile and did not click [more answers] link under that, then do it. That may save you a minute or two of derealization ti…

2 Is almost no longer true because there are simple templates you follow that will scale you till infinity with cloud (which also means your cost is going to scale, but hey we saved engineer time from scaling)

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#94
post #54

A site for proof. It keeps amusing me on what hardware/software Stack Overflow/Stack Exchange is running on: https://stackexchange.com/performance This is way less in HW than most people in the trade (from web devs to devops) seem to think when asked about it. SO ranks #36 in Alexa right now: https://www.alexa.com/siteinfo/stackoverflow.com

At the risk of exposing my ignorance - look at all those "Peak 5%-20%" labels. Doesn't that mean they have a lot more than they need?

As CPU utilization goes up, latency will go up. Also, one or two second snapshots of CPU use are averages over time. During any given moment you will invariably get little bursts of requests, and those will have slow responses if running closer to full utilization.

Also, of course, the total cost per hour for 9 servers with 3 year depreciation is in cents.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#96
post #54

A site for proof. It keeps amusing me on what hardware/software Stack Overflow/Stack Exchange is running on: https://stackexchange.com/performance This is way less in HW than most people in the trade (from web devs to devops) seem to think when asked about it. SO ranks #36 in Alexa right now: https://www.alexa.com/siteinfo/stackoverflow.com

One thing to keep in mind that their work-load is very ready-heavy which eases things a lot when scaling the system. The same is true for Wikipedia. Scaling a write-heavy workload is way more complex than scaling a read-heavy workload.

There is a significant amount of question submission, commenting and voting going on on SO.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#97
post #54

A site for proof. It keeps amusing me on what hardware/software Stack Overflow/Stack Exchange is running on: https://stackexchange.com/performance This is way less in HW than most people in the trade (from web devs to devops) seem to think when asked about it. SO ranks #36 in Alexa right now: https://www.alexa.com/siteinfo/stackoverflow.com

> That means we transfer 55 TB data / month

this isn't a lot. Helps that site is mostly text data.

I know of a relatively small cloud security system that transfers petabytes/month to/from a handful of customers.

4 ingest pods, 8 pipeline pods, 7 time-series db servers, 2 sql servers

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#98

Earlier quoted context omitted.

Note that they use C# and ASP.Net... (SO and DailyWTF are very much into Microsofts ecosystem)

AFAIK they're using ASP.NET Core There's significant difference between ASP.NET and ASP.NET Core https://meta.stackexchange.com/questions/316278/the-road-to-...

They use Core today, but SO was using .Net long before Core existed.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#99
post #89

Earlier quoted context omitted.

I don’t think it’s that big of an language issue. Java isn’t that much slower (logarithmically speaking). But design choices have arbitrarily incorporated huge amount of bloat and inefficiency.

yep, logarithmic. Well, the question is what's the motive about those design choices? Today's e.g. web app choices seem to be basically aesthetic with an eye for extreme novelty, and total disregard for how many times a buffer is being copied back and forth before reaching the user.

That is compared to python/ruby which would be multiple logs slower or scaling choices that makes the service resemble the microkernels. Usually dedicated, simple engineering can be very fast using either C or java
Post reply on HN