Provider dello stato di sessione e operazioni atomiche

0

Ci stavo pensando e mi sta venendo in mente ...

In che modo un provider di stato della sessione funziona correttamente internamente?

Voglio dire, ho provato a scrivere un provider di stato della sessione personalizzato basato su tabelle o BLOB di Azure, ma in breve tempo mi sono reso conto che, poiché non c'è modo di garantire un'operazione atomica o stabilire un blocco, le condizioni di gara sono adatte i server Web eseguono operazioni su tali informazioni condivise.

So che esiste un SQL Server Session State Provider (SQLS-SSP) e la gente ne è felice, quindi suppongo che stia usando un qualche tipo di livello di isolamento della transazione per ottenere un certo grado di sicurezza simultanea, come il controllo è il dato è lock (una colonna semplice), bloccandolo se non e restituendo i dati in un'operazione atomica, ma è così? cosa succede se i dati sono bloccati? restituisce un errore? bloccare la chiamata per un po '? lo restituisce in modalità di sola lettura?

I paradigmi del cloud computing potrebbero essere in qualche modo nuovi, ma i webfarm sono qui da un po 'di tempo, quindi, dato che sono piuttosto nuovo su di esso ... consiglieresti qualche buona lezione sull'argomento?

Grazie.

    
posta NullOrEmpty 27.02.2011 - 15:01
fonte

1 risposta

2

Il provider di stato delle sessioni SQL Server utilizza il blocco basato sulle colonne. Ha diverse colonne, tra cui: Bloccato, LockDate, ecc.

Quando il record di sessione è bloccato, la richiesta attende in coda fino a quando la sessione è accessibile (il provider deve gestirlo) o fino al timeout del client.

La situazione è in realtà la stessa anche se si utilizza il mamangement della sessione in elaborazione. Il provider di sessione predefinito consente l'elaborazione simultanea di una singola richiesta quando la pagina ha "autorizzazione" di scrittura per la sessione.

    
risposta data 27.02.2011 - 20:54
fonte

Leggi altre domande sui tag