Quando si esegue un'applicazione Web in una farm che utilizza un datastore distribuito che è alla fine coerente (CouchDB nel mio caso), dovrei garantire che un determinato utente sia sempre indirizzato alla stessa istanza del datastore?Gli utenti devono essere indirizzati a nodi dati specifici quando si utilizza un archivio dati eventualmente coerente?
Mi sembra che l'approccio alternativo, in cui qualsiasi richiesta Web possa utilizzare qualsiasi archivio dati, aggiunga una notevole complessità per gestire problemi di coerenza (tentativi, verifiche, ecc.). D'altra parte, se un utente in una data sessione è sempre diretto allo stesso nodo divano, i miei problemi di coerenza non ruotano principalmente attorno ai dati utente "condivisi" e quindi sono notevolmente semplificati?
Sono anche curioso di strategie per dirigere gli utenti ma forse lo terrò per un'altra domanda (commenti benvenuti).
Couchbase è fortemente coerente. Leggi la tua scrittura e c'è solo una rappresentazione attiva dei dati sul cluster. Ci sono repliche, ma la coerenza non è garantita se si esegue una query su tali. È inoltre possibile scegliere su ciascuna scrittura se si desidera attendere la permanenza del documento su disco, replicare fino alla quarta volta o essere conservati nel master e in altre repliche. –
La domanda ha specificato CouchDB, non Couchbase. –
@ Mr Grieves, mi dispiace, volevo dire CouchDB. Anche se non sono sicuro delle specifiche dell'attuazione della replica di CouchDB, la mia risposta è ancora valida. Dovrai rinunciare a una forte coerenza per una migliore disponibilità. – Paras