Descripción general del nivel en la memoria
El nivel en memoria es un parámetro de configuración a nivel del clúster que usa nodos especializados. Antes de leer esta página, debes comprender los conceptos de instancias, clústeres y nodos. También te recomendamos que te familiarices con las limitaciones.
Bigtable en la memoria es un nivel de memoria integrado como parte del nodo de Bigtable que permite la organización de datos en niveles sin problemas y con costos optimizados en función de los patrones de acceso y las necesidades de rendimiento, todo a través de una sola API. Con el acceso directo a memoria remota (RDMA), el nivel en la memoria de Bigtable reduce significativamente los tiempos de respuesta, mitiga los hotspots y garantiza una alta capacidad de procesamiento para los datos sensibles a la latencia. Para obtener más información, consulta Información sobre el rendimiento.
Cuándo usar la opción en memoria
Te recomendamos que habilites el nivel en memoria para los siguientes casos de uso:
- Requisitos de latencia inferior a un milisegundo: Cargas de trabajo que requieren latencias de lectura inferiores a 1 ms, que suelen abordarse con una solución de caché autoadministrada frente a una base de datos.
- Lecturas de puntos de alta capacidad de procesamiento: Aplicaciones con requisitos de capacidad de procesamiento de tráfico de lectura altos en subconjuntos específicos de datos.
- Mitigación de hotspots: Cargas de trabajo de alta capacidad de procesamiento que pueden incluir picos de tráfico o hotspots en claves de fila particulares
- Optimización de costos: Situaciones en las que deseas reducir la cantidad de nodos de Bigtable descargando grandes volúmenes de lectura en un nivel en memoria más rentable.
Cómo funciona el nivel en la memoria
Los nodos de almacenamiento híbrido proporcionan compatibilidad en memoria. Estos nodos especializados extienden la desagregación del procesamiento y el almacenamiento de Bigtable para incluir un nivel de memoria con capacidad de procesamiento escalable verticalmente. In-memory puede tardar hasta 30 minutos en aprovisionar los nodos especializados. Durante este período, Bigtable sigue publicando tráfico desde el almacenamiento persistente.
Puedes habilitar el nivel en la memoria a nivel del clúster.
El nivel en la memoria funciona de la siguiente manera:
- Cómo obtener datos en el nivel de memoria: La memoria ofrece un comportamiento de almacenamiento en caché de lectura. Una fila ingresa al nivel de memoria con operaciones de lectura a través de un perfil de aplicación que configuras para la memoria. Una operación de escritura desde cualquier perfil de aplicación actualiza el nivel de memoria si los datos de la fila ya están en el nivel en la memoria.
- Políticas de expulsión y de invalidación: La caché en memoria usa la expulsión de elementos usados con menor frecuencia (LRU) a nivel de la fila y una política de invalidación de tiempo de actividad (TTL) de 15 minutos.
- Almacenamiento en caché negativo: la memoria recuerda si falta un recurso durante un período para evitar la sobrecarga del backend.
- Seguridad: La memoria admite la encriptación en reposo y en tránsito (TLS).
- Replicación: En una instancia de varios clústeres, los niveles de memoria de los diferentes clústeres no están sincronizados. Dado que cada nivel de memoria determina de forma independiente qué datos cargar en la memoria según el tráfico de lectura que recibe, es posible que los diferentes clústeres contengan diferentes claves de fila en sus niveles de memoria. Bigtable carga datos en la memoria desde el nivel SSD del clúster local. Una escritura en una fila la actualiza eventualmente en todos los niveles de memoria en los que está presente, según el modelo de replicación estándar de Bigtable de coherencia eventual.
- Ajuste de escala automático vertical: El nivel en memoria admite el ajuste de escala automático vertical a nivel del nodo, que funciona junto con el ajuste de escala automático de Bigtable.
El nivel en memoria está optimizado para el acceso de alto rendimiento a los datos actuales. Para mantener este rendimiento, solo las versiones con marca de tiempo más recientes de una fila residen en el nivel de memoria. Las solicitudes de versiones anteriores de los datos, también conocidas como celdas históricas, omiten automáticamente el nivel de memoria y se entregan desde el almacenamiento persistente.
Coherencia de los datos
Bigtable garantiza que los datos en memoria sean coherentes con los datos persistentes en el SSD o en el nivel de almacenamiento de acceso poco frecuente. Esta arquitectura híbrida permite que Bigtable proporcione un modelo de almacenamiento coherente en todos los niveles de almacenamiento, lo que te permite acceder a tus datos a través de la misma interfaz semántica, independientemente de si residen físicamente en la RAM o en el almacenamiento persistente. Con Bigtable en la memoria habilitado, conservas la coherencia en la lectura de tus escrituras a nivel del clúster.
Escalamiento vertical
Habilitar el nivel en memoria permite que cada nodo use el ajuste de escala vertical para modificar su capacidad de procesamiento en memoria. Cada nodo incluye 8 GB de RAM para el nivel en memoria y comienza con una capacidad base de 40,000 lecturas por segundo. Para administrar los aumentos repentinos en el tráfico de lectura de puntos, los nodos pueden escalar automáticamente en incrementos de 40,000 lecturas por segundo, hasta un máximo de 120,000 lecturas por segundo por nodo.
Esta función de ajuste de escala vertical se integra con el ajuste de escala automático de Bigtable. Si se alcanza la capacidad máxima en memoria en todos los nodos del clúster y el ajuste de escala automático está activo, Bigtable aprovisiona automáticamente nodos adicionales para aumentar aún más la capacidad de procesamiento en memoria.
El ajuste de escala vertical en un nodo solo se aplica a las lecturas en memoria por segundo y funciona independientemente de si el ajuste de escala automático a nivel del clúster está habilitado. El ajuste de escala vertical más allá de las 40,000 lecturas por segundo base se factura aplicando un multiplicador al costo por hora del nodo. Para obtener más información, consulta los precios y los límites.
Limitaciones
Se aplican las siguientes limitaciones al nivel en memoria:
- La opción en la memoria requiere almacenamiento SSD.
- La función In-memory solo admite operaciones de lectura de puntos a nivel de una sola fila.
- In-memory no entrega análisis de datos ni admite consultas de SQL.
- Los perfiles de aplicación en memoria solo admiten el enrutamiento de un solo clúster.
- Los límites en memoria reducen el tamaño de la fila a 1 MiB por clave de fila. Bigtable lee las filas que superan este límite del almacenamiento persistente.
- En memoria requiere la versión 2.77.0 o posterior de la biblioteca cliente de Bigtable para Java o la versión 26.80.0 o posterior de la BOM.
- Los clústeres de claves de encriptación administradas por el cliente (CMEK) no admiten la función en memoria.
¿Qué sigue?
- Obtén más información para habilitar el nivel en la memoria