stringtranslate.com

Servidor Couchbase

Couchbase en la cumbre de AWS

Couchbase Server , originalmente conocido como Membase , es un paquete de software de base de datos NoSQL multimodelo , orientado a documentos, distribuido ( arquitectura sin recursos compartidos ) y disponible en código fuente [2], optimizado para aplicaciones interactivas. Estas aplicaciones pueden servir a muchos usuarios simultáneos mediante la creación, el almacenamiento, la recuperación, la agregación, la manipulación y la presentación de datos. Para respaldar este tipo de necesidades de aplicaciones, Couchbase Server está diseñado para proporcionar acceso a documentos JSON o clave-valor de fácil escalabilidad, con baja latencia y alto rendimiento de sostenibilidad. Está diseñado para agruparse desde una sola máquina hasta implementaciones a gran escala que abarcan muchas máquinas.

Couchbase Server proporcionó compatibilidad de protocolo de cliente con memcached , [3] pero agregó persistencia de disco , replicación de datos , reconfiguración de clúster en vivo, reequilibrio y multitenencia con partición de datos .

Historial del producto

Membase fue desarrollado por varios líderes del proyecto memcached , quienes habían fundado una empresa, NorthScale, para desarrollar un almacén de claves y valores con la simplicidad, velocidad y escalabilidad de memcached, pero también con las capacidades de almacenamiento, persistencia y consulta de una base de datos. El código fuente original de membase fue aportado por NorthScale y los copatrocinadores del proyecto Zynga y Naver Corporation (entonces conocida como NHN) a un nuevo proyecto en membase.org en junio de 2010. [4]

El 8 de febrero de 2011, los fundadores del proyecto Membase y Membase, Inc. anunciaron una fusión con CouchOne (una empresa con muchos de los principales actores detrás de CouchDB ) con una fusión de proyectos asociada. La empresa fusionada se llamó Couchbase, Inc. En enero de 2012, Couchbase lanzó Couchbase Server 1.8. En septiembre de 2012, Orbitz dijo que había cambiado algunos de sus sistemas para usar Couchbase. [5] En diciembre de 2012, se lanzó Couchbase Server 2.0 (anunciado en julio de 2011) e incluyó un nuevo almacén de documentos JSON , indexación y consulta, MapReduce incremental y replicación en centros de datos . [6] [7]

Arquitectura

Cada nodo de Couchbase consta de un servicio de datos, un servicio de índice, un servicio de consultas y un componente de administrador de clúster. A partir de la versión 4.0, los tres servicios se pueden distribuir para que se ejecuten en nodos separados del clúster si es necesario. En el lenguaje del teorema CAP de Eric Brewer , Couchbase normalmente es un sistema de tipo CP, lo que significa que proporciona coherencia y tolerancia a particiones , o se puede configurar como un sistema AP con múltiples clústeres.

Administrador de clúster

El administrador de clúster supervisa la configuración y el comportamiento de todos los servidores de un clúster de Couchbase. Configura y supervisa el comportamiento entre nodos, como la gestión de flujos de replicación y operaciones de reequilibrio. También proporciona funciones de agregación de métricas y consenso para el clúster, y una interfaz de gestión de clúster RESTful . El administrador de clúster utiliza el lenguaje de programación Erlang y la Open Telecom Platform .

Replicación y conmutación por error

La replicación de datos dentro de los nodos de un clúster se puede controlar con varios parámetros. En diciembre de 2012, se agregó soporte para la replicación entre diferentes centros de datos . [6]

Administrador de datos

El administrador de datos almacena y recupera documentos en respuesta a las operaciones de datos de las aplicaciones. Escribe datos en el disco de forma asincrónica después de confirmar la recepción por parte del cliente. En la versión 1.7 y posteriores, las aplicaciones pueden garantizar opcionalmente que los datos se escriban en más de un servidor o en el disco antes de confirmar la recepción de una escritura por parte del cliente. Los parámetros definen las edades de los elementos que afectan el momento en que se conservan los datos y cómo se gestiona la memoria máxima y la migración de la memoria principal al disco. Admite conjuntos de trabajo superiores a una cuota de memoria por "nodo" o "depósito". Los sistemas externos pueden suscribirse a flujos de datos filtrados, lo que admite, por ejemplo, la indexación de búsqueda de texto completo , el análisis de datos o el archivado. [8]

Formato de datos

Un documento es la unidad más básica de manipulación de datos en Couchbase Server. Los documentos se almacenan en formato de documento JSON sin esquemas predefinidos. También se pueden almacenar documentos que no sean JSON en Couchbase Server (binarios, valores serializados, XML, etc.).

Caché gestionado por objetos

Couchbase Server incluye un caché administrado por objetos multiproceso integrado que implementa API compatibles con memcached como obtener, establecer, eliminar, agregar, anteponer, etc.

