Dos ex-desarrolladores de Facebook han creado un nuevo manejador de bases de datos que, según ellos, es el más rápido en todo el mundo y han puesto un video para demostrar la superioridad de éste comparado con el estándar de facto, MySQL.
Eric Frenkiel y Nikita Shamgunov han escrito MemSQL, un manejador de bases de datos que desarrollaron en el transcurso del año pasado, y que alegan, es 30 veces más rápido que los manejadores convencionales de bases de datos basados en almacenamiento en disco.
El equipo utilizó algunas técnicas que usaron en Facebook para crear un manejador que fuese muy rápido. Las ideas claves es que el código SQL se traduce a C++, lo cual elimina la necesidad de usar un intérprete (en esencia lento), de SQL, y como los datos se mantienen en memoria, las escrituras/lecturas a disco se hacen en el fondo (background).
Esto no parece un sistema creado por aficionados. Shamgunov tiene excelentes credenciales en el mundo de las bases de datos, habiendo trabajado para Microsoft en el SQL Server por seis años. Tiene incluso varias patentes a su nombre y es un medallista de oro en los concursos de programación de la ACM.
De acuerdo al video que haqn puesto los creadores de MemSQL, su sistema puede hacer unas 80,000 consultas por segundo mientras que MySQL sólo 3,500 por segundo. Esto suena, evidentemente, impresionante, pero siempre quedan dudas sobre si las consultas a hacer no fueron hechas para optimizar la plataforma que se está anunciando. Sería más interesante usar un benchmark conocido, como el de TPC – Transaction Processing Performance Council y ver entonces los resultados.
Para algunos, la razón de que MemSQL logra estas velocidades es porque está basado en memoria, con todos sus pros y contras en términos de límites de tamaño y problemas potenciales de perder los datos que contiene.
La documentación dice que MemSQL escribe a disco/SDD tan pronto como la transacción es reconocida en la memoria y que usar una combinación de escribir de esta manera asegura que los datos no se pierdan.
Cabe decir que MemSQL es totalmente compatible con MYSQL y desde luego que éste es un importante punto a su favor. Los creadores dicen que “MemSQL puede manejar cargas de trabajo de terabytes conectando nodos MemSQL y MySQL juntos, lo cual le confiere acceso en tiempo real a sus más valiosos datos así como a un soporte histórico incluso”.
MemSQL corre en Linux de 64 bits y se describe como ideal para máquinas con múltiples núcleos y al menos 8 GBytes de RAM. Hay una edición gratuita para desarrolladores, pero está limitada a 10 GBytes en capacidad. Hay otra versión de tamaño ilimitado, pero restringida a poderse usar solamente por 30 días. Sin embargo, no hay aún información del costo de una licencia comercial.
Referencias: MemSQL y Lanzan manejador de memoria ultrarrápido