Desde hace muchos años, Patrick Galbraith, de NorthScale, es el autor y responsable de la publicación MySQL, y ahora Drizzle, UDFs para memcached. La semana pasada, Patrick dio un paso más con la última versión, la 1.1, que ahora incluye compatibilidad con las operaciones "check and set" (también conocidas como CAS).

Las Funciones Definidas por el Usuario están disponibles para diferentes bases de datos. Esto permite que algún tipo de lenguaje de procedimientos almacenados u otros disparadores ejecuten otro código importado en la BD. En el caso del UDF memcached, esto significa dar a los procedimientos almacenados la capacidad de llamar a operaciones memcached.

La idea general es bastante sencilla. La mayoría de las aplicaciones comienzan con una base de datos, aunque siempre es posible utilizar servicios web o archivos planos. Independientemente de dónde se almacenen los datos, para mantener la caché siempre actualizada con el Sistema de Registro (SoR), un enfoque muy, muy sencillo es propagar las invalidaciones (es decir, los borrados) a la caché cada vez que se actualiza un registro en el SoR. Las bases de datos, ya sean individuales o fragmentadas, son muy populares para gestionar los datos de las aplicaciones, por lo que tienen un papel en este patrón. En el siguiente diagrama, cuando la aplicación necesita actualizar un registro basándose en la interacción del usuario (#1) la base de datos puede, si UDF está habilitado y se le indica cómo hacerlo, invalidar esos datos en la caché (#2).

Esto no es para todo, ya que las operaciones múltiples pueden no ejecutarse como una transacción desde la aplicación, pero es sencillo de configurar y funciona para un gran número de aplicaciones.

Además de las excelentes UDFs de Patrick para MySQL y Drizzle, hay pgmemcache para PostgreSQLe incluso un prototipo de UDFs para Apache Derby (también conocido como JavaDB).

Ah, y sobre esa nueva característica CAS que Patrick añadió a la UDF MySQL/Drizzle. La mayoría de los usuarios de memcached empiezan con las cosas pequeñas: gets y sets. Luego encuentran utilidad para operaciones como add. En poco tiempo, se enfrentan a cómo tratar con clientes distribuidos que quieren actualizar un elemento. A alto nivel, aquí es donde entran en juego las operaciones "check and set" (también conocidas como CAS). Echa un vistazo al protocolo.txt (o el protocolo binario doc) para ver cómo puede utilizarlo. En particular, la adición de CAS permite implementar algoritmos sin bloqueo, necesarios cuando varios sistemas desean actualizar un elemento en un sistema distribuido.

Entre en la lista de memcached.org si busca más información.

Autor

Publicado por El equipo de Couchbase

Jennifer Garcia es Gerente Senior de Web en Couchbase Inc. Como responsable del sitio web, Jennifer tiene la responsabilidad general de las propiedades del sitio web, incluido el diseño, la implementación, el contenido y el rendimiento.

Dejar una respuesta