Almacenamiento en caché en cualquier lugar

En esta página se describe Anywhere Cache, una función que proporciona una caché de lectura zonal respaldada por SSD para los segmentos de Cloud Storage. Anywhere Cache ofrece capacidad de caché bajo demanda ajustando automáticamente el tamaño de la caché y el ancho de banda disponible para satisfacer tus necesidades. Gracias a sus ventajas, Anywhere Cache es especialmente útil para reducir los costes de red asociados a las cargas de trabajo con muchas lecturas.

Consulta Crear y gestionar cachés para saber cómo crear y gestionar cachés en Anywhere Cache.

Información general

Anywhere Cache te permite crear cachés en la misma zona que tus cargas de trabajo. Cuando creas una caché en una zona, las solicitudes de lectura de datos que proceden de esa zona se procesan en la caché en lugar de en el segmento. Cada caché sirve a los clientes de la misma zona que la caché. Los datos solo se insertarán en la caché desde tu segmento cuando una VM que se encuentre en la misma zona que la caché lea esos datos. Los metadatos no se almacenan en caché y las solicitudes de metadatos de objetos las procesa el segmento en lugar de la caché.

Cuando creas una caché para un segmento, esta debe crearse en una zona de la ubicación del segmento. Por ejemplo, si tu segmento está ubicado en la región us-east1, puedes crear una caché en us-east1-b, pero no en us-central1-c. Si tu segmento está ubicado en la región doble ASIA, puedes crear una caché en cualquier zona que forme parte de las regiones asia-east1 y asia-southeast1. Para ver una lista de las zonas, consulta Regiones y zonas en la documentación de Compute Engine.

Puedes crear una caché por zona para cada contenedor. Por ejemplo, si tu cubo está ubicado en la multirregión US y tus VMs de Compute Engine se ejecutan en las zonas us-east1-b y us-central1-a, puedes crear una caché en us-east1-b y otra en us-central1-a.

Anywhere Cache es un servicio totalmente gestionado que siempre devuelve datos coherentes.

Ventajas

Cuando almacenas en caché tus datos con Anywhere Cache, obtienes las siguientes ventajas:

  • Accede a los datos más rápido: Anywhere Cache coloca tus datos en la misma zona que tus recursos de computación y está totalmente respaldado por SSD. Esto permite que tus cargas de trabajo alcancen un rendimiento de hasta 2,5 TB/s y reduce la latencia para que las lecturas sean más rápidas.

  • Reducir las tarifas de transferencia de datos multirregionales: a diferencia de los datos que se leen directamente de los segmentos multirregionales, los datos que se leen de una caché no incurren en tarifas de transferencia de datos. Se seguirán aplicando los cargos de red habituales por las lecturas de datos en la ingestión inicial de la caché.

  • Reducir las tarifas de obtención: las tarifas de obtención de los segmentos de Nearline Storage, Coldline Storage y Archive Storage no se aplican a las lecturas de datos de la caché.

  • Ahorra costes en las operaciones de lectura: las operaciones de lectura que se sirven desde la caché de cualquier ubicación tienen un precio inferior a las operaciones de clase B que se sirven desde un contenedor de almacenamiento estándar.

  • Ajustar automáticamente el tamaño de la caché: el almacenamiento en caché dinámico en SSD de Anywhere Cache se ajusta automáticamente en función del uso sin que tengas que especificar un tamaño de caché.

  • Usa las cachés de forma eficiente: puedes habilitar Anywhere Cache en los segmentos que ya tengas sin tener que modificar las aplicaciones ni las APIs. Los datos almacenados en Anywhere Cache tienen una coherencia sólida.

Para obtener información sobre los precios, consulta la página Precios de Anywhere Cache. Para obtener información sobre las cuotas, consulta Cuotas de caché en cualquier lugar.

¿Cuándo deberías usar Anywhere Cache?

Anywhere Cache se usa mejor para almacenar en caché datos que cambian con poca frecuencia y se leen con frecuencia, como los datos que se usan para entrenar modelos de aprendizaje automático o ejecutar cargas de trabajo de analíticas.