Motor de almacenamiento

Couchbase Server tiene un diseño de almacenamiento de anexión de cola que es inmune a la corrupción de datos, a los eliminadores de OOM o a la pérdida repentina de energía. Los datos se escriben en el archivo de datos de manera que solo se puedan anexar, lo que permite a Couchbase realizar escrituras principalmente secuenciales para la actualización y proporcionar patrones de acceso optimizados para la E/S del disco.

Actuación

En 2012, Altoros realizó una evaluación comparativa de rendimiento que comparó Couchbase Server con otras tecnologías. [9] Cisco Systems publicó una evaluación comparativa que midió la latencia y el rendimiento de Couchbase Server con una carga de trabajo mixta en 2012. [10]

Licencias y soporte

Couchbase Server es una versión empaquetada de la tecnología de software de código abierto de Couchbase y está disponible en una edición comunitaria sin correcciones de errores recientes con una licencia Apache 2.0 [11] y una edición para uso comercial. [12] Las compilaciones de Couchbase Server están disponibles para los sistemas operativos Ubuntu, Debian, Red Hat, SUSE, Oracle Linux, Microsoft Windows y macOS.

Couchbase ha admitido kits para desarrolladores de software para los lenguajes de programación .NET , PHP , Ruby , Python , C , Node.js , Java , Go y Scala .

SQL++

En Couchbase se utiliza un lenguaje de consulta denominado SQL++ (anteriormente denominado N1QL) para manipular los datos JSON, de la misma forma que SQL manipula los datos en RDBMS. Tiene instrucciones SELECT, INSERT, UPDATE, DELETE y MERGE para operar con datos JSON. Se anunció inicialmente en marzo de 2015 como "SQL para documentos". [13]

El modelo de datos SQL++ es una forma normal no primera (N1NF) con soporte para atributos anidados y normalización orientada al dominio . El modelo de datos SQL++ también es un superconjunto adecuado y una generalización del modelo relacional .

Ejemplo

{ "correo electrónico" : "[email protected]" , "amigos" : [ { "nombre" : "Pavan" }, { "nombre" : "Ravi" } ] }             
Me gusta la consulta
SELECT * FROM `bucket` WHERE email LIKE "%@example.org";
Consulta de matriz
SELECT * FROM `bucket` WHERE ANY x IN friends SATISFIES x.name = "Pavan" END;

Couchbase Móvil

Couchbase Mobile / Couchbase Lite es una base de datos móvil que proporciona replicación de datos. [14]

Couchbase Lite (originalmente TouchDB) ofrece bibliotecas nativas para bases de datos NoSQL offline con mecanismos de replicación de cliente a servidor o peer-to-peer integrados . [15] Sync Gateway administra el acceso seguro y la sincronización de datos entre Couchbase Lite y Couchbase Server. [16]

Usos

Couchbase comenzó como una evolución de Memcached , un caché de datos de alta velocidad, y puede usarse como un reemplazo directo de Memcached, brindando alta disponibilidad para aplicaciones memcached sin cambios de código. [17]

Couchbase se utiliza para respaldar aplicaciones que requieren un modelo de datos flexible, escalabilidad fácil y un alto rendimiento constante, como el seguimiento de la actividad del usuario en tiempo real o el suministro de un almacén de preferencias del usuario o aplicaciones en línea. [18]

Couchbase Mobile, que almacena datos localmente en dispositivos (normalmente dispositivos móviles), se utiliza para crear aplicaciones “sin conexión” que pueden funcionar cuando un dispositivo no está conectado a una red y sincronizarse con Couchbase Server una vez que se restablece una conexión de red. [19]

El Catalyst Lab de la Universidad Northwestern utiliza Couchbase Mobile para respaldar la aplicación Evo, un programa de investigación sobre estilos de vida saludables en el que se utilizan datos para ayudar a los participantes a mejorar la calidad de su dieta, la actividad física, el estrés o el sueño. [20]

Amadeus utiliza Couchbase con Apache Kafka para respaldar su estrategia “abierta, sencilla y ágil” de consumo e integración de datos sobre programas de fidelización para aerolíneas y otros socios de viajes. Se necesita una alta escalabilidad cuando los eventos de viajes disruptivos crean la necesidad de reconocer y compensar a los clientes de alto valor. [21]

A partir de 2012, desempeñó un papel en los sistemas de almacenamiento en caché de LinkedIn , incluido el almacenamiento en caché de back-end para productos de reclutamiento y empleos, contadores para mecanismos de defensa de seguridad y para aplicaciones internas. [22]

Alternativas

