¿Qué es exactamente Membase?

Han pasado poco más de un par de semanas desde el lanzamiento de membase.org, junto con los socios de NorthScale en Zynga y NHN. En ese tiempo, hemos ido aumentando constantemente las publicaciones en la wiki y respondiendo a las preguntas sobre el lista de correoel chat XMPP y el canal IRC. Cuando surgen preguntas, suelen ser sobre cómo se compara el sistema de gestión de bases de datos membase con otros proyectos de código abierto, qué tipo de cliente se utilizaría o cuáles son las piezas cuando se despliega.

El mundo de NoSQL

En general, creo que la gente entiende que, a alto nivel, membase es un sistema distribuido de gestión de bases de datos clave-valor que está diseñado para escalar tanto hacia arriba como hacia abajo, haciéndolo sin interrumpir los servicios de datos.

Membase es un ejemplo de qué DB está diseñada para ofrecer el mismo tipo de rendimiento que las aplicaciones necesitan para estar en el camino crítico de obtener datos para el usuario. Si observamos el mundo de NoSQL, en mi opinión, esta era un área desatendida.

Como nueva área, hay mucha experimentación con NoSQL. Algunos están experimentando con una mezcla de online y analítica, otros están experimentando con una consistencia más laxa o eventual, otros están añadiendo más primitivas de estructura de datos en almacenes K/V y otros están mirando los datos de una manera más orientada a documentos.

Conocíamos algunos de ellos e incluso experimentamos con ellos, pero acabamos tomando un camino diferente con membase, ya que intentábamos resolver algunos problemas muy específicos junto con nuestros socios. Se habían creado aplicaciones en torno a memcached. Algunas de esas aplicaciones necesitaban SQL; para eso, ya tenían Drizzle, MySQL o PostgreSQLo Cubrid (Cubrid es importante en NHN). Otra parte de las mismas aplicaciones realmente no necesitaba SQL, pero sí la replicación, persistencia y gestión de datos que proporcionaban la mayoría de los sistemas de gestión de bases de datos relacionales (RDBMS) basados en SQL, aunque con más complejidad y gestión de la deseada.

Entra membase. Podríamos tomar la infraestructura existente en torno a la cual se habían construido las aplicaciones (protocolo y clientes memcached) y añadir el nivel necesario de durabilidad, añadir reglas para permitir a los administradores y desarrolladores controlar cómo se produce esa durabilidad por elemento, y ser inteligentes sobre cómo se ejecutaría de forma distribuida.

¿Cómo se llega a la meta?

Necesitábamos inyectar un poco de inteligencia en el sistema. Lo bueno de memcached es que la inteligencia está, en su mayor parte, en el cliente, así que el servidor puede ser rápido y tonto. No queríamos alejarnos demasiado de eso, pero si esperas que el sistema sea no volátil, tenga replicación y pueda crecer y decrecer mientras está en línea, necesitas que el sistema tenga algún concepto de dónde viven las cosas. Eso llevó a vbuckets, que El excelente blog de Dustin cubre.

Con una forma de saber dónde viven las cosas, todavía necesitamos durabilidad y replicación junto con esos cubos. Ahí es donde entra el motor de membase. Al motor de membase se le puede decir que replique un conjunto de datos desde un nodo alternativo. También se le puede decir, a través de un mapa de configuración, quién es la autoridad para un determinado bucket.

Sin embargo, los clientes no conocen vbuckets. Conocen modulus o consistent hashing para conectarse a los servidores, así que necesitábamos algo compatible. Ya teníamos moxi, que proporcionaría a los clientes muy sencillos inteligencia en torno a la deduplicación de operaciones, compartición inteligente de conexiones, qué hacer en caso de fallos e incluso algo de caché no coherente para acelerar aún más las cosas. No haría falta mucho más para enseñar a moxi y a su motor de configuración subyacente, libconflate, a saber qué hacer con el mismo mapa vbucket. Esto permitiría a los clientes existentes, e incluso a las aplicaciones existentes, obtener la base de datos clave/valor rápida y distribuida que necesitan, así que eso es lo que hicimos.

Conclusión

En esencia, membase es el motor de membase que implementa persistencia, replicación y vbuckets para crecer y decrecer dinámicamente. Para llevar los vbuckets a los clientes que no tienen esa pequeña inteligencia extra, existe moxi. Para migrar datos entre nodos sin interrumpir el servicio, existe vbucketmigrator. Permanece atento a membase.org para conocer más detalles.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Matt Ingenthron, Director Senior, Ingeniería SDK, Couchbase

Matt Ingenthron es el Director Senior de Ingeniería en Couchbase, donde se centra en la interfaz de desarrollador a través de SDKs, conectores y otros proyectos. Ha sido colaborador del proyecto memcached, uno de los mantenedores del cliente Java spymemcached y desarrollador principal de Couchbase.

1 Comentarios

  1. [...] la empresa creadora de CouchDB, y Membase, la empresa madre de Membase Server y Memcached, se han fusionado para crear una nueva iniciativa [...].

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.