Hoy es un día emocionante para nosotros en NorthScale. Junto con nuestros socios Zynga y NHN, nos anunciado la formación del proyecto de código abierto membase. Membase es un simple, rápido, elástico "NoSQL" (absolutamente odio y estaremos encantados de apoyar a cualquiera que pueda reunir al mundo en torno a un nombre mejor). En la actualidad, Membase sirve datos a algunas de las aplicaciones web más concurridas del planeta. El proyecto está alojado en membase.org donde ya está disponible el código fuente, la documentación y la información de la comunidad.
Además del lanzamiento de membase.org, hemos anunciado disponibilidad beta de Servidor Membase NorthScalenuestra distribución comercial del software de código abierto. Beta 1 está disponible como paquete RPM (certificado para los sistemas operativos Red Hat y CentOS de 32 y 64 bits, versiones 5.2 y 5.4). La Beta 2 añadirá compatibilidad con Ubuntu, seguida de la compatibilidad con los sistemas operativos cliente y servidor Microsoft Windows en la Beta 3. Hay mucha información detallada sobre el proyecto y el producto en membase.org y northscale.comAsí que, en lugar de repetirlo aquí, utilizaré esta entrada del blog para ofrecer un poco de color histórico sobre el proyecto y la motivación que hay detrás de él. A principios de 2009, los líderes del proyecto de software de código abierto memcached fundaron NorthScale para responder a un aluvión de preguntas y peticiones que habíamos escuchado en esa comunidad. Cada vez estaba más claro que a los usuarios de memcached les gustaba tanto la tecnología que querían empezar a utilizarla (y, en muchos casos, lo usaban) para cosas para las que nunca fue concebido. La mayoría de esas "cosas" giraban en torno a tratar memcached como si fuera una base de datos, en lugar de la simple caché distribuida que es. Memcached es una caché (imagínate). Se utiliza para almacenar transitoriamente datos en caché, en memoria, distribuidos uniformemente a través de un clúster de servidores. Si un servidor se llena, memcached expulsará de la memoria el objeto de datos utilizado menos recientemente para dejar espacio a los datos "más calientes". Si se desconecta un servidor, los datos, que se almacenan en memoria volátil, se perderán. Eso está muy bien con memcached, porque se supone que las aplicaciones que utilizan memcached están en posición de reconstruir cualquier dato necesario, en cualquier momento, desde una base de datos duradera. Las aplicaciones suelen hacer esto almacenando los datos en un sistema de gestión de bases de datos relacionales. Si los datos no se encuentran en la caché (¡o si la propia caché no se encuentra!), la aplicación puede simplemente consultar la base de datos. En algunos casos sin saberlo, pero en muchos casos con pleno conocimiento de lo anterior, las aplicaciones almacenaban datos en memcached como si fueran a estar allí para siempre. Algunas organizaciones hicieron todo lo posible para protegerse: se aseguraron de que siempre hubiera un exceso de capacidad de memoria en cada nodo e invirtieron en sistemas de gestión de energía para garantizar que los cortes de energía no afectaran a la memoria. Esto nos lleva a preguntarnos: ¿por qué la gente inteligente se tomaría tantas molestias para utilizar algo que es...? tratando activamente de perder sus datos¿para almacenar sus datos? Tres palabras: simple, rápido, elástico. A la gente le gusta memcached porque representa un lugar prácticamente ilimitado para almacenar fácilmente datos en caché, a muy bajo coste y con un rendimiento predeciblemente estelar. Sin esquemas, sin tablas, sin fragmentación, sin normalización, sin ajuste. Si quieres poner algo en memcached, lo pones ahí. ¿Por qué ponerlo en dos sitios? Memcached es un soplo de aire fresco. Y hay beneficios económicos sustanciales: un clúster memcached se escala (basta con añadir más cajas de productos básicos para aumentar la capacidad), con un coste lineal y un rendimiento agregado constante. Hasta el infinito, a efectos prácticos. Atractivo. Como un canto de sirena. Entra en membase. Sin comprometer nunca la sencillo, rápido y elástico y garantizando la compatibilidad 100% on-the-wire con memcached (ahora y en el futuro, dado nuestro aprovechamiento directo del código frontal de memcached), membase añade:
- Persistencia: almacenamiento de datos en SSD y soportes giratorios, dentro o fuera del nodo.
- Replicación: proporciona alta disponibilidad mediante la copia de datos en varios miembros del clúster y permite una rápida conmutación por error.
- configuración dinámica de clústeres: añadir y eliminar servidores y reequilibrar datos en un clúster activo sin afectar a las aplicaciones en ejecución
Para las decenas de miles de aplicaciones memcached que ya se ejecutan en la naturaleza, y sin cambiar una sola línea de código, membase proporciona un lugar simple, rápido y elástico para almacenar datos . Aunque la tecnología de bases de datos relacionales siempre tendrá sentido para algunas clases de datos, el deseo observado de utilizar memcached como base de datos dejó claro que hay hambre de algo que pueda almacenar datos de forma más fácil, rentable y con mayor rendimiento en todo el espectro de escalado. Así que disfruta del canto de sirena. Membase está libre de rocas.