Facebook and memcached - Tech Talk

Meta Developers
27 Nov 201327:56

Summary

TLDREn el segundo de las charlas técnicas de Facebook, Dave Fetterman y Mark Zuckerberg discuten 'mcash', una herramienta integral en la arquitectura de software de Facebook que agiliza el acceso a datos. Mcash es un servicio de tabla hash distribuida en memoria, que mejora significativamente el rendimiento al almacenar datos ' calientes' de las bases de datos. El video cubre su importancia, la evolución y los desafíos de escala, incluyendo la implementación de UDP en lugar de TCP para optimizar transmisiones de datos y la creación del proxy de mcash para mantener la coherencia entre servidores en diferentes centros de datos. También destacan las pequeñas optimizaciones que, debido a la escala de Facebook, resultan en ahorros significativos en costos y recursos.

Takeaways

  • 😀 Dave Fedman, un ingeniero de Facebook, presenta la segunda charla técnica de Facebook sobre mcash, una herramienta crucial para el lado del servidor en sistemas sociales.
  • 🔧 Mcash es una implementación de la primera versión realizada por Mark Zuckerberg, que se ha convertido en una parte integral de la pila de software utilizada por Facebook.
  • 👥 Facebook, como empresa de tecnología, valora la importancia de que tanto el personal técnico como la dirección tengan un perfil técnico para tomar decisiones coherentes con la estrategia tecnológica.
  • 🔄 Mcash es un servicio de tabla hash en memoria distribuida que permite el acceso rápido a datos a través de un clúster de máquinas, simplificando el proceso de obtener y establecer claves.
  • 🚀 Facebook maneja patrones de acceso a datos diferentes a otros tipos de aplicaciones, donde los datos de un usuario provienen de múltiples fuentes y conexiones, lo que requiere un sistema de caché rápido y eficiente.
  • ⏱️ Mcash mejora significativamente el rendimiento al reducir los tiempos de consulta a bases de datos, con una tasa de éxito del 95% y consultas que tienden a ser menos de medio milisegundo.
  • 💡 El uso de mcash comenzó en 2005 y ha evolucionado para abordar desafíos de escala, como el soporte para más de 32 bits de RAM y la optimización de la serialización de datos para mejorar la velocidad y estabilidad.
  • 🌐 Para manejar la coherencia de los datos en múltiples centros de datos, Facebook desarrolló mcash proxy, que permite la sincronización y replicación eficiente de datos entre diferentes ubicaciones.
  • 🛠️ Las optimizaciones en mcash incluyeron cambios en la arquitectura de la red, como el cambio de TCP a UDP para mejorar la eficiencia y reducir la sobrecarga de memoria y conexiones.
  • 🔧 Se realizaron ajustes en la asignación de memoria (slab allocation) y en el número de llamadas de sistema para mejorar la eficiencia de la memoria y reducir el uso de la CPU, lo que resultó en ahorros significativos para la empresa.

Q & A

  • ¿Quién es Dave Fedman y qué papel desempeña en Facebook?

    -Dave Fedman es un ingeniero en Facebook y fue quien dio la segunda charla técnica de Facebook, donde habló sobre el desarrollo y la importancia de 'mcash' en la infraestructura de Facebook.

  • ¿Qué es mcash y por qué es crucial para Facebook?

    -Mcash es un servicio de tabla hash distribuida en memoria que es fundamental para Facebook, ya que permite un acceso rápido a los datos, siendo una parte crucial de la programación del lado del servidor y de los sistemas que Facebook ejecuta.

  • ¿Cómo se relaciona mcash con la estrategia técnica de Facebook?

    -Mcash es una contribución significativa de Facebook a la comunidad técnica y es una parte integral de la pila de software que utilizan. Ayuda a mantener la coherencia y la eficiencia técnica a lo largo de toda la empresa.

  • ¿Cómo se utiliza mcash en el patrón de acceso a datos de Facebook?

    -Debido a que Facebook tiene un patrón de acceso a datos diferente al de otras aplicaciones, donde los datos de un usuario provienen de múltiples amigos y conexiones, mcash permite acceder rápidamente a estos datos compartidos de manera eficiente.

  • ¿Cuáles son las características de mcash que lo hacen importante para Facebook?

    -Mcash es importante por ser un servicio de tabla hash distribuida en memoria que se ejecuta en un clúster de máquinas, lo que permite una gestión simple de claves y un acceso rápido a los datos que se almacenan comúnmente en caché para optimizar el rendimiento.

  • ¿Qué problemas iniciales tuvo mcash y cómo fueron resueltos?

    -Inicialmente, mcash solo soportaba 32 bits, lo que causaba fallos al intentar utilizar más de 4GB de RAM. Los ingenieros de Facebook modificaron mcash para soportar 64 bits, solucionando así el problema y permitiendo un uso más eficiente de la memoria.

  • ¿Cómo se enfrentó Facebook a los desafíos de escala con mcash?

    -Facebook se enfrentó a desafíos de escala al utilizar mcash, como el manejo de conexiones y la memoria requerida para mantener estas conexiones. Implementaron cambios como la transición de TCP a UDP para la transmisión de datos y desarrollaron mcash proxy para gestionar eficientemente las conexiones y la coherencia entre cachés.

  • ¿Qué es mcash proxy y cómo ayudó a resolver los problemas de escala de Facebook?

    -Mcash proxy es una implementación del cliente de mcash que permite la conexión de un solo cliente de mcash proxy en un servidor web, manteniendo conexiones persistentes con todos los servidores mcash y solucionando así el problema de la gran cantidad de conexiones requeridas.

  • ¿Cómo se integró mcash en la arquitectura de Facebook y cómo permitió la expansión a múltiples centros de datos?

    -Mcash se integró temprano en la infraestructura de Facebook y, para permitir la expansión a múltiples centros de datos, utilizaron mcash proxy para sincronizar y replicar las cachés en diferentes ubicaciones, asegurando la coherencia y la eficiencia en todo el sistema.

  • ¿Qué optimizaciones se realizaron en mcash para mejorar su rendimiento y por qué son importantes a gran escala?

    -Se realizaron varias optimizaciones en mcash, incluyendo cambios en la asignación de memoria (pasando de potencias de dos a potencias de 1.3), la reducción del uso de CPU al modificar el protocolo de transmisión de cadenas y la modificación de controladores de red en el kernel de Linux. Estas optimizaciones son importantes a gran escala porque, incluso pequeños ahorros en recursos pueden traducirse en millones de dólares y mejoras significativas en la eficiencia del sistema.

Outlines

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Mindmap

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Keywords

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Highlights

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Transcripts

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora
Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
FacebookMemcachedOptimizaciónEscalaInfraestructuraRedes SocialesDesarrolloConexiónCacheDiseño