Rapid Bucket

En esta página, se describe Rapid Bucket, una capacidad que te permite almacenar objetos en la clase de almacenamiento Rapid configurando una zona como la ubicación del bucket. Este enfoque te permite colocar tu almacenamiento de datos junto con tus recursos de procesamiento, lo que ofrece una latencia significativamente más baja y una capacidad de procesamiento más alta en comparación con otras clases de almacenamiento en Cloud Storage. Las cargas de trabajo en otras zonas y regiones también pueden acceder al bucket, con un rendimiento relativo a la distancia de la red.

Para crear un bucket zonal con Rapid Bucket, consulta Crea buckets zonales. Puedes ver la lista de ubicaciones admitidas en Zonas. Para leer y agregar datos a objetos en buckets zonales, consulta cómo usar objetos en buckets zonales.

Beneficios

Rapid Bucket se diseñó para eliminar los cuellos de botella de almacenamiento y es ideal para usar en tus aplicaciones con mayor uso de datos, como la IA/AA y el análisis de datos. Rapid Bucket admite una latencia inferior a un milisegundo, una capacidad de procesamiento agregada de hasta 15 TB/s y 20 millones de consultas por segundo (QPS). La latencia ultrabaja permite la recuperación instantánea de datos y permite que las aplicaciones de inferencia en tiempo real se ejecuten a gran escala. La gran capacidad de procesamiento y las QPS altas ayudan a mantener saturados por completo tus costosos clústeres de GPU, lo que reduce drásticamente los tiempos de entrenamiento de los modelos.

Terminología de Rapid Bucket

En la documentación de Cloud Storage, se usan los siguientes términos:

  • Rapid Bucket: Es el producto que permite crear buckets con una ubicación zonal y la clase de almacenamiento Rapid Storage.

  • Rapid Storage: Es la clase de almacenamiento que ofrece el mayor rendimiento de acceso a los datos y de operaciones de E/S en Cloud Storage. Cuando usas Rapid Bucket, creas un bucket que usa Rapid Storage. Para obtener más información sobre Rapid Storage, consulta Clases de almacenamiento.

  • Bucket zonal: Es un bucket ubicado en una zona. Los objetos en buckets zonales siempre se almacenan en Rapid Storage y se pueden agregar.

Capacidades de los buckets zonales

Además de proporcionar baja latencia y alta capacidad de procesamiento, los buckets zonales te permiten hacer lo siguiente:

  • Agregar datos a objetos en el bucket zonal sin volver a escribir el objeto completo

  • Abrir objetos y mantener un flujo a medida que realizas operaciones, lo que te permite acelerar las lecturas y escrituras posteriores

Casos de uso

Rapid Bucket es más adecuado para cargas de trabajo de IA/AA o de otro tipo que requieren una gran cantidad de datos. Algunos ejemplos de este tipo de cargas de trabajo son el registro de puntos de control, la evaluación y la entrega de modelos, así como los registros y las colas de mensajes. También se puede usar para transmitir datos o proporcionar almacenamiento para bases de datos.

Para aprovechar al máximo la baja latencia y la alta capacidad de procesamiento que proporciona Rapid Bucket, asegúrate de habilitar la conectividad directa de gRPC.

Acceso a objetos en buckets zonales

Para obtener los beneficios de rendimiento de un bucket zonal, asegúrate de abrir objetos para la transmisión y mantener una transmisión mientras realizas operaciones en los objetos. Cuando estableces y mantienes una transmisión, puedes realizar operaciones de lectura o escritura posteriores en el objeto con una latencia muy baja. Por ejemplo, cuando lees un archivo Parquet, puedes realizar la lectura inicial de los metadatos del archivo (el pie de página) y la lectura posterior de filas específicas en una sola solicitud. Este enfoque es más eficiente que usar solicitudes separadas para cada paso.

Una vez establecidos, los flujos de objetos se mantienen abiertos de forma predeterminada cuando accedes a objetos de bucket zonales con Cloud Storage FUSE o las bibliotecas cliente de Cloud Storage.

Puedes abrir varios flujos de lectura para un objeto desde cualquier cantidad de hosts. No hay limitaciones en la cantidad de transmisiones de lectura que puedes establecer en un objeto.

Cómo agregar objetos

Puedes anexar datos a objetos en buckets zonales. Cuando agregas datos a objetos, se aplica la siguiente semántica:

  • Los objetos anexables aparecen en el espacio de nombres del bucket en cuanto comienzas a escribir en ellos y se pueden leer mientras se siguen escribiendo.

  • No hay restricciones en la cantidad de veces que puedes agregar datos a un objeto ni en la cantidad de bytes que puedes agregar a la vez. Puedes agregar datos a un objeto hasta que alcance su tamaño máximo de 5 TiB.

  • El tamaño de un objeto aumentará en tiempo real a medida que se escriban o vacíen de forma permanente nuevos anexos. Cuando estableces una transmisión de lectura, debes anticipar una demora mínima en la actualización del tamaño del objeto.

  • Los objetos anexables solo pueden tener un escritor a la vez. Si se establece un nuevo flujo de escritura para un objeto que ya tiene un flujo de escritura existente, Cloud Storage devolverá un error al flujo original, y ya no se permitirá que el flujo original escriba. El nuevo escritor puede reanudar la anexión desde el último desplazamiento persistente sin otras anexiones intercaladas al objeto.

Finalización de objetos

Una vez que se finaliza un objeto, ya no puedes agregarle datos, pero sí puedes reemplazarlo por una versión nueva. Los metadatos de un objeto finalizado siguen siendo mutables. Por ejemplo, se pueden agregar etiquetas nuevas y cambiar el nombre del objeto.

Cómo activar buckets zonales