Supongamos que estás entrenando un modelo de IA en muchos nodos de Google Kubernetes Engine, todos ellos leyendo repetidamente datos almacenados en tus segmentos de Cloud Storage y ejecutándose en la misma zona. Cuando creas una caché en la zona en la que se ejecuta tu carga de trabajo, la caché proporciona ancho de banda adicional y te ayuda a reducir las tarifas de transferencia de datos asociadas a la lectura de datos en segmentos multirregionales, lo que te permite ejecutar cargas de trabajo más grandes y escaladas de forma más eficiente.

Precios

Para consultar los precios de Anywhere Cache, consulta la página de precios de Anywhere Cache.

Ubicaciones admitidas

Las cachés se pueden crear en zonas específicas siempre que haya capacidad disponible. Si no hay capacidad para crear una caché, el servicio Anywhere Cache sigue intentando crear una caché hasta que haya capacidad disponible o el usuario cancele el proceso de creación. Es posible que la capacidad siga sin estar disponible durante un periodo prolongado.

Por cada contenedor, puedes crear un máximo de una caché por zona. Por ejemplo, si un segmento está ubicado en la región us-east1, puedes crear una caché en us-east1-b y otra en us-east1-c. Si un segmento está ubicado en una multirregión que abarca us-central1 y us-east1, puedes crear una caché en us-central1-a y otra en us-east1-b.

Puedes usar Anywhere Cache en las siguientes zonas. Estas zonas se pueden usar en función del tipo de ubicación de tu contenedor.

Zona geográfica Ubicación
Nombre de zona Región Dos regiones Multirregional Dos regiones personalizadas
Asia
asia-east1-a
asia-east1-b
asia-east1-c
asia-northeast1-a
asia-northeast1-b
asia-northeast1-c
asia-south1-a
asia-south1-b
asia-south1-c
asia-southeast1-a
asia-southeast1-b
asia-southeast1-c
Europa
europe-north1-a
europe-north1-b
europe-north1-c
europe-west1-b
europe-west1-c
europe-west1-d
europe-west4-a
europe-west4-b
europe-west4-c
europe-west6-a
europe-west6-b
Estados Unidos
us-central1-a
us-central1-b
us-central1-c
us-central1-f
us-east1-a
us-east1-b
us-east1-c
us-east1-d
us-east4-a
us-east4-b
us-east4-c
us-east5-a
us-east5-b
us-east5-c
us-south1-a
us-south1-b
us-south1-c
us-west1-a
us-west1-b
us-west1-c
us-west3-a
us-west3-b
us-west3-c
us-west4-a
us-west4-b
us-west4-c

Recomendador de almacenamiento en caché en cualquier lugar

El recomendador de Anywhere Cache proporciona recomendaciones y estadísticas para crear cachés en pares de segmento y zona analizando el uso y el almacenamiento de tus datos. Para obtener información general e instrucciones sobre cómo usar el recomendador de Anywhere Cache, consulta el artículo Recomendador de Anywhere Cache.

Operaciones de caché

En esta sección se describen las operaciones que puedes realizar en las cachés de Anywhere Cache. Algunas operaciones son asíncronas y devuelven una operación de larga duración, mientras que otras son síncronas, en las que las operaciones se realizan inmediatamente y devuelven un recurso AnywhereCache.

Crear una caché

Cuando crea una caché, puede configurar las siguientes propiedades:

  • El tiempo de vida (TTL) es el tiempo máximo que un fragmento de datos permanecerá en la caché desde la última lectura. Por ejemplo, si el TTL es de 24 horas, un fragmento de datos que se lea por última vez el lunes a las 11:00 y no se vuelva a leer se eliminará de la caché el martes a las 11:00.

    Puedes definir un TTL de entre 1 hora y 7 días. Si no se especifica, el TTL es de 24 horas de forma predeterminada.

  • La política de admisión determina si la caché ingiere datos en el primer fallo o en el segundo. Si se ingieren en el segundo fallo, solo se podrán ingerir datos en la caché cuando se lean por segunda vez en el periodo de TTL que hayas especificado. La ingestión en el segundo fallo te permite reducir el coste de usar la caché en cualquier lugar, ya que solo almacena en caché los objetos que se leen más de una vez, pero también reduce la tasa de aciertos de caché.

    Si no se especifica, la política de admisión se establece de forma predeterminada en la ingestión en el primer error.

