Mostrando entradas con la etiqueta MySql. Mostrar todas las entradas
Mostrando entradas con la etiqueta MySql. Mostrar todas las entradas

jueves, 3 de abril de 2014

Twitter y MySQL, una combinación que funciona

Si de verdad quieres aprender de cualquier tema, tienes que escuchar y leer a los mejores en ese campo. Si quieres aprender de escalabilidad y rendimiento de bases de datos de gran carga y tamaño, escuchar al arquitecto de bases de datos de un gigante en expansión continua parece una gran idea. Pues bien, Jeremy Cole, uno de los arquitectos de bases de datos de Twitter impartió una charla en el ámbito de la O’Reilly MySQL Conference titulada ‘Big and Small Data in @Twitter’. La tienes completa en el vídeo de arriba pero podemos sacar unas cuantas revelaciones de lo que comenta a lo largo de la media hora larga que dura la charla:
- Al principio en Twitter usaban sharding (particionado de datos horizontal agrupando por alguna característica lógica) temporal. Pronto se dieron cuenta de que se trataba de un error debido a: logística compleja, caro y problemas con la carga de balanceado.
- Entonces pasaron a utilizar FlockDB (para el mapeo de ids) y Glizzard, un framework propio sobre MySQL (usando como tecnología de almacenamiento InnoDB, no MyIsam) para el almacenamiento.
- Con Glizzard no hay datos corruptos y el rendimiento mejora sustancialmente… lo que redunda en unos administradores de bases de datos viviendo un poco mejor.
- ¿Por qué MySQL y no otra? Principalmente porque es estable: funciona bien la mayoría del tiempo y no se suele corromper.
- Además de MySQL / Glizzard: Vertica para analisis y grandes agregaciones, Cassandra para escrituras de alta velocidad y el cada vez más en boga Hadoop para consultas que afecten a una gran cantidad de filas.
Se podrá estar más o menos de acuerdo pero desde luego se trata de aspectos muy interesantes.

martes, 1 de abril de 2014

WebScaleSQL, el proyecto libre de Facebook, Twitter, Google y Linkedin para hacer MySQL más escalable

WebScaleSQL es el proyecto Open Source iniciado por ingenieros de Facebook, Google, LinkedIn y Twitter, abierto a aportaciones del resto de la comunidad. Presentado esta semana, sobre un branch de la release MySQL 5.6 community, el objetivo es mejorar con el conocimiento adquirido por estas compañía y llevar este sistema de bases de datos a un alto grado de eficiencia que soporte las exigencias a gran escala que requieren.
Facebook con más de mil millones de usuarios, es quizás uno de los mayores despliegues sobre bases de datos MySQL, por tanto uno de los principales interesados en empujar el desarrollo de MySQL, al igual que Twitter. Por eso, a pesar que cierta parte de la comunidad ha optado por hacer un fork como MariaDB o Drizzle, Facebook y el resto de compañías del proyecto WebScaleSQL apuestan por crear un branch que camine junto al proyecto inicial y nutra a la comunidad actual de MySQL.
El objetivo de WebScaleSQL es hacer posible que MySQL pueda funcionar en entornos escalables con alta exigencia como la web. Los ingenieros de las cuatro compañías implicadas llevan meses intercambiando conocimientos y viendo cómo trabaja cada uno para aunar un proyecto común que les ayude a solucionar problemas comunes.
El sistema colaborativo de WebScaleSQL está abierto para que cualquiera pueda enviar su colaboración, revisar el código o reportar errores. Por ejemplo, un desarrollador de WebScaleSQL puede proponer un cambio. Luego un desarrollador de WebScaleSQL de otra compañía revisar el código y aportar feedback. Si ambos están de acuerdo, el código es funcional y ha pasado los tests, se pushea el código para que esté disponible para todos los desarrolladores. Por otro lado, cada organización puede customizar WebScaleSQL ha sus propias necesidades.
Entre las mejoras ya incorporadas por parte de WebScaleSQL se encuentran:

  • La construcción de un framework que automatice los cambios de cada propuesta envíada, ejecute y publique los resultados en el conjunto de tests de MySQL.
  • Un conjunto de tests de stress para ejecutar en los procesos de mejora de rendimiento de los sistemas MySQL.
  • Cambios en el rendimiento de MySQL: optimización de queries, mejoras del buffer pool fushing, soporte NUMA, etc..
  • Funcionalidades que habilita de forma sencilla WebScaleSQL como un sistema escalable con el modo super_read_only o poder especificar un sub-second client timeout.
Tanto Twitter como Facebook han liberado parte de sus proyectos internos, la “salsa secreta” que emplean en su arquitectura interna. WebScaleSQL es un gran ejemplo de como competidores en el negocio trabajan juntos para solventar problemas similares a nivel de desarrollo de software.