Simplicidad. Eso es parte de lo que ha hecho popular a memcached para aportar "rapidez" a las aplicaciones web. El patrón de uso es sencillo de entender, es sencillo instalar el servidor y, por supuesto, es sencillo poner en marcha el cliente con tu aplicación. En este último caso, todo lo que necesitas hacer es instalar el cliente, configurar la lista de servidores, y empezar a usarlo.
¿Podría ser más sencillo? Claro. El despliegue de cualquier aplicación no es estático.
Las necesidades cambian a lo largo del tiempo, lo que puede significar que haya que añadir servidores, eliminar servidores o hacer frente a servidores averiados. El hashing consistente es una forma de resolver esto, como propuso originalmente Richard Jones y en uso en Last.fm. Casi todos los clientes tienen ahora hashing consistente y pueden hacer frente a fallos inesperados del servidor. Sin embargo, esto no aborda los casos de reconfiguración en los que puedes añadir un servidor. También tienes que idear tu propio esquema para distribuir los cambios. En muchos casos, más bien involuntariamente, esto termina codificado en la aplicación o en algún tipo de archivo de configuración que requiere mantenimiento y al hacer cambios en su granja de servidores memcached.
Con el servidor Memcached de NorthScale, lo hemos simplificado aún más.
Junto con un cliente basado en el cliente de IO no bloqueante spymemcached para Java, hemos añadido una capa muy pequeña, abierta, sencilla y basada en la interfaz REST que permite a cualquiera interactuar con los servidores memcached para su gestión y observación.
¿Cómo simplifican las cosas más API? Con el cliente incluido en el kit para desarrolladores de NorthScale, en el modo de uso más sencillo, lo único que se necesita es un único URI para arrancar en la interfaz REST. A partir de ahí, el cliente recorrerá las URI, determinará qué servidores existen en el "cluster" y empezará a utilizarlos.
¿Necesitas más? Puedes proporcionar al cliente la lista completa de servidores. Todos ellos representan el mismo estado del clúster. El cliente utiliza una interfaz tipo cometa para reaccionar rápidamente a los cambios cuando se producen. ¿Necesita aún más? Puedes especificar a qué "bucket" quieres conectarte, lo que permite el multi-tenancy con memcached. Esto significa que ya no es necesario idear espacios de nombres para sistemas compartidos entre varias aplicaciones.
Si quieres crear tu propio cliente para utilizar la interfaz REST, crear "cubos", etc., todo está a tu disposición y documentado.
De hecho, ya hemos estado trabajando con Attila Kisk, autor del cliente memcached Enyim, y con Evan Weaver, del cliente fauna de Ruby. Estamos deseando trabajar con ellos y con muchos otros.
Los servidores tienen un estado coherente, proporcionan servicios REST HTTP/JSON simples, proporcionando información rápida y sencilla sobre y acceso a los servicios memcached proporcionados a través del clúster. Los clientes y las aplicaciones pueden aprovechar esto de muchas maneras para simplificar la forma en que aportan velocidad y escalabilidad a sus aplicaciones.
Me alegro de volver a tener una presencia y una personalidad públicas, después de haber permanecido en la sombra durante un tiempo. Si por casualidad lo descargas y le das una oportunidad, ¡danos tu opinión o algunas ideas sobre cómo te gustaría que fueran las cosas en el futuro!