Disponible la base de datos orientada a documentos MongoDB 6.0

Después de un año de desarrollo, se presenta la versión de la base de datos orientada a documentos MongoDB 6.0, que ocupa un nicho entre los sistemas rápidos y escalables que operan con datos en formato clave/valor y las bases de datos relacionales, funcionales y cómodas para la formación de consultas. El código de MongoDB está escrito en C++ y se distribuye bajo la licencia SSPL, que se basa en la licencia AGPLv3, pero no es de código abierto, ya que contiene un requisito discriminatorio de entrega bajo la licencia SSPL no solo del código de la aplicación en sí, sino también de los textos fuente de todos los componentes involucrados en la provisión del servicio en la nube.

MongoDB admite el almacenamiento de documentos en un formato similar a JSON, tiene un lenguaje bastante flexible para la formulación de consultas, puede crear índices para varios atributos almacenados, asegura eficazmente el almacenamiento de grandes objetos binarios, admite el registro de operaciones para la modificación y adición de datos en la base de datos, puede operar de acuerdo con la paradigma Map/Reduce, admite la replicación y la construcción de configuraciones de alta disponibilidad.

MongoDB cuenta con herramientas integradas para garantizar la segmentación (distribución de un conjunto de datos entre servidores según una clave específica), que combinadas con la replicación permiten construir un clúster de almacenamiento escalable horizontalmente, en el que no hay un único punto de fallo (la falla de cualquier nodo no afecta el funcionamiento de la base de datos), se admite la recuperación automática después de un fallo y la transferencia de carga desde un nodo defectuoso. La ampliación del clúster o la conversión de uno servidores a clúster se realiza sin detener el funcionamiento de la base de datos simplemente agregando nuevas máquinas.

Características principales de la nueva versión:

  • Se ha implementado la posibilidad de ejecutar consultas que abarcan datos almacenados en forma cifrada (Cifrado Consultable). Los datos se descifran del lado del usuario y permanecen cifrados durante el procesamiento de la consulta (la consulta se ejecuta sobre datos cifrados, sin su descifrado previo). En la actualidad, en las consultas solo se permiten expresiones de comparación, pero se planea agregar soporte para verificación de rangos, prefijos, sufijos, subcadenas y otras operaciones en el futuro.
  • Se han ampliado las capacidades relacionadas con el almacenamiento de datos en forma de series temporales (colecciones de series temporales), optimizadas para almacenar instantáneas de valores de parámetros registrados a intervalos específicos de tiempo (hora y conjunto de valores correspondientes a ese tiempo), por ejemplo, la necesidad de almacenar dichos datos surge en sistemas de monitoreo, plataformas financieras y sistemas de encuestas de estados de sensores. En esta nueva versión se proporciona la posibilidad de utilizar índices secundarios y compuestos con colecciones de datos en forma de series temporales. Se ha agregado soporte para adjuntar datos adicionales, como información geográfica para tener en cuenta la distancia y la ubicación. Se ha mejorado el rendimiento de lectura, ejecución de consultas y ordenación.
  • Se han agregado nuevas herramientas para rastrear cambios ("streams de cambios", API Change Streams), que permiten organizar el envío de notificaciones a las aplicaciones sobre cambios en los datos de la base de datos. La información sobre los cambios se recibe en tiempo real y permite crear aplicaciones utilizando métodos de programación reactiva y orientada a eventos. Los eventos se procesan mediante el método watch, y se pueden filtrar y agregar los eventos necesarios utilizando los operadores $match, $project y $redact. En la nueva versión se ofrece la posibilidad de obtener el estado anterior y posterior del documento (por ejemplo, cuando un documento ha sido eliminado o modificado). Además de las operaciones que utilizan el lenguaje DML (data manipulation language), se proporciona soporte para operaciones DDL (data definition language), como la creación y eliminación de índices y colecciones. Se han añadido herramientas para filtrar notificaciones asociadas.
  • En los operadores $lookup y $graphlookup se ha implementado soporte completo para almacenes segmentados (sharded). Se ha optimizado el rendimiento de la operación $lookup, por ejemplo, cuando existe un índice por clave externa, la coincidencia de un pequeño número de documentos ahora se realiza de 5 a 10 veces más rápido, y de un número grande, el doble de rápido. Para las coincidencias sin uso de índices, el aumento de rendimiento puede alcanzar hasta 100 veces.
  • Se ha habilitado la posibilidad de ejecutar consultas analíticas complejas sobre instantáneas (snapshot) coherentes del estado de los datos de trabajo. Este tipo de consultas analíticas pueden abarcar múltiples segmentos en grandes configuraciones distribuidas de MongoDB.
  • Se han añadido nuevos operadores $maxN, $minN y $lastN para determinar valores en un conjunto de datos, así como el operador $sortArray para ordenar elementos de un array.
  • Se ha incrementado significativamente la eficiencia del segmentado. El tamaño de bloque predeterminado para las colecciones segmentadas se ha aumentado a 128 MB. Se ha añadido el comando configureCollectionBalancing para la desfragmentación de colecciones segmentadas.
  • En las herramientas de cifrado de datos del cliente a nivel de campo (CSFLE, client-side field-level encryption) se ha añadido soporte para proveedores de claves compatibles con KMIP.
  • Se ha añadido la posibilidad de comprimir y cifrar el registro de auditoría, que refleja la actividad de los usuarios de la base de datos.
  • Se ha implementado un modo experimental de sincronización de datos entre clústeres de MongoDB (Cluster-to-Cluster Sync).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster