Rapid Bucket

Questa pagina descrive Rapid Bucket, una funzionalità che consente di archiviare gli oggetti nella classe di archiviazione Rapid Storage impostando una zona come località di un bucket. Questo approccio consente di collocare lo spazio di archiviazione dei dati insieme alle risorse di calcolo, il che offre una latenza notevolmente inferiore e un throughput più elevato rispetto ad altre classi di archiviazione in Cloud Storage. Anche i carichi di lavoro in altre zone e regioni possono accedere al bucket, con prestazioni relative alla distanza di rete.

Per creare un bucket a livello di zona utilizzando Rapid Bucket, consulta Crea bucket a livello di zona. Puoi visualizzare l'elenco delle località supportate in Zone. Per leggere e aggiungere dati agli oggetti nei bucket a livello di zona, consulta Utilizza gli oggetti nei bucket a livello di zona.

Vantaggi

Rapid Bucket è progettato per rimuovere i colli di bottiglia dello spazio di archiviazione ed è ideale per le applicazioni con un utilizzo intensivo dei dati, come AI/ML e analisi dei dati. Rapid Bucket supporta una latenza inferiore al millisecondo, un throughput aggregato fino a 15 TB/s e 20 milioni di query al secondo (QPS). La latenza molto bassa consente il recupero istantaneo dei dati e consente alle applicazioni di inferenza in tempo reale di essere eseguite su larga scala. L'elevato throughput e l'alto QPS contribuiscono a mantenere i costosi cluster GPU completamente saturi, riducendo drasticamente i tempi di addestramento dei modelli.

Terminologia di Rapid Bucket

La documentazione di Cloud Storage utilizza i seguenti termini:

  • Rapid Bucket: il prodotto che consente di creare bucket con una località a livello di zona e la classe di archiviazione Rapid Storage.

  • Rapid Storage: la classe di archiviazione che offre le prestazioni di accesso ai dati e di operazioni di I/O più elevate in Cloud Storage. Quando utilizzi Rapid Bucket, crei un bucket che utilizza Rapid Storage. Per ulteriori informazioni su Rapid Storage, consulta Classi di archiviazione.

  • Bucket a livello di zona: un bucket che si trova in una zona. Gli oggetti nei bucket a livello di zona vengono sempre archiviati in Rapid Storage e sono appendable.

Funzionalità dei bucket a livello di zona

Oltre a fornire bassa latenza e throughput elevato, i bucket a livello di zona consentono di:

  • Aggiungere dati agli oggetti nel bucket a livello di zona senza eseguire una riscrittura completa dell'oggetto

  • Aprire gli oggetti e mantenere uno stream durante l'esecuzione delle operazioni, consentendo di accelerare le successive operazioni di lettura e scrittura

Casi d'uso

Rapid Bucket è più adatto per i carichi di lavoro AI/ML o altri carichi di lavoro con un utilizzo intensivo dei dati. Alcuni esempi di questi carichi di lavoro sono il checkpointing, la valutazione e la pubblicazione dei modelli, nonché le code di logging e di messaggi. Può essere utilizzato anche per lo streaming di dati o per fornire spazio di archiviazione per i database.

Per sfruttare appieno la bassa latenza e il throughput elevato forniti da Rapid Bucket, assicurati di abilitare la connettività diretta gRPC.

Accesso agli oggetti nei bucket a livello di zona

Per ottenere i vantaggi in termini di prestazioni di un bucket a livello di zona, assicurati di aprire gli oggetti per lo streaming e di mantenere uno stream durante l'esecuzione delle operazioni sugli oggetti. Quando crei e mantieni uno stream, puoi eseguire successive operazioni di lettura o scrittura sull'oggetto con una latenza molto bassa. Ad esempio, quando leggi un file Parquet, puoi eseguire sia la lettura iniziale dei metadati del file (il piè di pagina) sia la successiva lettura di righe specifiche all'interno di una singola richiesta. Questo approccio è più efficiente rispetto all'utilizzo di richieste separate per ogni passaggio.