Cuando creas una caché, esta pasa al estado CREANDO mientras se crea y al estado EN EJECUCIÓN cuando empieza a ejecutarse activamente. La operación de creación de caché puede tardar hasta 48 horas. Después, se agota el tiempo de espera de la operación.

La API Create de AnywhereCaches es asíncrona. Una operación de creación provoca que se devuelva una operación de larga duración. La operación de larga duración proporciona el estado de la operación de creación y te permite cancelarla antes de que se complete.

Actualizar una caché

Puedes actualizar el TTL o la política de admisión de una caché en el estado EN EJECUCIÓN. Cuando se está actualizando una caché, el campo pending_update tiene el valor true. Aunque el campo pending_update se evalúa como true, la caché no se puede volver a actualizar.

No se puede actualizar una caché que tenga el estado CREATING, PAUSED o DISABLED. La API Update de AnywhereCaches es asíncrona y devuelve una operación de larga duración.

Cuando se termina de actualizar el TTL de una caché, el nuevo TTL se aplica inmediatamente a los datos recién ingeridos y solo se aplica a los datos existentes cuando se leen. Esto significa que los datos que ya están en la caché conservan el TTL antiguo hasta que se leen o se eliminan debido a que el TTL ha caducado.

Obtener una caché

Cuando obtienes una caché, Anywhere Cache devuelve el estado y la configuración de la instancia de caché. La API Get de AnywhereCache es síncrona y devuelve un recurso AnywhereCache.

Mostrar cachés

Puede devolver una lista de las cachés asociadas a un determinado segmento. La API List de AnywhereCaches es síncrona y admite la paginación.

Pausar una caché

Puedes pausar una caché para detener la ingestión de datos de una caché que esté en estado RUNNING. Cuando una caché está en estado PAUSED (PAUSADA), puedes seguir leyendo los datos que ya hay en ella, pero no puedes incorporar datos nuevos. Si se leen datos de la caché, se restablece el TTL de los datos en la caché.

Cuando reanudas una caché en estado PAUSED (PAUSADA), la caché pasa al estado RUNNING (EN EJECUCIÓN).

La API Pause de AnywhereCaches es síncrona y devuelve un recurso AnywhereCache.

Reanudar una caché

Puedes reanudar las cachés que estén en estado PAUSED o DISABLED, siempre que la caché inhabilitada esté dentro del periodo de gracia de 1 hora. Después del periodo de gracia de 1 hora, la operación de reanudación se realiza de la mejor forma posible, ya que la caché se puede eliminar en cualquier momento después del periodo de gracia. Una vez que se ha reanudado una caché, pasa al estado RUNNING.

La API Resume de AnywhereCaches es síncrona y devuelve un recurso AnywhereCache.

Inhabilitar una caché

Puede inhabilitar una caché para eliminarla permanentemente de la configuración de su contenedor. Cuando inhabilitas una caché, pasa al estado INHABILITADA. Durante este estado, puedes seguir leyendo los datos que ya hay en la caché, pero no puedes insertar datos nuevos en ella.

Después de inhabilitar una caché, hay un periodo de gracia de 1 hora durante el cual puedes cancelar la inhabilitación reanudando la caché. Una vez transcurrido este periodo de gracia de 1 hora, la caché se elimina. Cuando se elimina la caché, se borran todos los datos que contiene y se quita del segmento.

Durante la hora anterior a la eliminación de la caché, puedes revertir el estado DISABLED reanudando la caché, momento en el que la caché vuelve al estado RUNNING.

