Servidor base de sofá | |
---|---|
Tipo de | sistema de gestión de datos distribuidos en formato clave-valor y documentos |
Autor | Couchbase Inc. [d] |
Desarrollador | Couchbase Inc. |
Escrito en | C++ , Erlang , C [1] , Ir |
Sistema operativo | software multiplataforma |
ultima versión | 6.5.1 (abril de 2020) |
Licencia | Licencia Apache (edición Community), propietaria (edición Enterprise) |
Sitio web | www.couchbase.com |
Archivos multimedia en Wikimedia Commons |
Couchbase ( Couchbase Server ) es un sistema de gestión de bases de datos de clase NoSQL que proporciona herramientas similares a Apache CouchDB para crear bases de datos orientadas a documentos en combinación con almacenes de clave-valor similares a Membase . Gracias a la compatibilidad con el protocolo Memcached estándar , el sistema sigue siendo compatible con una gran cantidad de aplicaciones heredadas y puede actuar como un reemplazo transparente para una serie de otros sistemas NoSQL. El código fuente del sistema se distribuye bajo licencia Apache .
Creado por el equipo de desarrollo conjunto de CouchDB y Membase, creado como resultado de la fusión de CouchOne y Membase. El motor de almacenamiento se basa en tecnologías Membase, a las que se suman herramientas de indexación y consulta prestadas de CouchDB . Así, se logró tanto la compatibilidad con Apache CouchDB a nivel de lenguaje de consulta e índices, como la compatibilidad con Membase a nivel de protocolo de acceso a datos y API de control . Las partes críticas de CouchDB han sido reescritas en C++ , pero muchos subsistemas todavía están en Erlang . Se han preparado SDK especiales para desarrollar aplicaciones en Java , Ruby , .NET , C / C++ , PHP , Node.js , Go y Python .
Le permite organizar el almacenamiento de datos tanto en un solo nodo como en forma de un sistema distribuido que coloca los datos encima de un grupo de servidores. Hay herramientas integradas para garantizar una alta disponibilidad, autorreparación en caso de falla de los nodos que dan servicio al almacenamiento (los datos se pueden duplicar en diferentes nodos) y crear almacenamientos segmentados , cuyas copias se distribuyen en diferentes centros de datos . Se admiten los modos de replicación unidireccional (maestro-esclavo) y bidireccional (maestro-maestro) . Admite la creación de índices primarios y secundarios, así como índices en varias claves . Para una optimización adicional del rendimiento, se utilizan mecanismos de almacenamiento en caché integrados en RAM y generación automática de índices.
Además de la capacidad de almacenar datos en el formato "clave - valor", Couchbase le permite utilizar el concepto de almacenamiento orientado a documentos, en el que la unidad de almacenamiento de datos es un documento que tiene un identificador único, una versión y contiene un conjunto arbitrario de campos con nombre en el formato "clave - valor". El modelo de datos utilizado le permite definir documentos en formato JSON , eliminando la necesidad de que un desarrollador defina un esquema de almacenamiento. La consulta y la indexación de datos se pueden realizar de acuerdo con el paradigma MapReduce . Para organizar un conjunto de datos pseudoestructurados a partir de documentos arbitrarios, se propone el concepto de formación de vistas (view).
El lenguaje JavaScript se utiliza para formar la lógica de muestreo . Además, para acceder a los datos JSON, se implementa un lenguaje de consulta especializado similar a SQL N1QL (del inglés N1NF QL; lenguaje de consulta de forma normal que no es la primera ; se pronuncia similar a níquel ), que admite operadores (con agrupaciones y tipos de combinación limitados ), , , , (inserte o actualice si hay un registro con la clave dada, posteriormente se admitió un operador más general - ). SELECTINSERTUPDATEDELETEUPSERTMERGE