Skip to content

Instantly share code, notes, and snippets.

@meangrape
Created July 11, 2013 21:10
Show Gist options
  • Save meangrape/5979281 to your computer and use it in GitHub Desktop.
Save meangrape/5979281 to your computer and use it in GitHub Desktop.
The computational "tax"
Generously, we had three database servers and maybe forty application/web servers at the time. This was the default view of every other user.
If a user, U, clicked on another user, U' we would:
(a) get the list of followers from U', F'
(b) determine if any of the people in F' were protected
(1) determine if those protected users allowed user U to see their tweets or not
(c) get the last X tweets from each user in F' that U could see and compose them into a timeline
We didn't look at the users that might be visible on a page of tweets we did the intersection against all the followers.
We didn't cache any of the allowed-viewing-relationship information; it was computed every time directly from the databases any time a user clicked on any other user's page. So the result was a view of the user's timeline MINUS any tweets that belonged to protected users that you didn't follow.
We almost dropped protected users over this.
@robey
Copy link

robey commented Jul 11, 2013

Thus, a bespoke timeline for each pair of users. :(

@meangrape
Copy link
Author

I intentionally left out the pre-pagination days when we composed timelines out of every available tweet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment