Bibliotecas cliente para Couchbase Server

Couchbase Server es sencillo de desarrollar por su propia naturaleza. Modelar tus datos, como muchos de mis colegas dicen a menudo, es simplemente una cuestión de organizarlos como el mundo natural que te rodea. Sé que parece una idea cegadoramente sencilla, pero muchos desarrolladores de software han tenido que lidiar con el desajuste de impedancias al construir el software entre los usuarios y sus datos.

Cuando nos dispusimos a construir el predecesor de Couchbase Server 1.8, Membase Server, teníamos un muy buen manejo de cómo la gente ya estaba haciendo esto con aplicaciones a gran escala. La compatibilidad con memcached significaba que podías tomar una aplicación existente, escribir unas pocas líneas negativas de código (¡eso significa eliminarlas, no escribir código gruñón!) y estar listo y funcionando en Couchbase Server.

La magia de esto fue por proxy ya sea del lado del cliente o del servidor con Moxi. Ya tenemos un rendimiento tan alto y una latencia tan baja que la sobrecarga de Moxi no es perceptible en la mayoría de las implantaciones.

También habíamos desarrollado un par de clientes que sabían en su núcleo interno de algoritmos hash cómo encontrar o almacenar un dato. Los ingenieros que había en nosotros decían que ésta era la forma más pura. Muchos de nuestros usuarios estaban de acuerdo, y a menudo recibíamos peticiones para crear bibliotecas de clientes más inteligentes, pero compatibles, para otras plataformas. Si lo hiciéramos, simplificaríamos aún más las cosas eliminando la capa de Moxi, bastante transparente pero necesaria.

A partir de hoy, hemos simplificado y agilizado aún más la conexión entre el código y el cable.

Con el nuevo lanzamiento de Couchbase Server 1.8, tenemos un conjunto de librerías cliente PHP, Ruby y C que lo saben todo sobre un cluster y cómo trabajar con él. Hemos mantenido exactamente o casi exactamente la misma API. Esto facilita las actualizaciones a la nueva biblioteca cliente. No nos detuvimos ahí, también invertimos en un embalaje moderno, distribución de software y mejor documentación para los usuarios existentes de Java y .NET. También hemos simplificado y racionalizado el sitio web pensando en el desarrollo de software. Dígame qué le parece.

En su blog, John Zablocki presenta el nuevo SDK .NET, mientras que Rags Srinivas cubre las actualizaciones tanto en el Java y Ruby SDK. Nuestro Jan Lehnardt también ofrece un rápido resumen de los SDK DE PHP. PHP y Ruby obtienen su inteligencia del nuevo SDK de C (también conocido como libcouchbase). Es nuevo desde el principio, y construido para la velocidad y la portabilidad.

Sólo para dar un pequeño ejemplo de lo que quiero decir, aquí está una muestra de las operaciones de nuestra biblioteca cliente Ruby construido sobre libcouchbase:

Bucles es 5000
El tamaño del valor pequeño es: 19 bytes
El tamaño del valor grande es 4189 bytes
usuario sistema total real
set: dalli 0.640000 0.310000 0.950000 ( 2.280556)
set: memcached 0.260000 0.180000 0.440000 ( 1.741302)
set: memcached:buffer 0.070000 0.120000 0.190000 ( 1.242726)
set: couchbase 0.220000 0.270000 0.490000 ( 0.930583)get: dalli 0.660000 0.250000 0.910000 ( 2.348882)
get: memcached 0.240000 0.390000 0.630000 ( 2.859149)
get: memcached:buffer 0.290000 0.310000 0.600000 ( 2.778201)
get: couchbase 0.260000 0.260000 0.520000 ( 0.907956)get-multi: dalli 0.910000 1.150000 2.060000 (200.106302)
get-multi: memcached 0.350000 0.720000 1.070000 (200.054008)
get-multi: memcached:buffer 0.350000 0.510000 0.860000 (200.028848)
get-multi: couchbase 0.210000 0.140000 0.350000 ( 0.442803)

Esto muestra el tiempo de ejecución tanto en CPU como en reloj de pared para una carga de trabajo fija. Los números más bajos son mejores, por supuesto. El código para el benchmark está en el cliente ruby.

Respeto a los demás clientes y seguimos ofreciéndoles una compatibilidad perfecta a través de Moxi, pero se puede ver fácilmente que añadiendo algo de inteligencia hemos sido capaces de aumentar el rendimiento hasta 150-200% (y mucho, mucho más en un caso concreto). No es frecuente ver ese tipo de aumento de velocidad con un software maduro.

Hemos visto resultados similares en la biblioteca cliente de PHP. Estoy bastante seguro de que va a ser material caliente para simplificar los despliegues y dar margen de maniobra adicional en los despliegues de rendimiento crítico

Salta directamente al área que te interese, ya sea Java, .NET, PHP, Ruby o C. También hay algunos otros clientes experimentales. Si tienes alguna pregunta o comentario, háznoslo saber en los foros.

¡Feliz pirateo!

p.d. Quiero recibir opiniones sobre el nuevo sitio. Por favor, hágamelo saber.

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

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.

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.