Esegui l'inizializzazione del database prima del lancio dell'applicazione

Prima di lanciare un'applicazione, ti consigliamo di preriscaldare il database utilizzando carichi di dati di test per sfruttare le funzionalità di parallelizzazione di Spanner.

Spanner è un database distribuito, il che significa che, man mano che il database cresce, suddivide lo spazio delle chiavi dei dati in blocchi chiamati split. Ogni suddivisione è un intervallo di righe che contiene un sottoinsieme della tabella. Poiché Spanner suddivide i dati in base al carico e alle dimensioni, sposta dinamicamente le singole suddivisioni indipendentemente l'una dall'altra e le assegna a diverse risorse del server per bilanciare il carico complessivo sul database.

Quando inserisci inizialmente i dati in un database vuoto, Spanner li scrive in un'unica suddivisione. Il database è ancora in uno stato "cold". Man mano che inserisci più dati, Spanner inizia a suddividerli per riequilibrare il carico sulle altre risorse del server disponibili. Ora Spanner è in uno stato "warm" con suddivisioni tra le risorse del server disponibili per massimizzare il parallelismo e migliorare le prestazioni.

Come best practice, ti consigliamo di lanciare l'applicazione quando Spanner è in uno stato attivo con le suddivisioni già create e bilanciate tra le risorse del server. Per eseguire l'inizializzazione del database e preparare i caricamenti dei dati di test:

  1. Assicurati che le chiavi principali che generi per i caricamenti dei dati di test si trovino nello stesso spazio chiavi e abbiano le stesse proprietà di distribuzione delle chiavi che utilizzi per il traffico di produzione.
  2. Esegui un test di carico non più di due giorni prima del lancio. Esegui il test di carico per almeno un'ora al picco di carico previsto. Il test di carico fa sì che Spanner crei più suddivisioni a causa della suddivisione in base al carico.
  3. Al termine del test di carico, puoi eliminare le righe generate dal test dalle tabelle, ma non le tabelle stesse. In questo modo, le suddivisioni rimangono disponibili per la finestra di lancio.