Patrick Galbraith, da NorthScale, é, há muitos anos, autor e mantenedor do site MySQL, e agora Drizzle, UDFs para memcached. Na semana passada, Patrick deu um passo adiante com o lançamento mais recente, a versão 1.1, que agora inclui suporte para operações "check and set" (também conhecidas como CAS).

As funções definidas pelo usuário estão disponíveis para vários bancos de dados diferentes. Isso permite que algum tipo de linguagem de procedimento armazenado ou outros acionadores executem outro código importado para o banco de dados. No caso da UDF do memcached, isso significa dar aos procedimentos armazenados a capacidade de chamar operações do memcached.

A ideia geral aqui é bem simples. A maioria dos aplicativos começa com um banco de dados, embora seja sempre possível usar serviços da Web ou arquivos simples. Independentemente de onde os dados são persistidos, para manter o cache sempre atualizado com o sistema de registro (SoR), uma abordagem muito, muito simples é propagar invalidações (ou seja, exclusões) para o cache sempre que você atualizar um registro no SoR. Os bancos de dados, únicos ou fragmentados, são muito populares para gerenciar dados de aplicativos, portanto, eles têm uma função nesse padrão. No diagrama abaixo, quando o aplicativo precisa atualizar um registro com base na interação do usuário (#1), o banco de dados pode, se o UDF estiver habilitado e informado como fazê-lo, invalidar esses dados no cache (#2).

Isso não serve para tudo, pois várias operações podem não ser aplicadas como uma transação do aplicativo, mas é simples de configurar e funciona para muitos aplicativos.

Além das excelentes UDFs do Patrick para MySQL e Drizzle, há pgmemcache para PostgreSQLe até mesmo um protótipo de UDFs para o Apache Derby (também conhecido como JavaDB).

Ah, e sobre o novo recurso CAS que Patrick adicionou ao MySQL/Drizzle UDF. A maioria dos usuários do memcached começa com as coisas pequenas: gets e sets. Em seguida, encontram utilidade para operações como add. Em pouco tempo, eles estão se esforçando para lidar com clientes distribuídos que desejam atualizar um item. Em um alto nível, é aí que entram as operações de "verificação e definição" (também conhecidas como CAS). Dê uma olhada na versão original protocolo.txt (ou o protocolo binário doc) para ver como você pode usar isso. Em particular, a adição do CAS permite implementar algoritmos sem bloqueio, frequentemente necessários quando vários sistemas desejam atualizar um item em um sistema distribuído.

Entre na lista de memcached.org se estiver procurando mais informações.

Autor

Postado por A equipe do Couchbase

Jennifer Garcia é gerente sênior de Web na Couchbase Inc. Como gerente do site, Jennifer tem a responsabilidade geral pelas propriedades do site, incluindo design, implementação, conteúdo e desempenho.

Deixar uma resposta