Now you've gone from "find the top 10, cache it once" to "find the top 10 200M times, cache it 200M times" (and 200M is lower than you need.)
Say you find the top 500 apps instead and cache that. You still have to iterate over that 200M times, looking up each users list of apps (~50-100 on the average, I have 400+ in my list), intersecting them, making sure there's still a top 10, and caching the results.
Either way, you've done a load of work - that needs development, maintenance, testing - to gain what?
The app store is already making billions for Apple with "flawed" top 10s. You might gain a few 10s of millions by implementing this scheme. What's the point?
They are already tracking what the user owns, what the user has installed on the device, and needs to be updated on each device the user owns, hell if you have genius turned on they track how much you use each app, or listen to each song. But whoa buddy filtering a top ten list is way to hard?
to gain what To not annoy users and gain a little bit more of that perfection they are known for. Increase purchases by a few percent. Not striving hard when you are at the top is how you end up in MS, IBM, and every other fallen giant's shoes.
Fully agree with that, just not the technically challenging part considering they can take 100 times more data and apply much harder algorithms at their scale.
...the point is to gets 10s of millions. Simply because they are already making a lot does not mean they should avoid optimizations. If they had that attitude, they would have "stopped" at whatever number was deemed to be enough. "Why make X change, they are already makings 100s of millions with the appstore?" A business's goal is to maximize profit. This is a clear option that has minimal costs in comparison to the returns that even you recognized. You are trying too hard not to be wrong.
But that's Google's entire raison d'etre = fast search results that are relevant. In theory, someone with faster and/or more relevant search results could steal Google's #1 place.
Who's going to steal Apple's #1 app store place if they can't be arsed doing per-user top 10 lists?
Say you find the top 500 apps instead and cache that. You still have to iterate over that 200M times, looking up each users list of apps (~50-100 on the average, I have 400+ in my list), intersecting them, making sure there's still a top 10, and caching the results.
Either way, you've done a load of work - that needs development, maintenance, testing - to gain what?
The app store is already making billions for Apple with "flawed" top 10s. You might gain a few 10s of millions by implementing this scheme. What's the point?