RAC, Lamport, SCN e LaTeX

lunedì 26 marzo 2007 alle 26:19 | Pubblicato su Diario, RAC | Lascia un commento

Analizzando una problematica riscontrata utilizzando la nostra applicazione in ambiente RAC ho dovuto approfondire il signicato del parametro Oracle MAX_COMMIT_PROPAGATION_DELAY. In effetti secondo Oracle è perfettamente accettabile che una modifica fatta al database tramite una delle istanze componenti il RAC non sia immediatamente visibile da altre sessioni collegate sulle altre istanze componenti il RAC. Si può senz’altro affermare che questo cozza contro il principio che un’applicazione può passare da un database Oracle singola istanza ad un RAC senza alcuna modifica. Questo è vero, però Oracle ha dimenticato di aggiornare la propria documentazione sul parametro MAX_COMMIT_PROPAGATION_DELAY. Infatti sul manuale, nelle versioni precedenti alla 10.2 (dalla quale tale parametro è deprecato) se ne sconsiglia la modifica e in alcune note metalink si suggerisce di modificare l’applicazione (!?). La nostra applicazione come ogni applicazione web normale utilizza un pool di connessioni, tali connessioni in ambiente RAC sono distribuite fra le varie istanze Oracle e vengono usate dall’applicazione stessa in modo “trasparente”. Cioè l’applicazione non sa su che istanza sta facendo una query. E quindi pare insensato l’invito di Oracle a non modificare tale parametro.

Infatti tale parametro determina l’algoritmo utilizzato dalle istanze del RAC per sincronizzarsi “temporalmente” ovvero per sincronizzarsi sull’SCN che è l’orologio logico delle transazioni del database. Per default il parametro ha valore 700, che significa 7 secondi, ovvero prima che uan transazione possa essere vista da tutte le istanze del RAC possono trascorrere sette secondi.

Per default, fino alla versione 10.1, l’algoritmo utilizzato in RAC per sincronizzare l’SCN fra le istanze era l’algoritmo di Lamport. Nella documentazione di Oracle non si dice null’altro su tale algoritmo. Ho scoperto che tale algoritmo è spiegato in un bell’articoletto del 1978 dal titolo “Time, Clocks, and the Ordering of Events in a Distributed System” di Leslie Lamport. Quando ho letto il nome completo ho subito pensato che suonava familiare, poi ho avuto il lampo: Leslie Lamport è il creatore di LaTeX (Lamport Tex)! Una sorpresa piacevole, soprattutto dopo la mia recente riscoperta dell’utilizzo di LaTeX.

Sul sito di Lamport (lamport.org) ho avuto modo di trovare il testo completo del suo articolo è ho notato con interesse che questo signore ora lavora per Microsoft.

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: