Índice secundario global de Couchbase

Así se actualizó el servicio de índices para Couchbase 7.0

Las compilaciones y actualizaciones de índices acaban de recibir una gran mejora de rendimiento con la introducción de Scopes y Collections en Couchbase 7.

La versión 7.0 de Couchbase Server introduce la separación de los datos de Bucket en Ámbitos lógicos y colecciones sobre la base de datos de documentos JSON. Esta separación le permite organizar sus datos en diferentes esquemas y tablas, conceptos con los que la mayoría de los usuarios de RDBMS ya están familiarizados. Además, Los ámbitos y las colecciones permiten un control de acceso más preciso basado en funciones a los datos que ha almacenado en Couchbase.

Nota: La introducción de Ámbitos y Colecciones no significa que los datos de un determinado tipo debe separarse y almacenarse en su propia colección. En realidad es lo contrario: una Colección es ante todo una colección de documentos JSONy, como tal, conserva toda la flexibilidad de una base de datos sin esquema. O mejor dicho, usted crear el esquema que exige su aplicación.

Con estas optimizaciones de Index Service, puede que decida migrar del modelo Bucket al nuevo modelo Collections - o puede que ya tenga un modelo bien configurado Couchbase cluster. En este artículo, te mostraré algunas formas en las que se ha optimizado Index Service para ayudarte a decidir qué es lo mejor para tu despliegue. Empecemos.

Canalización de índices para el modelo de cubos

El siguiente diagrama muestra el proceso de creación de índices bajo el modelo Couchbase Bucket.

The index build pipeline for Couchbase Buckets

  1. El proceso del proyector en el Servicio de Datos es el único responsable de transmitir los datos del Cubo al Servicio de Indexación.
  2. El proyector utiliza un único flujo de Protocolo de Cambio de Base de Datos (DCP) para evaluar todas las mutaciones y determinar si un documento debe transmitirse al Servicio de Índices, basándose en los metadatos del índice.
  3. El proyector transmite sólo las columnas específicas que el Servicio de Índices mantiene para sus índices.

Por si no ha quedado claro en el diagrama anterior, el proyector debe tener en cuenta todos Mutaciones del cubo para todos de los índices del cluster.

La cadena de índices para el modelo de recogida

En el nuevo modelo de Colección de Couchbase 7.0, el streaming DCP entre el Servicio de Datos y el Servicio de Índices es a nivel de Colección. Aunque este cambio implica más flujos DCP, en realidad beneficia al procesamiento posterior cuando el proyector decide a qué Index Service enviará las mutaciones.

Hay una pequeña diferencia en cómo funciona esto para la construcción del índice inicial frente a las actualizaciones del índice. En primer lugar, veamos el proceso de creación del índice inicial con el nuevo modelo de colecciones.

Optimization performance for the initial index build in Couchbase Collections

  1. Los índices se crean por colección.
  2. Se crea un flujo DCP para cada colección durante la creación del índice inicial, lo que reduce la carga de trabajo del proyector.
  3. El proyector ya no necesita evaluar el índice DONDE para determinar si una mutación es apta para el índice.

Ahora echemos un vistazo al nuevo proceso de actualización de índices en Couchbase 7.0:

The new index update process in Couchbase Server 7.0

  1. Los datos del flujo DCP llevan ahora el prefijo identificador de colección para que el proyector sepa a qué índice debe enviar el cambio.
  2. El proyector ya no necesita evaluar el índice DONDE cláusula.
  3. La comprobación de la ingestión de índices se limita a los índices definidos en la colección del documento actualizado, en lugar de a todos los índices del cubo. Esta limitación supone un ahorro significativo en términos de CPU y E/S de disco.

Conclusión

Desde el punto de vista de la configuración, la introducción de Couchbase Collections no requiere que cambies nada en el Servicio de Índices. Sin embargo, sí es necesario especificar el nombre de la colección (en lugar de solo el nombre del bucket) al crear índices en una colección específica.

La versión 7.0 implementó estos cambios para ofrecerle la ventaja de trabajar con conjuntos de datos más pequeños en lugar de gestionar las mutaciones en todo un Bucket. Esta ventaja de los datos pequeños se extiende a todas las etapas del servicio de índices, desde el proyector hasta la capa de almacenamiento, pasando por el indexador.

Si desea obtener más información sobre la versión 7.0 de Couchbase Server, Novedades y/o las notas de la versión 7.0.

Pruebe el nuevo Servicio Index con su conjunto de datos:
Pruebe Couchbase 7.0 hoy mismo

 
 
 

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Binh Le

Binh Le es director de producto principal del servicio de consultas de Couchbase. Antes de Couchbase, trabajó en Oracle y dirigió el equipo de gestión de productos para Sales Clould Analytics y CRM OnDemand. Binh es licenciado en Informática por la Universidad de Brighton, Reino Unido.

1 Comentarios

  1. Muy buena entrada en el blog, ¡me encanta!

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.