Fai il riscaldamento del database prima dell'avvio dell'applicazione

Prima di avviare un'applicazione, ti consigliamo di riavviare il database utilizzando i caricamenti dei dati di test per sfruttare le funzionalità di parallelizzazione di Spanner.

Spanner è un database distribuito; pertanto, man mano che il database cresce, Spanner divide 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 in modo indipendente l'una dall'altra e le assegna a diverse risorse server per bilanciare il carico complessivo sul database.

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

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

  1. Assicurati che le chiavi principali che generi per i caricamenti dei dati di test si trovino nello stesso spazio delle 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 previsto. Il test di carico fa sì che Spanner crei più suddivisioni a causa della suddivisione basata sul carico.
  3. Al termine del test di carico, puoi eliminare dalle tabelle le righe generate dal test, ma non eliminare le tabelle stesse. In questo modo, le suddivisioni rimangono disponibili per il periodo di lancio.