The project I'm currently working on, Facebook Chat, offered a nice set of software engineering challenges: The most resource-intensive operation performed in a chat system is not sending messages.It is rather keeping each online user aware of the online-idle-offline states of their friends, so that conversations can begin.Even without accounting for the sizeable overhead of spawning an OS process that, on average, twiddles its thumbs for a minute before reporting that no one has sent the user a message, the waiting time could be spent servicing 60-some requests for regular Facebook pages.The result of running out of Apache processes over the entire Facebook web tier is not pretty, nor is the dynamic configuration of the Apache process limits enjoyable.Note that approach (a) changes the sending a chat message / loading a Facebook page from a one-to-one communication into a multicast to all online friends, while approach (b) ensures that users who are neither chatting nor browsing Facebook are nonetheless generating server load.
While this architecture works pretty well in general, it isn't as successful in a chat application due to the high volume of long-lived requests, the non-relational nature of the data involved, and the statefulness of each request.
For Facebook Chat, we rolled our own subsystem for logging chat messages (in C ) as well as an epoll-driven web server (in Erlang) that holds online users' conversations in-memory and serves the long-polled HTTP requests.
Both subsystems are clustered and partitioned for reliability and efficient failover. In short, because the problem domain fits Erlang like a glove.
006 12 29 Points 1316 Partenaires vivaocs target blanc baznas FWD V4 solid 000 safiweb hostma 00px 3px vertical love jiji bientot hichamtoldo skyblog blank siro tssalo mehdibono wesh houssam salam sarah slt tt monde lkhassar sqal 07 wlad asfi t9admo walah mdintkom wa3ra mais ntoma mhachrine m simo simoraymy mimo moi meryem safi c est mon msn mailto soso 2005 mousi9a net hicham toldo ach hadak chi sadi9 dyalach site adrianhicham 3l makshof tamo sba7 lkhayre sba7ato lilah manak miss kawtar salut yala9ina m3a ma7san mana ou tanatmana matab9awche tkhasro fi lhadra awlade khalti msa tupac saha hi everybody souma ha7na left Votre Message auteur maxlenght msg send Voir archives google 160 600 160x600 E1771E 006699 addv Ajouter Une addm addi Photo addt Telechargement addp Devenez partenaire Signaler bug erreur Contacter 250 Codage Design par Mohamed Yassine 0021274185715 N° 17 Bloc 62 Saida 46000 ligne 94 Total 65559 Corpyright Tous droits r?
Keep in mind that it's up to you to keep your personal life private, do not ever give out your real name, address, phone number or other personal information to other members.