Servidor de Couchbase | ||
---|---|---|
Información general | ||
Tipo de programa | base de datos documental | |
Autor | Couchbase, Inc. | |
Desarrollador | Couchbase, Inc. | |
Lanzamiento inicial | 2010 de agosto | |
Licencia | Apache License | |
Estado actual | activo | |
Información técnica | ||
Programado en | C++, Erlang | |
Versiones | ||
Última versión estable | 6.5.1 ( 23.04.2020) | |
Enlaces | ||
Servidor de Couchbase, originalmente conocido como Membase, es un proyecto de código abierto, un paquete de software distribuido (del inglés arquitecturas shared-nothing) multi-modelo orientado a base de datos documental y que está optimizado para aplicaciones interactivas. Estas aplicaciones pueden servir a muchos usuarios al mismo tiempo mediante la creación, almacenamiento, recuperación, agregación, manipulación y presentación de datos. Para soportar este tipo de necesidades, Couchbase Server está diseñado para proporcionar acceso a documentos de valor-clave (del inglés key - value documents) o documentos JSON de fácil escala, con baja latencia y alto rendimiento sostenido. Está diseñado para ser agrupado a partir de una sola máquina a gran escala que abarca muchas máquinas (clúster).
El Servidor de Couchbase proporciona compatibilidad con el protocolo de cliente memcached,[1] agregando persistencia de disco, replicación de datos, reconfiguración del clúster en vivo, reequilibrio y multiusuario con partición de datos.
Historia del Producto
Membase fue desarrollado por varios dirigentes del proyecto memcached, que habían fundado la compañía, NorthScale, para desarrollar un almacén de datos claves-valor con la simplicidad, velocidad y escalabilidad de memcached, pero que también proporcionara el almacenamiento, la persistencia y las capacidades de consulta de una base de datos. El código fuente membase original fue aportado por NorthScale, y por los co-patrocinadores de Zynga y Naver (entonces conocido como NHN) a un nuevo proyecto sobre membase.org en junio de 2010.[2]
El 8 de febrero de 2011, los fundadores del proyecto Membase y Membase, Inc. anunciaron una fusión con CouchOne (una empresa con muchas de las principales figuras detrás de CouchDB) con una mezcla de proyecto asociado. La empresa fusionada fue llamada Couchbase, Inc. En enero de 2012, Couchbase lanzó Couchbase Server 1.8. En septiembre de 2012, Orbitz dijo que trasladó algunos de sus sistemas a utilizar Couchbase.[3] En diciembre de 2012, Couchbase Server 2.0 (anunciado en julio de 2011 y lanzado el 12 de diciembre), incluyó un nuevo almacén de documentos JSON, indexación y consulta, MapReduce incremental y replicación a través de los centros de datoss.[4][5]
Arquitectura
Cada nodo de Couchbase consta de un servicio de datos, servicio de índice, servicio de consulta y 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 términos del teorema CAP de Eric Brewer, Couchbase es normalmente un sistema de tipo CP lo que significa que proporciona consistencia de datos y tolerancia de partición, o puede ser configurado como un sistema de punto de acceso (AP) con varios clústeres.
Administrador de clústeres
El administrador del 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, así como la gestión de flujos de replicación y operaciones de reequilibrio. También proporciona funciones de agregación y de consenso métricas en el clúster y una interfaz de gestión de clústeres REST. El gestor de clúster utiliza el lenguaje de programación Erlang y Open Telecom Platform.
Replicación y conmutación por error
La replicación (informática) dentro de los nodos de un clúster se puede controlar con varios parámetros. En diciembre de 2012, se añadió la capacidad de replicación entre diferentes centros de datos.[4]
Gestor de datos
El gestor de datos almacena y reintenta documentos en respuesta a las operaciones de datos de las aplicaciones. De forma asíncrona escribe datos en el disco después de reconocer al cliente. En la versión 1.7 y posteriores, las aplicaciones pueden asegurar opcionalmente que los datos se escriban en más de un servidor o en disco antes de reconocer una escritura al cliente. Los parámetros definen las edades de los elementos que afectan cuando los datos se mantienen y cómo se gestiona la memoria máxima y la migración desde la memoria principal al disco. Soporta conjuntos de trabajo mayores que una cuota de memoria por "nodo" o "cubo". Los sistemas externos pueden suscribirse a los flujos de datos filtrados, apoyando, por ejemplo, indexación de búsqueda con texto completo, análisis de datos o archivo.[6]
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 JSON, sin esquemas predefinidos.
Memoria caché de objetos gestionados
Couchbase Server incluye una caché integrada multi-hilo de objetos, que implementa las API compatibles con memcached tales como get, set, delete, append, prepend, etc.
Motor de almacenamiento
Couchbase Server tiene un diseño de almacenamiento tail-append que es inmune a la corrupción de datos, agotamiento del espacio de memoria o caída eléctrica repentina. Los datos se escriben en el archivo de datos de forma append-only, lo que permite a Couchbase hacer principalmente escrituras secuenciales para actualizar y proporcionar patrones de acceso optimizados de E/S en el disco.
Rendimiento
Una referencia de rendimiento realizado por Altoros en 2012, compara Couchbase Server con otras tecnologías.[7] Cisco Systems publicó un punto de referencia que mide la latencia y el rendimiento de Couchbase Server con una carga de trabajo mixta en 2012.[8]
Licenciamiento y soporte
Couchbase Server es una versión empaquetada del software de código abierto de CouchBase y está disponible en una edición de la comunidad sin recientes correcciones de errores con licencia Apache 2.0.[9] y una edición para uso comercial.[10] Couchbase Server está disponible para los sistemas operativos Ubuntu, Debian, Red Hat, SUSE, Oracle Linux, Microsoft Windows y Mac OS X.
Couchbase ha apoyado herramientas de desarrollo de software de los lenguajes de programación .Net, PHP, Ruby, Python, C, Node.js, Java, y Go.
N1QL
El lenguaje de consulta N1QL (del inglés non-first normal form query language), se utiliza para la búsqueda de datos en el servidor. Se anunció en marzo de 2015, como "SQL para documentos".[11]
El modelo de datos N1QL es N1NF (del inglés non-first normal form) con soporte para atributos anidados y normalización orientada a dominio. El modelo de datos N1QL también es un superconjunto apropiado y una generalización del modelo relacional.
Bibliografía
- Brown, MC (22 de junio de 2012). Getting Started with Couchbase Server (1st edition). O'Reilly Media. p. 88. ISBN 978-1449331061.
- Ostrovsky, David; Haji, Mohammed; Rodenski, Yaniv (26 de noviembre de 2015), Pro Couchbase Server 2nd ed. (2nd edición), Apress, p. 349, ISBN 978-1484211861.
- Potsangbam, Henry (23 de noviembre de 2015), Learning Couchbase (1st edición), Packt, p. 202, ISBN 978-1785288593.
- Vohra, Deepak (3 de agosto de 2015), Pro Couchbase Development: A NoSQL Platform for the Enterprise (1st edición), Apress, p. 331, ISBN 978-1484214350.
Referencias
- ↑ «NewProtocols - memcached - Klingon - Memcached - Google Project Hosting». Code.google.com. 22 de agosto de 2011. Consultado el 4 de junio de 2013.
- ↑ Shashank Tiwari. Professional NoSQL. John Wiley & Sons. pp. 15-16. ISBN 9781118167809.
- ↑ «Balancing Oracle and open source at Orbitz». GigaOM. 21 de septiembre de 2012. Archivado desde el original el 27 de noviembre de 2012. Consultado el 19 de septiembre de 2016.
- ↑ a b Andrew Brust (12 de diciembre de 2012). «Couchbase 2.0 released; implements JSON document store». ZDNet.
- ↑ Derrick Harris (29 de julio de 2011). «Couchbase goes 2.0, pushes SQL for NoSQL». GigaOm. Archivado desde el original el 2 de octubre de 2016. Consultado el 19 de septiembre de 2016.
- ↑ Trond Norbye (15 de marzo de 2010). «Want to know what your memcached servers are doing? Tap them». Couchbase blog.
- ↑ Frank Weigel (30 de octubre de 2012). «Benchmarking Couchbase». Couchbase. Archivado desde el original el 11 de octubre de 2016. Consultado el 30 de septiembre de 2016.
- ↑ «Cisco and Solarflare Achieve Dramatic Latency Reduction for Interactive Web Applications with Couchbase, a NoSQL Database». Cisco Systems. 18 de junio de 2012. Archivado desde el original el 13 de agosto de 2012. Consultado el 7 de octubre de 2016.
- ↑ «Couchbase Open Source Projects». Couchbase web site. Consultado el 7 de octubre de 2016.
- ↑ «Couchbase Server Editions». Couchbase. Archivado desde el original el 27 de diciembre de 2012. Consultado el 1 de diciembre de 2016.
- ↑ Andrew Slater (24 de marzo de 2015). «Ssssh! don’t tell anyone but Couchbase is a serious contender: Couchbase Live Europe 2015».