Servidor Couchbase - Couchbase Server
Desarrollador (es) | Couchbase, Inc. |
---|---|
Versión inicial | Agosto de 2010 |
Lanzamiento estable | 7.0.2 / 15 de octubre de 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 |
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