La API Disable de AnywhereCaches es síncrona y devuelve un recurso AnywhereCache.

Autoescalado del límite de tamaño de la caché y del ancho de banda

Anywhere Cache proporciona almacenamiento en caché temporal y ancho de banda que se escalan verticalmente según tus necesidades. Para obtener más información sobre los límites de tamaño y ancho de banda de Anywhere Cache, consulta las cuotas y los límites de Cloud Storage.

Controlar los costes

A continuación, te ofrecemos varios consejos que puedes utilizar para minimizar los costes de ejecutar una caché:

  • Selección de segmentos: solo debes crear cachés para los segmentos que contengan los datos que quieras almacenar en caché.

  • Selección de zonas: solo debes crear cachés en las zonas en las que tu carga de trabajo se beneficie del almacenamiento en caché.

  • Ingest on second read (Ingestión en la segunda lectura): puedes especificar que los datos solo se ingieran en la segunda lectura, en lugar de en la primera. De esta forma, la caché solo almacena los datos que se leen más de una vez.

  • Ajuste de TTL: debes especificar el TTL mínimo que necesitas para almacenar datos en la caché. El TTL se puede cambiar sin interrupciones.

  • Pausar la caché: puedes pausar una caché para detener la ingestión de datos y los costes de ingestión de caché asociados. La pausa de la caché tiene un efecto inmediato. Puedes pausar una caché hasta que se expulsen todos los datos una vez que finalice el TTL especificado. Cuando se expulsen todos los datos, dejarás de pagar tarifas de almacenamiento de datos.

  • Inhabilitar la caché: puedes inhabilitar una caché para eliminarla permanentemente del servicio y evitar que se acumulen todas las tarifas asociadas.

Limitaciones y restricciones

  • No puedes eliminar un segmento hasta que se hayan eliminado todas las cachés asociadas a él.

  • Cuando realices operaciones de creación, inhabilitación, pausa, reanudación o actualización de la caché, limita la frecuencia de las operaciones a una por segundo como máximo. Si se realizan más de una operación por segundo, pueden producirse errores.

  • Anywhere Cache no es un almacenamiento duradero y los datos se pueden eliminar de la caché en varias situaciones. Un ejemplo es cuando la caché cambia de tamaño automáticamente para asegurarse de que haya suficientes recursos disponibles para tus cargas de trabajo. En este caso, es posible que se eliminen algunos datos según un algoritmo de elementos usados menos recientemente (LRU) hasta que el servicio de caché Anywhere termine de aumentar el tamaño de la caché.

    En cualquier caso, tus datos se almacenarán de forma segura en tu contenedor de origen. Cuando los datos se eliminan de la caché por motivos distintos a la caducidad del TTL, el servicio de caché en cualquier lugar intentará volver a ingerir los datos en la caché de forma transparente y sin coste para ti. Si los datos no se pueden volver a ingerir de forma transparente o se han descartado porque ha caducado el TTL, el servicio de caché de Anywhere volverá a ingerir los datos en la primera o segunda lectura.

  • Anywhere Cache no se puede usar para servir datos en solicitudes de lectura de objetos emitidas por BigQuery. Cuando usas BigQuery para consultar datos de un segmento de Cloud Storage como una tabla externa, los datos se sirven desde el segmento y no se insertan en la caché, aunque el segmento tenga habilitada la caché.

  • Las recomendaciones y las estadísticas generadas por el recomendador de Anywhere Cache no se pueden leer con BigQuery.

Solucionar problemas de escasez temporal de recursos

En las siguientes secciones se describe cómo solucionar problemas cuando se produce una escasez temporal de recursos, es decir, cuando no hay suficiente capacidad de SSD o de servicio en una zona específica para crear una caché, aumentar el tamaño de una caché o aumentar el límite de ancho de banda de una caché.

No se ha podido crear una caché

