Passa al contenuto principale
IN ANTEPRIMA

Il miglioramento della sincronizzazione delle repliche di query in Azure Analysis Services è disponibile in anteprima

Data di pubblicazione: 18 gennaio, 2020

Una nuova impostazione di Azure Analysis Services (in anteprima) migliora le prestazioni e la coerenza della sincronizzazione delle repliche di query negli ambienti di scale-out. Lo scale-out di query distribuisce le query dei client in una o più repliche di query, riducendo i tempi di risposta per carichi di lavoro a concorrenza elevata. La sincronizzazione delle repliche di query esegue la replica dei dati nei database di repliche di query.

Per impostazione predefinita, le repliche di query vengono reidratate completamente, non in modo incrementale, in diverse fasi. Vengono rimosse e collegate due alla volta, presupponendo che siano disponibili almeno tre repliche, in modo da assicurare che almeno una replica venga sempre mantenuta online per le query. È possibile che i client si debbano riconnettere a una delle repliche online durante l'esecuzione del processo.

Grazie alla nuova impostazione ReplicaSyncMode, è ora possibile specificare la sincronizzazione in parallelo delle repliche di query. La sincronizzazione ottimizzata delle repliche di query offre anche questi vantaggi:

  • Tutte le repliche vengono sincronizzate in parallelo, riducendo significativamente la durata della sincronizzazione.
  • Tutte le repliche vengono sincronizzate in parallelo, quindi è più probabile che i dati nelle diverse repliche siano coerenti durante il processo di sincronizzazione.
  • I database vengono mantenuti online in tutte le repliche per l'intera durata del processo di sincronizzazione, quindi i client non devono ripetere la connessione.
  • La cache in memoria viene aggiornata in modo incrementale solo con i dati modificati e questo processo può risultare molto più veloce rispetto alla riattivazione completa del modello.

Come esempio dei vantaggi della sincronizzazione ottimizzata, il team del prodotto ha eseguito test su un database di dimensioni pari a circa 84 GB in una VM S8v2 con 3 repliche. La sincronizzazione ha richiesto circa 2 minuti per una sincronizzazione incrementale rispetto a 5 minuti per una sincronizzazione non incrementale. Per lo stesso database in una VM S8v2 con 7 repliche il tempo necessario per la sincronizzazione incrementale è rimasto invariato, mentre il tempo necessario per una sincronizzazione non incrementale è aumentato fino a 11 minuti.

I valori possibili per ReplicaSyncMode sono:

  • 1 (impostazione predefinita): reidratazione completa del database di repliche in più fasi.
  • 2: sincronizzazione ottimizzata in parallelo.

FastReplicaSync (002)

Se si imposta ReplicaSyncMode=2, è possibile che le repliche di query utilizzino memoria aggiuntiva, in base alla quantità di cache che deve essere aggiornata. Per mantenere il database online e disponibile per le query, l'operazione può richiedere fino al doppio della memoria sulla replica, in base alla quantità di dati con modifiche. Questo problema è dovuto al fatto che i segmenti precedenti e nuovi vengono mantenuti in memoria contemporaneamente. I nodi di replica hanno la stessa allocazione di memoria del nodo primario. Poiché nel nodo primario è in genere disponibile memoria aggiuntiva per operazioni di aggiornamento, è poco probabile che le repliche esauriscano la memoria. Uno scenario comune, inoltre, è costituito dall'aggiornamento incrementale del database sul nodo primario, in modo da eliminare la necessità di memoria raddoppiata. Se l'operazione di sincronizzazione rileva un messaggio di errore "memoria insufficiente", eseguirà un nuovo tentativo usando la tecnica predefinita, ovvero il collegamento e la rimozione di due repliche alla volta.

Scopri di più sullo scale-out di query in Azure Analysis Services.

  • Azure Analysis Services
  • Features
  • Management
  • Services

Prodotti correlati