Puedes activar y acceder a los buckets zonales con Cloud Storage FUSE o el controlador de CSI de Cloud Storage FUSE. Asegúrate de usar la versión 3.7.2 o posterior de Cloud Storage FUSE. Para usar el controlador de CSI de Cloud Storage FUSE, asegúrate de que tu versión de Google Kubernetes Engine sea 1.35.0-gke.3047001 o posterior.

Precios

El uso de Rapid Bucket genera cargos por almacenamiento de datos, operaciones y redes. Para obtener más información, consulta Precios.

Limitaciones

  • Los buckets zonales deben tener habilitados el espacio de nombres jerárquico y el acceso uniforme a nivel del bucket.

  • Limitaciones de Google Cloud CLI:

    • Versión mínima compatible de Google Cloud CLI: La versión mínima de gcloud CLI que admite buckets zonales es la 553.0.0. Las versiones anteriores no son compatibles con los buckets zonales. Te recomendamos que uses la versión más reciente de gcloud CLI para obtener las funciones y correcciones de errores más recientes.

    • Visibilidad de las cargas incompletas: A diferencia de los buckets en otras clases de almacenamiento, en los que los objetos solo aparecen en el espacio de nombres después de que se completa una carga, los objetos cargados parcialmente en los buckets zonales son visibles de inmediato. Si un comando de carga de Google Cloud CLI falla o se interrumpe, es posible que veas objetos incompletos en tu bucket. Sin embargo, puedes reanudar estas cargas si vuelves a ejecutar el comando.

    • Sobreescritura de objetos: El comportamiento estándar de Google Cloud CLI se aplica a los buckets zonales: cuando sobrescribes un objeto, si existe un archivo o un objeto con el mismo nombre en el destino, los comandos cp, mv y rsync de Google Cloud CLI lo sobrescribirán de forma predeterminada. Para evitar que se sobrescriban los datos, usa la marca --no-clobber. Cuando se usa Google Cloud CLI, no se admite la anexión de datos a un objeto existente; se debe volver a subir toda la fuente.

    • Finalización de objetos: Los objetos que se suben a un bucket zonal con Google Cloud CLI pueden experimentar una breve demora antes de que se sincronicen por completo los metadatos del objeto. Dado que Cloud Storage usa un modelo de coherencia eventual, intentar descargar un objeto inmediatamente después de subirlo puede generar un error de falta de coincidencia de hash si los metadatos aún no se actualizaron.

      Si una descarga falla con un error de hash no coincidente poco después de una carga, vuelve a intentar el comando. El sistema garantiza que las descargas se realicen correctamente en su totalidad o fallen de forma explícita. No se producirán descargas parciales o dañadas de forma silenciosa.

Incompatibilidades

Buckets zonales no son compatibles con las siguientes herramientas, productos y servicios:

  • Herramientas

    • Son las APIs de bibliotecas cliente que escriben en un bucket estándar no zonal. Si planeas usar bibliotecas cliente para escribir en buckets zonales, deberás modificar tu código para usar las APIs compatibles. Para saber qué APIs son compatibles, consulta las muestras de código de tu biblioteca cliente en Usa objetos en buckets zonales.

    • Son escrituras que usan gRPC y no son BidiWriteObject. Los objetos anexables solo admiten la llamada a RPC BidiWriteObject en el modo anexable. No se admiten otros métodos de escritura de gRPC (como las escrituras de un solo intento o las reanudables) ni otras llamadas a RPC (como WriteObject).

    • Escribe con la API de JSON

    • Cargas multiparte de la API de XML

  • Protección de datos y recuperación ante desastres

    • Control de versiones de objetos

    • Borrar de forma no definitiva

    • Replicación entre buckets

  • Administración de datos

    • Rapid Cache

    • Autoclass

    • Bloqueo del bucket

    • Compón objetos

    • Conservaciones de objetos

    • La acción SetStorageClass de Administración del ciclo de vida de los objetos

    • Bloqueo de retención de objetos

    • Reubicación de buckets

    • Cargas reanudables

    • Reescribir objetos

    • Pagos del solicitante

  • Control de acceso

    • Listas de control de acceso (LCA) a nivel del objeto

    • Configuraciones de CORS

    • Claves de encriptación proporcionadas por el cliente (CSEK)

    • Claves HMAC

  • Metadatos

    • Los objetos en buckets zonales no tienen un hash MD5.

    • Las propiedades de metadatos asociadas con funciones y productos no admitidos no aparecen en la representación de recursos de un bucket zonal o un objeto anexable, o bien no se pueden escribir. Por ejemplo:

      • Las propiedades de metadatos softDeleteTime y hardDeleteTime no aparecen en la representación del recurso Objects porque la eliminación no definitiva no se admite para los objetos en buckets zonales.

      • Los metadatos storageClass de los objetos en buckets zonales siempre tienen un valor de RAPID y no se pueden volver a escribir porque los buckets zonales siempre deben usar la clase de almacenamiento Rapid Storage.

  • Servicios

    • BigQuery

Cuotas

Cada zona por proyecto tiene una cuota de capacidad de almacenamiento predeterminada. Cada zona por proyecto también tiene una cuota de salida predeterminada de Cloud Storage a los servicios deGoogle . Para ver estas cuotas, consulta Cuotas y límites.

Para obtener información sobre cómo supervisar el uso de la salida de datos y solicitar más ancho de banda, consulta Supervisión del uso del ancho de banda.

Prácticas recomendadas

Para optimizar el rendimiento cuando usas buckets zonales con Cloud Storage FUSE, mantén un identificador de archivo abierto para los objetos que se hayan activado y úsalo para varias operaciones. Esto genera un mejor rendimiento, ya que permite que Cloud Storage FUSE evite realizar viajes de ida y vuelta innecesarios a la red por cada lectura repetida.

¿Qué sigue?