Anywhere Cache puede no crear una caché en una zona específica debido a la falta de capacidad de SSD o de recursos de servicio de rendimiento, lo que provoca una escasez temporal de recursos. Durante este periodo, Anywhere Cache intenta crear la nueva caché durante un máximo de 48 horas. Si los recursos están disponibles en un plazo de 48 horas, Anywhere Cache completará la solicitud de creación de caché correctamente. Si los recursos no están disponibles en un plazo de 48 horas, la solicitud de creación de la caché fallará.

Cómo solucionar el problema: para evitar que se interrumpa el almacenamiento en caché, puedes cancelar manualmente la operación de creación de caché y crear una nueva caché en otra zona que tenga capacidad disponible. Para monitorizar o cancelar una operación de creación de caché, consulta Usar operaciones de larga duración.

No se ha podido aumentar el tamaño de la caché

Anywhere Cache no puede aumentar el tamaño de una caché cuando no hay disponible la cantidad necesaria de capacidad de SSD en la zona de la caché.

Aunque Anywhere Cache ofrece aumentos automáticos del tamaño de la caché bajo demanda, estos aumentos dependen de la disponibilidad de capacidad de SSD. Si la capacidad de SSD no está disponible cuando se hace la solicitud de aumento automático del tamaño de la caché, Anywhere Cache sigue enviando la solicitud hasta que finaliza la escasez temporal de recursos o ya no es necesario aumentar el tamaño de la caché.

Durante una escasez temporal de recursos, se ingieren datos nuevos y se eliminan los datos de la caché según el criterio de los menos usados recientemente. Las cachés que son lo suficientemente grandes como para almacenar la mayoría de los datos activos apenas influyen en las métricas de la caché. Las cachés con menos capacidad que la cantidad de datos activos pueden expulsar datos y volver a ingerir los mismos datos con más frecuencia que las cachés que no se ven afectadas por la escasez de recursos. Si el tamaño real de la caché es mucho menor que la capacidad necesaria, es posible que se produzcan los siguientes problemas relacionados con la falta de recursos:

  • Un límite de ancho de banda de caché más bajo, un rendimiento de caché más bajo, un mayor consumo de la cuota de ancho de banda de transferencia de datos y un posible impacto en otras métricas
  • La facturación puede verse afectada de las siguientes formas:
    • Aumento de los costes debido a la tarifa de ingestión de caché
    • Reducción de los costes de la tarifa de almacenamiento en caché
    • Reducción de los costes de la tarifa de transferencia de datos en caché
    • Reducción de los costes de las comisiones por la operación de transferencia de datos de caché
    • Aumento de los costes debido a la tarifa de transferencia de datos entre regiones
    • Aumento de los costes debido al uso de operaciones de clase B

Para obtener información sobre estas tarifas, consulta los precios de Anywhere Cache.

Cómo solucionar problemas: para obtener los mejores resultados durante una escasez temporal de recursos, te recomendamos que monitorices tus cachés y que pauses los que no sean necesarios o las cargas de trabajo en función de tus necesidades.

No se puede aumentar el límite de ancho de banda de una caché

La falta de límite de ancho de banda de la caché puede producirse temporalmente durante un aumento del tamaño de la caché cuando los recursos de servicio de rendimiento de una zona específica no son suficientes para escalar el límite de ancho de banda de la caché de las cachés existentes a 20 Gbps por TiB. Si no hay suficiente ancho de banda de la caché, Anywhere Cache no permite que el límite de ancho de banda de la caché se ajuste a 20 Gbps por TiB de datos, pero la caché sigue respondiendo a las solicitudes de lectura. Las solicitudes de aumento del límite de ancho de banda de la caché se evalúan caso por caso. Si hay una escasez de ancho de banda de caché disponible, es posible que observes un aumento en el consumo de ancho de banda de salida de datos de tu segmento.

Cómo solucionar problemas: para obtener los mejores resultados durante una escasez temporal de recursos, te recomendamos que monitorices tus cachés y que pauses los que no sean necesarios o las cargas de trabajo en función de tus necesidades.

Siguientes pasos