En Parte I n esta serie, hemos analizado la arquitectura detrás de los índices globales vs locales y cuándo usar un índice global (GSI) vs un índice local (MapReduce View) en Couchbase Server. En Parte II de la serie, también hemos hablado de los nuevos índices secundarios globales optimizados en memoria y de cómo MOI mejora el rendimiento del mantenimiento de índices con una estructura en memoria que está diseñada exclusivamente para altas tasas de mutación y altas tasas de escaneo. Con la Parte III, me gustaría contarte todo acerca de cómo los índices secundarios globales estándar mejoraron en 4.5: Hay una serie de mejoras en esta área, pero el avance más importante es un nuevo Modo de Escritura llamado "Escrituras Circulares".
Índices secundarios globales estándar y optimizados para memoria
Los índices optimizados para memoria se añaden en la versión 4.5 como opción de almacenamiento adicional para los GSI. Los índices secundarios globales estándar existen desde la versión 4.0. Los administradores pueden configurar GSI con el almacenamiento GSI estándar, que utiliza ForestDB por debajo, para los índices que no caben en memoria o pueden elegir el GSI optimizado en memoria para una indexación y consultas en memoria más rápidas. Aunque los índices optimizados en memoria, con gestión de índices en memoria, pueden proporcionar el mejor mantenimiento de índices y rendimiento de escaneo, no todo el mundo puede esforzarse por tener todos los índices en memoria. El GSI estándar puede volcarse al disco cuando se agota la memoria, por lo que una IO en disco eficiente es fundamental para una indexación y exploración eficientes.
Modos de escritura en índices secundarios globales estándar
Anteriormente, GSI estándar sólo ofrecía un modo de escritura de sólo apéndice. Las escrituras sólo apéndice escriben al final del archivo con cada mutación del índice. Sin embargo, las escrituras de sólo apéndice requieren compactaciones frecuentes. Con 4.5 Standard GSI viene con un modo de escritura adicional llamado "escrituras circulares".
Cuando se activan las "escrituras circulares", como llegan las mutaciones, en lugar de limitarse a añadir nuevas páginas al final del archivo, las operaciones de escritura buscan reutilizar el espacio huérfano del archivo. Si no hay suficiente espacio huérfano disponible en el archivo que pueda acomodar la escritura, la operación todavía puede hacer una escritura con append.

Con escrituras circulares, la compactación completa sigue funcionando de la misma manera. El proceso de compactación lee el archivo existente y escribe un nuevo archivo contiguo que ya no contiene los elementos huérfanos, y se escribe como un archivo contiguo. Sin embargo, el número de compactaciones necesarias se reduce drásticamente. En lugar de compactar cada pocas horas, se puede hacer una vez a la semana, lo que supone un ahorro asombroso en la capacidad de IO (IOPS y MB/seg).
Configuración del modo de escritura y del activador de compactación para GSI estándar
El GSI estándar viene con 2 modos de escritura. La configuración para el modo de escritura y la fragmentación de índices se encuentra en settings > auto-fragmentation en el web consola. (Nota: FLa configuración de ragmentación para el índice sólo se aplica cuando se selecciona la opción de almacenamiento "Índice secundario global estándar" para los índices. El modo de escritura y la estrategia de compactación no se aplican a los índices secundarios globales optimizados para memoria.)
- Utilice escrituras circulares con intervalo de tiempo para activar la compactación: Para los nuevos clusters creados con la versión 4.5, esta opción está seleccionada por defecto. Con las escrituras circulares, no son necesarias las compactaciones frecuentes. Debe especificar los días de la semana y la hora de inicio en los que se permite ejecutar la compactación y, opcionalmente, establecer una hora de finalización del periodo de tiempo en el que se aborta la compactación. La hora de finalización sólo es efectiva si la opción abortar compactación está marcada.
- Escrituras de sólo apéndice con nivel de fragmentación del índice para activar la compactación: Cuando se actualiza un clúster (con el servicio de indexación activado) desde la versión 4.0 o 4.1, esta opción se selecciona por defecto. La opción se mantiene principalmente por compatibilidad con versiones anteriores.
Puedes cambiar entre los modos de escritura en cualquier momento.

Las alertas y las estadísticas funcionan de la misma manera entre los índices estándar y los optimizados para memoria, puede consultar Parte II de la serie para obtener más información sobre estadísticas y alertas.
-cihan