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.
Desarrollador (es) | Couchbase, Inc. |
---|---|
Versión inicial | Agosto de 2010 |
Lanzamiento estable | 6.6.2 / 19 de abril de 2021 |
Escrito en | C ++ , Erlang , C , [1] Ir |
Tipo | La base de datos multi-modelo , distribuida base de datos clave-valor , base de datos documental |
Licencia | Licencia Apache 2.0 , freemium |
Sitio web | sofabase |
Couchbase Server proporcionó compatibilidad de protocolo de cliente con memcached , [2] pero agregó persistencia de disco , replicación de datos , reconfiguración de clúster en vivo, reequilibrio y tenencia múltiple 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. [3]
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. [4] 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 . [5] [6]
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 a la 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 . [5]
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. [7]
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.
Actuación
Un punto de referencia de rendimiento realizado por Altoros en 2012, comparó Couchbase Server con otras tecnologías. [8] 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. [9]
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 [10] y una edición para uso comercial. [11] 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". [12]
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" : "[email protected]" , "amigos" : [ { "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 es un conjunto de productos para proporcionar bases de datos NoSQL y replicación de datos para dispositivos móviles e integrados. [13]
Couchbase Lite (originalmente TouchDB) proporciona bibliotecas nativas para bases de datos NoSQL sin conexión con mecanismos integrados de replicación de igual a igual o cliente-servidor . [14] Sync Gateway administra el acceso seguro y la sincronización de datos entre Couchbase Lite y Couchbase Server. [15]
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
- ^ Damien Katz (8 de enero de 2013). "La eficacia irrazonable de C" . Consultado el 30 de septiembre de 2016 .
- ^ "NewProtocols - memcached - Klingon - Memcached - Alojamiento de proyectos de Google" . 2011-08-22 . Consultado el 4 de junio de 2013 .
- ^ Shashank Tiwari (31 de agosto de 2011). NoSQL profesional . John Wiley e hijos. págs. 15-16. ISBN 9781118167809.
- ^ "Equilibrio de Oracle y código abierto en Orbitz" . GigaOM . 21 de septiembre de 2012 . Consultado el 19 de septiembre de 2016 .
- ^ a b Andrew Brust (12 de diciembre de 2012). "Couchbase 2.0 lanzado; implementa el almacenamiento de documentos JSON" . ZDNet .
- ^ Derrick Harris (29 de julio de 2011). "Couchbase va 2.0, empuja SQL para NoSQL" . GigaOm . Consultado el 19 de septiembre de 2016 .
- ^ Trond Norbye (15 de marzo de 2010). "¿Quieres saber qué están haciendo tus servidores Memcached? Tócalos" . Blog de Couchbase .
- ^ Frank Weigel (30 de octubre de 2012). "Benchmarking Couchbase" . Couchbase . Consultado el 30 de septiembre de 2016 .
- ^ "Cisco y Solarflare logran una reducción espectacular de la latencia para 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 .
- ^ "Proyectos de código abierto de Couchbase" . Sitio web de Couchbase . Consultado el 7 de octubre de 2016 .
- ^ "Ediciones Couchbase Server" . Couchbase.
- ^ Andy Slater (24 de marzo de 2015). "¡Ssssh! No se lo digas a nadie, pero Couchbase es un competidor serio: Couchbase Live Europe 2015" . Consultado el 13 de febrero de 2018 .
- ^ "Base de datos móvil Couchbase - Android y iOS SQLite alternativa" . www.couchbase.com . Consultado el 11 de mayo de 2020 .
- ^ "Lite | Couchbase" . www.couchbase.com . Consultado el 11 de mayo de 2020 .
- ^ "Sync Gateway | Couchbase" . www.couchbase.com . Consultado el 11 de mayo de 2020 .
enlaces externos
- Página web oficial