Una volta creati, gli stream di oggetti vengono mantenuti aperti per impostazione predefinita quando accedi agli oggetti dei bucket a livello di zona utilizzando Cloud Storage FUSE o le librerie client di Cloud Storage.

Puoi aprire più stream di lettura a un oggetto da un numero qualsiasi di host. Non esiste alcuna limitazione al numero di stream di lettura che puoi creare per un oggetto.

Aggiunta di oggetti

Puoi aggiungere dati agli oggetti nei bucket a livello di zona. Quando aggiungi dati agli oggetti, si applicano le seguenti semantiche:

  • Gli oggetti appendable vengono visualizzati nello spazio dei nomi del bucket non appena inizi a scriverli e possono essere letti mentre sono ancora in fase di scrittura.

  • Non esistono restrizioni sul numero di aggiunte che puoi apportare a un oggetto o sul numero di byte che puoi aggiungere alla volta. Puoi aggiungere dati fino a quando un oggetto raggiunge la dimensione massima di 5 TiB.

  • La dimensione di un oggetto aumenterà in tempo reale man mano che le nuove aggiunte vengono scritte o scaricate in modo permanente. Quando crei uno stream di lettura, devi prevedere un ritardo minimo nell'aggiornamento della dimensione dell'oggetto.

  • Gli oggetti appendable possono avere un solo writer alla volta. Se viene creato un nuovo stream di scrittura per un oggetto che ne ha già uno esistente, Cloud Storage restituisce un errore allo stream originale e quest'ultimo non potrà più scrivere. Il nuovo writer può riprendere l'aggiunta dall'ultimo offset persistente senza altre aggiunte interleaved all'oggetto.

Finalizzazione degli oggetti

Dopo che un oggetto è stato finalizzato, non puoi più aggiungere dati, ma puoi comunque sovrascriverlo con una nuova versione. I metadati di un oggetto finalizzato sono ancora modificabili; ad esempio, è possibile aggiungere nuovi tag e rinominare l'oggetto.

Montaggio di bucket a livello di zona

Puoi montare e accedere ai bucket a livello di zona utilizzando Cloud Storage FUSE o il driver CSI di Cloud Storage FUSE. Assicurati di utilizzare Cloud Storage FUSE versione 3.7.2 o successive. Per utilizzare il driver CSI di Cloud Storage FUSE, assicurati che la versione di Google Kubernetes Engine sia 1.35.0-gke.3047001 o successive.

Prezzi

L'utilizzo di Rapid Bucket comporta costi per l'archiviazione dei dati, le operazioni e la rete. Per ulteriori informazioni, vedi Prezzi.

Limitazioni

  • I bucket a livello di zona devono avere abilitati lo spazio dei nomi gerarchico e l'accesso uniforme a livello di bucket.

  • Limitazioni di Google Cloud CLI:

    • Versione minima supportata di Google Cloud CLI: la versione minima di gcloud CLI che supporta i bucket a livello di zona è 553.0.0. Le versioni precedenti non sono compatibili con i bucket a livello di zona. Ti consigliamo di utilizzare la versione più recente di gcloud CLI per usufruire delle funzionalità e delle correzioni di bug più recenti.

    • Visibilità dei caricamenti incompleti: a differenza dei bucket in altre classi di archiviazione, in cui gli oggetti vengono visualizzati nello spazio dei nomi solo al termine di un caricamento, gli oggetti caricati parzialmente nei bucket a livello di zona sono immediatamente visibili. Se un comando di caricamento di Google Cloud CLI non riesce o viene interrotto, potresti visualizzare oggetti incompleti nel bucket. Puoi comunque riprendere questi caricamenti eseguendo di nuovo il comando.

    • Sovrascrittura degli oggetti: il comportamento standard di Google Cloud CLI si applica ai bucket a livello di zona: quando sovrascrivi un oggetto, se nella destinazione esiste un file o un oggetto con lo stesso nome, i comandi Google Cloud CLI cp, mv, e rsync lo sovrascrivono per impostazione predefinita. Per evitare sovrascritture, utilizza il flag --no-clobber. Quando utilizzi Google Cloud CLI, l'aggiunta di dati a un oggetto esistente non è supportata; l'intera origine deve essere ricaricata.

    • Finalizzazione degli oggetti: gli oggetti caricati in un bucket a livello di zona utilizzando Google Cloud CLI potrebbero occasionalmente subire un breve ritardo prima che i metadati dell'oggetto vengano sincronizzati completamente. Poiché Cloud Storage utilizza un modello di coerenza finale, il tentativo di scaricare un oggetto immediatamente dopo il caricamento può generare un errore di mancata corrispondenza dell'hash se i metadati non sono ancora stati aggiornati.

      Se un download non riesce con un errore di mancata corrispondenza dell'hash poco dopo un caricamento, riprova a eseguire il comando. Il sistema garantisce che i download vengano completati correttamente o non riescano in modo esplicito; i download parziali o danneggiati non si verificano in modo silenzioso.

