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.
El nivel en memoria de Bigtable es un nivel de memoria integrado como parte del nodo de Bigtable que permite una estratificación de datos optimizada en cuanto a costos y sin interrupciones según los patrones de acceso y las necesidades de rendimiento, todo a través de una sola API. Con el acceso directo remoto a la memoria (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 el nivel 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 filas 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 con el nivel en memoria. Estos nodos especializados extienden la desagregación de procesamiento y almacenamiento de Bigtable para incluir un nivel de memoria con capacidad de procesamiento escalable verticalmente. Bigtable puede tardar hasta 30 minutos en aprovisionar los nodos especializados de nivel en memoria. 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: El nivel de memoria ofrece un comportamiento de almacenamiento en caché de lectura directa. Una fila ingresa al nivel en la memoria con operaciones de lectura a través de un perfil de aplicación que configuras para el nivel en 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: El nivel en memoria usa la expulsión de 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: el nivel en memoria recuerda si falta un recurso durante un período para evitar la sobrecarga del backend.
- Seguridad: El nivel en 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 de 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 la 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 atienden desde el almacenamiento persistente.
Coherencia de los datos
Bigtable garantiza que los datos del nivel en la memoria sean coherentes con los datos persistentes del nivel de almacenamiento SSD o 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 el nivel en la memoria de Bigtable 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 escalamiento vertical para modificar su capacidad de procesamiento del nivel 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 escalarse 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 escalamiento vertical se integra con el ajuste de escala automático de Bigtable. Si se alcanza la capacidad máxima del nivel en memoria en todos los nodos del clúster y el escalado automático está activo, Bigtable aprovisiona automáticamente nodos adicionales para aumentar aún más la capacidad de procesamiento del nivel en memoria.
El ajuste de escala vertical en un nodo solo se aplica a las lecturas por segundo del nivel en la memoria y funciona independientemente de si el ajuste de escala automático a nivel del clúster está habilitado. El escalamiento 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:
- El nivel en la memoria requiere almacenamiento SSD.
- El nivel en memoria solo admite operaciones de lectura de puntos a nivel de una sola fila.
- El nivel en memoria no entrega análisis de datos ni admite consultas en SQL.
- Los perfiles de aplicación de nivel en la memoria solo admiten el enrutamiento de un solo clúster.
- El nivel en memoria limita 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.
- El nivel 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. No se admiten otras bibliotecas cliente.
- Los clústeres de claves de encriptación administradas por el cliente (CMEK) no admiten el nivel en memoria.
¿Qué sigue?
- Obtén más información para habilitar el nivel en la memoria