En cuanto al almacenamiento en caché, Couchbase compite con Memcached y Redis . En cuanto a las bases de datos de documentos, Couchbase compite con otros sistemas de bases de datos orientados a documentos . Se lo suele comparar con MongoDB , Amazon DynamoDB , Oracle RDBMS , DataStax , Google Bigtable , MariaDB , IBM Cloudant , Redis Enterprise , SingleStore y MarkLogic . [23] [24]

Bibliografía

Referencias

  1. ^ Damien Katz (8 de enero de 2013). «La irrazonable eficacia de C» . Consultado el 30 de septiembre de 2016 .
  2. ^ ab "Couchbase adopta la licencia BSL". El blog de Couchbase . 26 de marzo de 2021.
  3. ^ "NewProtocols - memcached - Klingon - Memcached - Google Project Hosting". 22 de agosto de 2011. Consultado el 4 de junio de 2013 .
  4. ^ Shashank Tiwari (31 de agosto de 2011). NoSQL profesional . John Wiley & Sons. págs. 15-16. ISBN 9781118167809.
  5. ^ "Equilibrio entre Oracle y el código abierto en Orbitz". GigaOM . 21 de septiembre de 2012 . Consultado el 19 de septiembre de 2016 .
  6. ^ por Andrew Brust (12 de diciembre de 2012). "Lanzamiento de Couchbase 2.0; implementa almacén de documentos JSON". ZDNet .
  7. ^ Derrick Harris (29 de julio de 2011). «Couchbase pasa a la versión 2.0 y promueve SQL para NoSQL». GigaOm . Archivado desde el original el 2 de octubre de 2016. Consultado el 19 de septiembre de 2016 .
  8. ^ Trond Norbye (15 de marzo de 2010). "¿Quieres saber qué están haciendo tus servidores memcached? Conéctate con ellos". Blog de Couchbase .
  9. ^ Frank Weigel (30 de octubre de 2012). «Benchmarking Couchbase». Couchbase . Consultado el 30 de septiembre de 2016 .
  10. ^ "Cisco y Solarflare logran una reducción drástica de la latencia en aplicaciones web interactivas con Couchbase, una base de datos NoSQL" (PDF) . Cisco Systems . 18 de junio de 2012. Archivado desde el original (PDF) el 13 de agosto de 2012 . Consultado el 7 de octubre de 2016 .
  11. ^ "Proyectos de código abierto de Couchbase". Sitio web de Couchbase . Consultado el 7 de octubre de 2016 .
  12. ^ "Ediciones del servidor Couchbase". Couchbase. Archivado desde el original el 27 de diciembre de 2012. Consultado el 7 de diciembre de 2012 .
  13. ^ Andy Slater (24 de marzo de 2015). "¡Ssssh! No se lo digas a nadie, pero Couchbase es un serio contendiente: Couchbase Live Europe 2015" . Consultado el 13 de febrero de 2018 .
  14. ^ "DB-Engines: Couchbase, incluido el móvil". DB-Engines . Archivado desde el original el 2013-07-29 . Consultado el 29 de junio de 2021 .
  15. ^ "Lite | Couchbase". www.couchbase.com . Consultado el 11 de mayo de 2020 .
  16. ^ "Sync Gateway Couchbase". DB-Engines . Archivado desde el original el 29 de julio de 2013. Consultado el 29 de junio de 2021 .
  17. ^ Jaquier, Yannick (27 de septiembre de 2016). "Servidor Couchbase como clúster Memcached (parte 2)". IT World . Consultado el 9 de febrero de 2022 .
  18. ^ "Introducción a Couchbase: base de datos de documentos NoSQL". Today Software Magazine . Consultado el 9 de febrero de 2022 .
  19. ^ "Couchbase Mobile". Comunidad DEV . 6 de febrero de 2022 . Consultado el 9 de febrero de 2022 .
  20. ^ "Cómo el Catalyst Lab de Northwestern amplía el programa de comportamiento saludable con Couchbase". VentureBeat . 2021-12-31 . Consultado el 2022-02-09 .
  21. ^ "Amadeus Loyalty gana el premio Couchbase Community Award en la categoría Cloud Computing". Amadeus IT Group . 20 de enero de 2022.
  22. ^ Michael Kehoe (6 de diciembre de 2017). "Couchbase Ecosystem at LinkedIn". engineering.linkedin.com . Consultado el 9 de febrero de 2022 .
  23. ^ Inc, Gartner. "Principales competidores y alternativas de Couchbase - Gartner 2022 - Sistemas de gestión de bases de datos en la nube". Gartner . Consultado el 9 de febrero de 2022 . {{cite web}}: |last=tiene nombre genérico ( ayuda )
  24. ^ "De MongoDB a Couchbase: una introducción para desarrolladores y expertos - Base de datos DZone". dzone.com . Consultado el 9 de febrero de 2022 .

Enlaces externos