Dentro de 3 días y monedas (según la hora a la que escribo este post) Facebook habilitará la posibilidad de elegir un nombre de usuario, de forma que cada persona pueda decir mi usuario es «fulanito» y no decir «buscame en Facebook y agregame». Claro… si Federico de los Santos conozco 4 (y uno se enojó porque me llamo como él!!!) decir que te busquen es una tranza.
Pero detrás de esto hay cosas muy importantes. Como la posibilidad de elegir un nombre se habilitará en un tiempo determinado para todo el mundo, o sea, para los más de 200 millones de usuarios, hay que considerar lo siguiente:
1) Los servidores donde se aloja Facebook recibirán muchas llamadas simultáneas a 2 funciones básicas.
a) Chequear disponibilidad (Un SELECT en una base de datos?)
b) Registrar un nombre (Un UPDATE en una base de datos?)
2) Muchos usuarios desde puntos muy cercanos en el globo abrirán la página de facebook que es bastante pesadita.
a) En Uruguay somos 93 mil usuarios en la Red Uruguay y otro tanto más de gente que no está en esa red.
b) Mucho tráfico a la misma vez y para el mismo lado, puede ser un problema de saturación de nuestro magro enlace.
3) No sé en que motor están alojados los datos, pero dudo que sean MySQL… o al menos es la versión corporativa.
a) Va a ser un experimento muy bueno para la tecnología de base de datos utilizada.
b) Va a ser un experimento espectacular para ver si PHP aguanta.
4) Exclusión mutua
a) ¿Qué pasa si está mal programado y mientra verificas un nombre y lo confirmas alguien ya lo confirmó?
b) ¿Qué pasa si está mal programado y trata de registrar un nombre que ya está registrado?
c) ¿Qué pasa si efectívamente registra dos nombres iguales a usuarios distintos?
Va a estar divertido. Yo el sábado a la 1:01 voy a estar haciendo click :-) Así que me voy a hacer una listita de posibles nombres de usuario.
Como habrás visto, no paso nada, FB aguantó perfectamente.
Creo que el análisis que vos haces está equivocado porque asume que la gente iba a correr desesperadamente a hacerse un nick a las 12:00. Pero la mayoría de la gente ni sabía de eso ni para que servía, y le daba igual. Estoy de acuerdo con Martin que dice que le dieron mucho color, en Observa titulaban algo así como «El viernes los usuarios de FB no salen». A mi la verdad también me daba igual, reconozco que capaz porque hay solo un Manuel Babuglia en todo el mundo.
Pero bueno mas allá de eso el tema de la concurrencia y la performance no deja de ser un problema tecnológico importante. Pero en el caso este del nick, no creo que más complicado que otras operaciones que el FB banca bien como el manejo de los millones de chats simultaneos, los updates de status, los millones de fotos subidas por día, etc.
Jaja… claro Bubi que no iba a pasar nada!
Nunca dudé de que pasara. Sólo traté de ver el peor caso. Igual a mi el Nick me importaba. No conseguí el que quería, así que tuve que conformarme con fdelossantos.
También me pareció que Observa le puso demasiado «color». Por eso las noticias las leo en Medios al Día.
Si Facebook usara MySQL, ya hacía rato que era historia.
Facebook usa Cassandra, una base de datos distribuída desarrollada por ellos mismos, y luego liberada como open-source en Febrero de 2008. Actualmente está siendo incubada por la fundación Apache.
Mas información en los siguientes links:
http://spyced.blogspot.com/2009/05/why-you-wont-be-building-your-killer.html
http://incubator.apache.org/cassandra/
Gracias Pablo por el aporte. La verdad que ni idea de Cassandra.
Seria medio raro que los programadores de Facebook no hayan pensado en todo lo que expones no?
Es curioso cómo se le da tanto color a algo tan comun en internet como el nombre de usuario. Eso es lo que mas me llama la atencion.
Jaja, claro Martín que suena raro. Pero como programador esas son las cosas principales que hay que pensar en un sistema similar… y te cuento que he visto pasar esas cosas en sistemas de empresas.
Me acuerdo de un cliente que tenía claves primarias repetidas en una base de Cobol, de un sistema que hacias un cambio en un usuario y quedaba para todos… son curiosidades.
Y al nombre de usuario se le da color porque sirve hacer las cosas fáciles, que es lo que expongo al principio del post.
Esto va a ser como en aquella película con Tom Cruise y Nicole Kidman, Un horizonte muy lejano.