Incompatibilità

I bucket a livello di zona non sono compatibili con i seguenti strumenti, operazioni, prodotti e metadati:

  • Strumenti

    • Scritture che utilizzano l'API XML o l'API JSON

    • Caricamenti in più parti dell'API XML

  • Scritture per oggetti non appendable utilizzando gRPC

  • Protezione dei dati e ripristino di emergenza

    • Controllo delle versioni degli oggetti

    • Eliminazione temporanea

    • Replica tra bucket

  • Gestione dati

    • Rapid Cache

    • Autoclass

    • Blocco bucket

    • Composizione di oggetti

    • Blocchi degli oggetti

    • L'azione SetStorageClass di Gestione del ciclo di vita degli oggetti

    • Blocco della conservazione degli oggetti

    • Trasferimento dei bucket

    • Caricamenti ripristinabili

    • Riscrittura degli oggetti

    • Pagamenti a carico del richiedente

  • Controllo degli accessi

    • Elenchi di controllo dell'accesso (ACL) a livello di oggetto

    • Configurazioni CORS

    • Chiave di crittografia fornita dal cliente (CSEK)

    • Chiavi HMAC

  • Metadati

    • Gli oggetti nei bucket a livello di zona non hanno un hash MD5.

    • Le proprietà dei metadati associate a funzionalità e prodotti non supportati non vengono visualizzate nella rappresentazione delle risorse di un bucket a livello di zona o di un oggetto appendable oppure non sono scrivibili. Ad esempio:

      • Le proprietà dei metadati softDeleteTime e hardDeleteTime non vengono visualizzate nella rappresentazione delle risorse della risorsa Objects perché l'eliminazione temporanea non è supportata per gli oggetti nei bucket a livello di zona.

      • I metadati storageClass degli oggetti nei bucket a livello di zona hanno sempre il valore RAPID e non possono essere riscritti perché i bucket a livello di zona devono sempre utilizzare la classe di archiviazione Rapid Storage.

Quote

Ogni zona per progetto ha una quota di byte di archiviazione. Ogni zona per progetto ha anche una quota di traffico in uscita da Cloud Storage ai servizi Google. Per vedere la quantità di quota di archiviazione o di esportazione dei dati in uscita disponibile, consulta la pagina Quote e limiti di sistema. Per scoprire come richiedere una quota maggiore, consulta Gestisci le quote.

Best practice

Per ottimizzare le prestazioni quando utilizzi i bucket a livello di zona con Cloud Storage FUSE, mantieni un handle di file aperto per gli oggetti montati e utilizzalo per più operazioni. In questo modo le prestazioni migliorano perché Cloud Storage FUSE evita di eseguire round trip di rete non necessari per ogni lettura ripetuta.

Passaggi successivi