Después de que un nodo de almacenamiento en columnas se reinicia, los índices de columnas en memoria (IMCI) entran al estado LOADING_NCI. Durante este proceso, el nodo reconstruye las asignaciones entre los IMCI y los datos orientados a filas. Estas asignaciones permiten actualizar los datos en tiempo real con alta concurrencia para cargas de trabajo de procesamiento transaccional y analítico híbrido (HTAP).
Durante este periodo, las escrituras continúan sin interrupciones, pero el comportamiento de lectura cambia según la configuración del parámetro. El estado LOADING_NCI puede durar desde unos segundos hasta varias horas, dependiendo del volumen de datos orientados a columnas y de las especificaciones del clúster.
Compruebe el estado de los IMCI
Consulte INFORMATION_SCHEMA.IMCI_INDEXES para ver el estado actual de todos los IMCI en un nodo de almacenamiento en columnas.
|
**Valor de |
Significado |
|
|
El nodo de almacenamiento en columnas se reinició y se está reconstruyendo la asignación del índice. El comportamiento de lectura depende del parámetro |
|
|
La reconstrucción finalizó. Las lecturas devuelven los datos más recientes en tiempo real. |
|
Otro |
No es posible leer los datos. |
Impacto en las escrituras
Las escrituras hacia un IMCI en estado LOADING_NCI no se bloquean; los datos se siguen actualizando en tiempo real. Sin embargo, como la asignación entre el IMCI y los datos orientados a filas aún no se establece por completo, dichas actualizaciones solo se almacenan en caché dentro del IMCI y no se pueden consultar de inmediato.
Impacto en la consistencia de lectura
El parámetro imci_enable_read_during_load_nci controla cómo los IMCI atienden las solicitudes de lectura durante el estado LOADING_NCI.
|
Estado del índice |
** |
Comportamiento de lectura |
|
|
|
Se atienden lecturas de instantánea. Si algún IMCI se encuentra en |
|
|
|
Se pueden leer los IMCI cuyos datos no cambiaron desde la última instantánea (equivalente a |
|
|
N/A |
Los datos más recientes están disponibles para lectura en tiempo real. |
|
Otros estados |
N/A |
No es posible leer los datos. |
Configure el parámetro
Cuando se establece en ON
Todos los IMCI ofrecen servicio de lectura de instantánea hasta que cada uno alcance el estado COMMITTED. Esto permite que las consultas complejas utilicen la aceleración de IMCI, sin importar si un IMCI individual está en LOADING_NCI o en COMMITTED.
Utilice esta configuración cuando la disponibilidad de las consultas durante la recuperación sea más importante que la actualización de los datos al momento de leerlos.
Si tan solo un IMCI se encuentra en LOADING_NCI , todos los IMCI recurren a lecturas de instantánea, no únicamente el que sigue cargando.
Cuando se establece en OFF
Los IMCI aplican una consistencia de lectura más estricta:
Los IMCI en estado
COMMITTEDatienden lecturas con los datos orientados a columnas más recientes.Los IMCI en estado
LOADING_NCIno pueden atender lecturas en tiempo real. Excepción: si los datos de un IMCI no se modificaron desde la última instantánea, se trata como equivalente aCOMMITTEDy se puede leer.
Esta opción es adecuada para cargas de trabajo donde las lecturas siempre deben reflejar los datos confirmados más recientes y usted acepta que algunos IMCI no estén disponibles temporalmente para acelerar consultas.
Alcance y valores predeterminados del parámetro
El alcance y el valor predeterminado de imci_enable_read_during_load_nci dependen de la versión del clúster de PolarDB for MySQL Enterprise Edition:
|
Rango de versiones |
Alcance |
Valor predeterminado |
¿Se requiere reiniciar para aplicar los cambios? |
|
De V8.0.1.1.29 a V8.0.1.1.36 |
Global |
|
Sí |
|
V8.0.1.1.37 o posterior |
Nivel de sesión |
|
No |