Hacker News new | ask | show | jobs
by Banditoz 845 days ago
Am I reading the second figure right? Facebook can do 130*10^6 queries/second == ‭130,000,000‬ queries/second?!
13 comments

Facebook makes over 300 requests for me just loading the main logged in page while showing me exactly 1 timeline item. Hovering my mouse over that item makes another 100 requests or so. Scrolling down loads another item at the cost of over 100 requests again. It's impressive in a perverse way just how inefficient they can be while managing to make it still work, and somewhat disturbing that their ads bring in enough money to make them extremely profitable despite it.
This is the company that instead of ditching PHP created a full on PHP to C++ transpiler and then deployed their while site on that for a few years.
FB still runs on Hack.
> deployed their while site

??

Obviously "whole".
That's why it's so inefficient!
Wasn't the whole point of GraphQL in mitigating this?
Yeah, that's why you have only 100 requests* when you hover over an item instead of 800.

(* allegedly, didn't verify it myself)

No.

Here is the thing, hypermedia is cacheable. React/Graphql not so much.

Facebook is now just an application that runs in the browser.

As a poor, small developer who doesn't want to hemorrhage money, I tend to want things to be more hypermedia and less app. It saves on complexity and bandwidth and costs.

Do you have an ad blocker stopping the requests and causing retries?
I do have ublock origin on everything of mine, so conceivably it's reacting to that somehow. I'm no longer at my computer to be able to look more closely at what it's doing.
Whenever you're running this kind of eyeball test with DevTools, make sure the "Disable Cache" option is _not_ checked. And even then, make sure the requests you're counting were not served from your browser cache. It's possible that only the first page load sends hundreds of requests, and subsequent loads may still initiate those requests, but have their responses served from your browser cache (or your cache is disabled).

I would check myself, but I haven't logged into Facebook in many years. :)

Could someone tell me what these hundreds of requests could do?
A lot of them appear to be that they've split their javascript into a gazillion files for whatever reason (I suppose because they have several MB of it). But someone or lots of people there did seem to get addicted to dynamic loading. Like I've got 100 or so friends, but my friends page loads them 8-16 at a time as I scroll. Just send all 100 and set the profile pictures to deferred fetch. It'd probably be smaller than the js they have to make it do "infinite" scroll.

Similarly, after getting to the bottom of their "infinite" scroll, my friend feed (which is annoyingly hidden away) gives me... 15 items. Just send me all 15. It's like 1-2 kB worth of data. If you're going to end the scroll after a dozen items, why is it using infinite scroll?

Could be so they can track what you're looking at on the back end
Track you, probably with a thousand layers of redundancy, tech bloat, and decades of mold.
I can't comment on the numbers, but think of how many engineers work there and how many users Facebook, Whatsapp, Instagram have. Each engineer is adding new features and queries every day. You're going to get a lot of queries.
We’ve really wasted an incredible amount of talent-hours over last couple decades. Imagine if we’d worked on, like, climate change or something instead of ad platforms.
"The best minds of my generation are thinking about how to make people click ads. That sucks." - Jeff Hammerbacher (2011); early Facebook employee, and Cloudera cofounder.

https://www.theatlantic.com/technology/archive/2011/04/quote...

The waste of talent hours is directly connected to climate change. The waste of network bandwidth is as well as the waste of compute cycles to run these "social" platforms.

That all being said, as humans have free will, imagining what we "could have done" if we just _forced_ everyone to do something different is flirting with fascism.

Sure, I wouldn’t suggest forcing everyone to work on something else. We all could have been better, and the government could have tried to incentivize more productive work (they already provide incentives on way or another after all).
I think most devs also would rather work on something good too, but those jobs are rare and pay worse. That's the part that needs fixing
Exactly. I think it’s misguided to blame Meta or Google here. People respond to incentives, and the masses want to buy stuff using e-commerce, hence it’s profitable.

I’m oversimplifying, but that’s the root of it. If people instead of buying things from ads were looking for the best ways to purchase offsets for CO2 emissions, then the best minds would be working on that problem.

Right, that's not going to happen though for pretty obvious reasons.

Governmental incentives and carbon taxes can make more jobs in CO2, but expecting individual citizens to solve a collective action problem is doomed.

At the same time, I think it is fair to ask people to look at what they're doing for/to the world and decide if that's something that fits their values. 300k salary is nice, but almost certainly not something you need

You make it sound like everybody at Meta works in the ads department.
It is an ad company, everyone there works on ads or indirectly works on making a platform for ads.

The only exception is people who’ve managed to sneak their way into positions where they don’t contribute anything to the company. Those people are doing society a favor by wasting Facebook’s money.

I don’t think that’s true. Google took their ad money and placed a famous number of bets on moonshots, more than any company in a long time (back as far as Bell Labs? Did even they fund their research to the extent Google has?)

The whole Metaverse bet at Meta is also plausibly a 10s-of-$b bet that isn’t going to drive the ad flywheel, though I’m sure they hope it is. My impression is Zuck would be ok with just having a VR platform even if it’s generating revenue from not-ads.

Well, a lot of them do work directly on ads. Obviously not everybody, but a significant fraction. And most of the rest are just building things (products, features) to be able to show more ads.
98% of Meta's revenue is from ads. Meta is an ads department.
They all do.
found the meta employee
I think about 10 years ago when I was working there I checked the trace to load my own homepage. Just one page, just for myself, and there were 100,000 data fetches.
By "homepage" you mean your Facebook profile?
> Am I reading the second figure right? Facebook can do 130*10^6 queries/second == ‭130,000,000‬ queries/second?!

That sounds totally plausible to me.

Also keep in mind they didn't say what system this is. It's often true that 1 request to a frontend system becomes 1 each to 10 different backend services owned by different teams and then 20+ total to some database/storage layer many of them depend on. The qps at the bottom of the stack is in general a lot higher than the qps at the top, though with caching and static file requests and such this isn't a universal truth.

Those queries are probably mostly memcache hits, though of course with distributed cache invalidation and consistency fun
If it doesn't hit the database is it really a query?
Why wouldn't it be?
Sounds plausible. There are probably many queries required to display a page and Facebook has 2 billion daily active users.
This is how information slowly changes. The original numbers from facebook needed to be taken with a grain of salt. 2 billion a day raises it more.

Facebook claims to have 2 billion accounts but no where near 2 billion unique accounts. I don't know what facebook calls an active user but it use to mean logged in once in the past 30 days.

No, the person you're responding to was correct. Facebook has over 2 billion daily active users [1], and DAU refers to unique users who used the product in a day [2].

1: https://www.statista.com/statistics/346167/facebook-global-d...

2: https://www.innertrends.com/blog/active-users-measuring-busi...

Heh. Gave me a chuckle, because DAU also means "Dümmster Anzunehmender User" in German (dumbest assumed user, in context of creating idiot-proof software, and a wordplay on GAU, which means grösster anzunehmender Unfall, biggest assumed accident, which comes from fission power plants). And that kinda fits for the kind of people that perceivedly are left on the likes of Facebook and X.
It's directly in the link you provided.

"For example, an active user can be measured as a user that has logged back into her account to interact with the product in the last 30 days."

Even the marketing material is designed to confuse.

That's a monthly active user. A daily active user would be someone who logged into an account in the last day. Generally monthly active user count will be higher than daily active users, but for something like Facebook the difference is about 50% (which is what the second article linked is explaining, if you read more than just cherry-picking a line that matches your preconceptions)

And yes, that's a claim that if each user is a separate person, >20% of the world's population interacts with Facebook at least minimally each day. You can add your own interpretation about how many of the accounts are bots or otherwise duplicates, but it's a staggering amount either way.

It should be their account not her account (or his). Who writes this garbage.
Alternating or stochastically varying pronouns in your examples used to be a common way to make an effort at inclusive writing, usually preferred aesthetically to constructs like `his/her'. (The style before that was basically to use masculine pronouns for hypothetical people in every single case and deny that there was anything to question about that.) I think I agree that the modern semi-standard of using `they' for examples where gender is irrelevant or unknown is strictly better, but it's hard for me to summon a lot of contempt for someone who goes with a different/older habit.
Different metrics Daily vs Monthly Active User. MAU vs DAU
Whats with people lately writing 10^6 instead of 1 million. Its not that big that we need exponents to get involved.
- The comment is referring to a graph that used 10^6 on the vertical axis, which is a very common way to format graphs with large numbers (not just "lately"). It's also the default for a lot of plotting libraries.

- 10^n is more compact than million/billion/etc, more consistent, easier to translate, and doesn't suffer from regional differences (e.g. "one billion" is a different number in Britain than in the US).

I'm not saying it's clearly better than "million" in this specific case, but it's definitely not clearly worse.

Erosion of education makes basic scientific knowledge very trendy
Yes. And that was 4 years ago. Must add that figure does NOT include static asset serving path.
I forgot how to count that low.
A custom JIT + language + web framework + DB + queues + orchestrator + hardware built to your precise specifications + DCs all over the world go a long way ;)
We're close to 1 million servers, not 12 racks in a DC.
iirc Facebook has 3 billion users, so that sounds plausible.
Yeah, they allocated ALL of the ram to their DB servers. lol