John Jon Gales forwards the following Friendster tip:
Friendster is trolling for programmers that know PHP / MySQL. Right now it's JSP, so it looks like a switch might be in place (to speed things up?!). "Ideal backgrounds will include direct experience developing high-volume, consumer-facing web applications. Barring this, high-volume will do. Experience on small sites will not pass muster, it's all about scale, Scale, SCALE."
Last November Philip Greenspun and the students of MIT course 6.171 performed a 'Friendster Usability Analysis.' Has Friendster taken any of their suggestions to heart?
If Friendster is still looking for MySQL programmers then they haven't taken Professor Greenspun's advice to "flush MySQL and replace with Oracle 10g; get a discount by promising to automatically add lots of cool friends to Oracle employees ("CONNECT BY NOCYCLE" baby!)"









1. I think operative word is scaling. The implication that using a single SQL (Oracle) server would somehow solve F* speed problem is to not understand what the word "scale" means. (BTW, I wrote the blog comment entry ref. in the MIT report on F* speed problem). And also not all queries to a DB are the same. A SQL request for a typical photo.net page isn't nearly as involved as SQL stmt in F*. It's prob like 10-100 times more CPU/disk intensive.
It's like folks who think solving problems like SETI has anything to do with "scaling". Unlike this and other trivial distributed problems (like code cracking) that deal with computing on isolated data or serving static content (you name it, 99.99% of the Web is static in a given period of time; it doesn't matter if it comes from RDBMS), apps like F* has to serve data that's constantly changing. What this means is that server #15 needs to tell "99" other servers in a cluster of "100" servers that they need to update their DB or cache whenever someone adds a new connection or updates his/her profile.
This of course is what the big sites do all the time (and companies like Akamai provides such services). BUT the difference is that F* app requires updates to the whole cluster ALL the time, whereas a site like Yahoo! or NYTIMES.com needs to update their news items every few hours.
So, there's no way you can scale an SNS app (btw, online dating sites don't have this problem, 'cause you don't need to know within the min. a person updated/posted their profile) without doing one of two things:
1) spend like $10+ million on a 64 CPU Oracle server with like 10 X Gbit ethernet connections;
2) OR cache like crazy so that you don't constantly pound on the poor DB server.
Another point of fact. Getting 50% speedup by using PHP over JSP (or whatever) is a waste of time for F*, 'cause F* needs 100X speedup to deal with potentially 100 million users. And if you know anything about scaling, getting 100X speedup on non-trivial problems is really, really hard.
FYI: there'll be a JavaOne BOF on "Building High Performance SNS" that you might want to check out for more info.
Cheers,
jko
Posted at 8:04PM on Dec 18th 2005 by John Ko