Simplicidade. Isso é parte do que tornou o memcached popular por trazer "rapidez" aos aplicativos da Web. O padrão de uso é simples de entender, é simples instalar o servidor e, é claro, é simples fazer com que o cliente funcione com seu aplicativo. Nesse último caso, tudo o que você precisa fazer é instalar o cliente, configurar a lista de servidores e começar a usá-lo.
Poderia ser mais simples? Claro. A implementação de qualquer aplicativo não é estática.
As necessidades mudam com o passar do tempo, o que pode significar que você precisa adicionar servidores, remover servidores ou lidar com servidores com falhas. O hashing consistente é uma maneira de resolver isso, conforme proposto originalmente por Richard Jones e em uso na Last.fm. Quase todos os clientes agora têm hashing consistente e podem lidar com falhas inesperadas do servidor. No entanto, isso não aborda os casos de reconfiguração em que você pode adicionar um servidor. Você também precisa criar seu próprio esquema para distribuir as alterações. Em muitos casos, de forma não intencional, isso acaba sendo codificado no aplicativo ou em algum tipo de arquivo de configuração que requer manutenção e ao fazer alterações em seu farm de servidores memcached.
Com o NorthScale Memcached Server, tornamos isso ainda mais simples.
Juntamente com um cliente baseado no cliente IO spymemcached sem bloqueio para Java, adicionamos uma camada muito pequena, aberta, simples e baseada em interface REST que permite que qualquer pessoa interaja com os servidores memcached para gerenciamento e observação.
Como mais APIs simplificam o processo? Com o cliente fornecido no kit de desenvolvedor NorthScale, no modo de uso mais simples, a única coisa necessária é um único URI para inicializar na interface REST. Com isso, o cliente percorrerá os URIs, determinará quais servidores existem no "cluster" e começará a usá-los.
Precisa de mais? Você pode alimentar o cliente com a lista completa de servidores. Todos eles representam o mesmo estado do cluster. O cliente usa uma interface no estilo cometa para reagir rapidamente às alterações quando elas ocorrem. Precisa de ainda mais? Você pode especificar a qual "bucket" deseja se conectar, o que permite a multilocação com o memcached. Isso significa que não será mais necessário criar namespaces para sistemas compartilhados entre vários aplicativos.
Se você quiser criar seu próprio cliente para usar a interface REST, criar "buckets" e assim por diante, tudo isso está lá para você e documentado.
Na verdade, já estamos trabalhando com Attila Kisk??, o autor do cliente memcached Enyim, e Evan Weaver, do cliente fauna do Ruby. Estamos ansiosos para trabalhar com esses caras e muitos outros.
Os servidores têm um estado coerente e oferecem serviços HTTP/JSON REST simples, fornecendo informações e acesso rápidos e simples aos serviços memcached fornecidos em todo o cluster. Os clientes e aplicativos podem aproveitar isso de várias maneiras para simplificar a forma como trazem velocidade e escalabilidade para seus aplicativos.
Estou feliz por estar de volta com uma presença pública e uma personalidade novamente, depois de ficar um pouco escondido por um tempo. Se você fizer o download e der uma chance, envie um feedback ou dê algumas ideias sobre o que gostaria de ver no futuro!