Login Barrapunto
Un vistazo al interior de memcached
Entrada escrita por mig21 y
editada por rvr
el 10 de Noviembre 2008, 16:36h
desde el dept. start-stop
desde el dept. start-stop
Leo en El valle del Viento Helado un artículo acerca de la arquitectura interna de memcached. memcached es un sistema de cachés genéricas muy usado en aplicaciones web. En el artículo se repasa tanto la elección de libevent como sistema de gestión de eventos sobre descriptores de fichero, el uso de funciones de entrada/salida no bloqueantes y sobre todo una gestión de memoria basada en un slab allocator. Contiene además enlaces con más información sobre el tema aunque como siempre la información última está en el código fuente.
Historias relacionadas
[+]
FaceBook publica su versión modificada de memcached 15 comentarios
Vía reddit. Facebook acaba de publicar su versión de memcached, el sistema de cachés genéricas más usado en aplicaciones web, tras hacer modificaciones para afrontar sus necesidades de rendimiento y escalabilidad. Las modificaciones principales han sido entre otras la eliminación de un 'buffer' por conexión en favor de un 'pool', reducción de bloqueos innecesarios para un mejor rendimiento en máquinas 'multicore' y el uso intensivo de UDP. El resultado final ha sido la posibilidad de gestionar 200.000 peticiones UDP por segundo con una latencia media de 173 microsegundos. Han subido los cambios a GitHub: facebook-memcached y esperan que los cambios sean incorporados al memcached oficial. Curiosamente hemos hablado recientemente bastante de memcached en Barrapunto: Un vistazo al interior de memcached y Cómo afrontar el efecto /. usando memcached.
Este hilo ha sido archivado.
No pueden publicarse nuevos comentarios.
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.

No lo entiendo
(Puntos:2)( Última bitácora: Viernes, 02 Enero de 2009, 18:47h )
En fin, me parece raro que ninguna implementación fuese lo suficiente buena para memcached.
Programs should be written for people to read, and only incidentally for machines to execute
Fragmentación y orden del algoritmo
(Puntos:4, Interesante)( http://icewinddale.blogspot.com/ | Última bitácora: Martes, 02 Febrero de 2010, 12:29h )
La otra ventaja es que el algoritmo es O(1), no dependiendo del número de bloques libres para buscar el que mejor se adapta a la petición de memoria.
Una cosa - aunque no lo usa la implementación de memcached -, es que la implementación original del slab, permitía tener funciones constructoras y destructoras. De esta manera, una vez que se libera un bloque de memoria, el objeto que contenía podía dejarse en un estado "conocido" y no era necesario volver a inicializarlo.
-- icewinddale.blogspot.com [blogspot.com]