Servidor Couchbase - Couchbase Server

Servidor Couchbase
CouchbaseLogo.svg
Captura de pantalla del servidor Couchbase
Desarrollador (es) Couchbase, Inc.
Versión inicial Agosto de 2010 ( 2010-08 )
Lanzamiento estable
7.0.2 / 15 de octubre de 2021 ( 15/10/2021 )
Escrito en C ++ , Erlang , C , Go , Java
Escribe La base de datos multi-modelo , distribuida base de datos clave-valor , base de datos documental , la base de datos JSON
Licencia Licencia Apache 2.0 , freemium
Sitio web sofabase .com
Couchbase en AWS Summit

Couchbase servidor , conocido originalmente como Membase , es un código abierto , distribuido ( shared-nothing arquitectura ) multi-modelo NoSQL base de datos documental paquete de software optimizado para aplicaciones interactivas. Estas aplicaciones pueden servir a muchos usuarios simultáneos al crear, almacenar, recuperar, agregar, manipular y presentar datos. En apoyo de este tipo de necesidades de aplicaciones, Couchbase Server está diseñado para proporcionar acceso a documentos JSON o clave-valor fácil de escalar con baja latencia y alto rendimiento sostenido. 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 , pero agregó persistencia de disco , replicación de datos , reconfiguración de clúster en vivo, reequilibrio y multipropiedad con partición de datos .

Historia del producto

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

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 proyecto 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. En diciembre de 2012, Couchbase Server 2.0 (anunciado en julio de 2011) fue lanzado e incluyó un nuevo almacén de documentos JSON , indexación y consulta, MapReduce incremental y replicación en los centros de datos .

Arquitectura

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

Cluster Manager

El administrador del clúster supervisa la configuración y el comportamiento de todos los servidores en un clúster de Couchbase. Configura y supervisa el comportamiento entre nodos, como administrar flujos de replicación y reequilibrar operaciones. También proporciona funciones de consenso y agregación de métricas para el clúster y una interfaz de administración de clúster RESTful . El administrador del clúster utiliza el lenguaje de programación Erlang y 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 .

Administrador de datos

El administrador de datos almacena y recupera documentos en respuesta a las operaciones de datos de las aplicaciones. Escribe datos de forma asincrónica en el disco después de reconocer al cliente. En la versión 1.7 y posteriores, las aplicaciones pueden opcionalmente garantizar que los datos se escriban en más de un servidor o en un disco antes de reconocer una escritura en el cliente. Los parámetros definen las edades de los elementos que afectan cuándo se conservan los datos y cómo se maneja 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, admitiendo, por ejemplo, indexación de búsqueda de texto completo , análisis de datos o archivado.

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. Los documentos que no son JSON también se pueden almacenar en Couchbase Server (valores binarios, serializados, XML, etc.)

Caché administrado por objetos

Couchbase Server incluye una caché administrada por objetos de múltiples subprocesos incorporada que implementa API compatibles con memcached, como obtener, configurar, eliminar, agregar, anteponer, etc.

Motor de almacenamiento

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

Rendimiento

Un punto de referencia de rendimiento realizado por Altoros en 2012, comparó Couchbase Server con otras tecnologías. Cisco Systems publicó un punto de referencia que midió la latencia y el rendimiento de Couchbase Server con una carga de trabajo mixta en 2012.

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 de Apache 2.0 y una edición para uso comercial. 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 de desarrolladores de software para los lenguajes de programación .NET , PHP , Ruby , Python , C , Node.js , Java , Go y Scala .

N1QL

Un lenguaje de consulta llamado lenguaje de consulta de forma no normal, N1QL (pronunciado níquel), se usa para manipular los datos JSON en Couchbase, al igual que SQL manipula los datos en RDBMS. Tiene instrucciones SELECT, INSERT, UPDATE, DELETE, MERGE para operar con datos JSON. Fue anunciado en marzo de 2015 como "SQL para documentos".

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

Ejemplo

{
  "email": "testme@example.org",
  "friends": [
    {"name": "rick"},
    {"name": "cate"}
  ]
}
Como consulta
SELECT * FROM `bucket` WHERE email LIKE "%@example.org";
Consulta de matriz
SELECT * FROM `bucket` WHERE ANY x IN friends SATISFIES x.name = "cate" END;

Couchbase Mobile

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

Couchbase Lite (originalmente TouchDB) proporciona bibliotecas nativas para bases de datos NoSQL sin conexión primero con mecanismos de replicación de igual a igual o cliente-servidor integrados . Sync Gateway administra el acceso seguro y la sincronización de datos entre Couchbase Lite y Couchbase Server.

Bibliografía

  • Brown, MC (22 de junio de 2012). Introducción a Couchbase Server (1ª ed.). O'Reilly Media. pag. 88. ISBN 978-1449331061.
  • Ostrovsky, David; Haji, Mohammed; Rodenski, Yaniv (26 de noviembre de 2015), Pro Couchbase Server 2nd ed. (2ª ed.), Apress , pág. 349, ISBN 978-1484211861
  • Potsangbam, Henry (23 de noviembre de 2015), Learning Couchbase (1ª ed.), Packt , p. 202, ISBN 978-1785288593
  • Vohra, Deepak (3 de agosto de 2015), Pro Couchbase Development: A NoSQL Platform for the Enterprise (1ª ed.), Apress , p. 331, ISBN 978-1484214350
  • Sangudi, Gerald; et al. (20 de octubre de 2017), N1QL: A Practical Guide (2nd Edition) (2nd ed.), Autoeditado , p. 423
  • Vemulapalli, Sitaram; et todo. (10 de mayo de 2018), A Guide to N1QL features in Couchbase 5.5: Special Edition , Self-Published, p. 112
  • Chamberlin, Don ; (19 de octubre de 2018) SQL ++ para usuarios de SQL: un tutorial, Couchbase

Referencias

enlaces externos