martes, junio 26, 2012
|
Si son desarrolladores de software, y que dependen de bases de datos, esta noticia de hoy será no querrán pasarla por alto...
Sucede que un par de desarrolladores de base de datos, provenientes de Facebook, han creado un nuevo motor de base de datos al que llaman MemSQL, que según ellos es 30 veces más rápido que MySQL. Y si no les creen, ahora mismo pueden ir a su página, descargar una versión de pruebas, y correr toda una serie de queries de SQL tanto contra MemSQL como contra MySQL en la misma máquina, y comprobarlo por ustedes mismos. En un video grabado por ellos (enlace al final de este artículo) pueden ver las pruebas en tiempo real, en donde MySQL obtiene en un cierto hardware unos 3,500 queries por segundo, mientras que MemSQL logra 80,000. Pero, ¿cómo logra esto? Pues no es magia, sino que han empaquetado unos cuantos trucos ya conocidos (tanto dentro como fuera de ambientes de bases de datos), y los han integrados todos en un solo motor, en lo que creo es lo más emocionante que he visto en bases de datos en mucho tiempo... El truco está primero en que MemSQL mantiene tu base de datos en memoria (de ahí su nombre), lo que le ofrece obviamente una gran ventaja sobre bases de datos que dependen de los lentos accesos a discos duros (noten que incluso un SSD es más lento que RAM), pero con la gran particularidad de que utilizan un esquema que antes de que se finalice una transacción le dan una señal al disco duro que de ahí viene una transacción, después ejecutan la transacción en memoria, y solo después que todo la transacción ha sido realizada es que el resultado es escrito a almacenamiento no volátil (es decir, al disco duro u otro tipo de almacenamiento estático). Pero eso es solo parte del truco. La otra parte del truco es que MemSQL analiza las sentencias SQL, y las pre-compila a código optimizado de C++, el cual es en esencia convertido a código super optimizado de bajo nivel. Es decir, MemSQL transforma la naturaleza interpretativa de SQL a ejecución binaria, lo que una vez más acelera enormemente los accesos incluso por encima de otros sistemas basados en almacenamiento en memoria (o incluso del tipo NoSQL). Otro truco es que han implementado la base de datos de manera tal que las lecturas no son bloqueadas por escrituras (aunque especifican que tienes control sobre eso), y además si tienes una aplicación en donde los datos son volátiles que incluso puedes desactivar guardar al disco y mantener todo puramente en memoria para aumentar la velocidad mucho más aun. Y como si fuera poco (y esto creo es el verdadero golpe maestro que hace esto práctico para ser adoptado por todos), es que los desarrolladores de MemSQL lo hicieron 100% compatible con MySQL, y no solo en relación a la definición de los schemas, sino que incluso de las sentencias SQL y del protocolo de linea. En otras palabras, si tienes un driver de MySQL, incluso uno de alguna aplicación vieja, simplemente instala a MemSQL, ponlo a correr en el mismo puerto (u otro, si lo deseas) que MySQL, y el driver funcionará igual, con la gran diferencia de que tu aplicación será entre 20 a 30 veces más rápida que antes en términos de accesos a la base de datos. Esta noticia para mi es fenomenal, ya que una de las grandes limitantes de bases de datos tipo NoSQL es que son difíciles de entender por los que ya llevan años con SQL, así como requieren de toda una diferente forma de acceder a ellos, lo que las hace totalmente incompatibles con sistemas actuales. Pero con MemSQL esas cosas se tornan cosas del paso, ya que aparte de uno poder obtener la velocidad de NoSQL en un entorno SQL, MemSQL de paso está diseñado inherentemente para escalar horizontalmente, lo que significa el uno poder agregar decenas o miles de servidores que entre todos funcionan como uno solo. Los creadores de MemSQL dicen que su motor está diseñado para manejar flujos de bases de datos en el orden de TeraBytes fácilmente. Pero (y acá viene lo que todos temían), ¿cuánto cuesta esto? Pues les tengo buenas y no tan buenas noticias... Hay 3 versiones de MemSQL. 1. Una versión de uso ilimitado pero que solo acepta bases de datos de 10GB o menos (lo que será mucho más que suficiente para la mayoría de las empresas). 2. Una versión de prueba sin límite de datos, pero limitada a funcionar solo 30 días. 3. Una versión ilimitada en datos y tiempo. Sin embargo, desconozco por el momento el costo de licencias en este modelo (si alguien lo averigua, favor de compartir el dato en los comentarios). La otra restricción es que por el momento MemSQL solo funciona en Linux de 64-bit. No hay versiones ni para Windows ni para OS X por el momento. Así que no se ustedes, pero salvo las restricciones antes delineadas, creo que MemSQL es justo lo que necesitábamos en estos momentos para reiniciar la carrera de la innovación en el espacio de bases de datos, y no me sorprendería si la misma gente de MySQL (ahora de propiedad de Oracle), o de forks de MySQL adoptan estrategias similares al corto o mediano plazo. De paso noten algo: Por el momento aparenta que este es el motor de base de datos más rápido del planeta... página oficial de MemSQL página oficial de MemSQL para desarrolladores autor: josé elías |
24 comentarios |
Opinión / Análisis , Predicciones , Software |
Comentarios
Añadir Comentario |
"Segunda vez que te escribo, llevo prácticamente leyendo desde tus inicios más como feliz espectador que como activo comentarista y no podría aunque sea en la recta final quedarme sin agradecerte tus palabras opiniones, enseñanzas, visiones e incluso pasiones que gracias a ti he conseguido descubrir, no sólo yo sino amigos a los que he recomendado insistentemente tu blog. Para mañana cerraré todas las pestañas del navegador(me llevará un rato) y dedicaré una exclusiva a uno de los mejores blogueros e intuyo, personas que he conocido. Mis mejores deseos para ti y los tuyos, para todo lo que hagas y te propongas y si nos echas de menos y necesitas contar alguna nueva reflexión, ten por seguro que si lo avisas por eliax, yo lo veré. Grande"
en camino a la singularidad...
©2005-2024 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax
Seguir a @eliax
¡Qué genial!, a penas tenga tiempo me divertiré un fin de semana haciendo pruebas. Gracias por el dato.