Supponiamo di aver impostato un cluster Redis con un master e due slave. Due client sono collegati a ciascuno degli schiavi. Entrambi i client apportano modifiche in conflitto allo stesso tempo:
Cosa succede se queste modifiche vengono replicate su Master nello stesso momento? Vengono semplicemente applicati al Master nell'ordine in cui vengono ricevuti, quindi replicati di nuovo?
Cosa succede se le transazioni vengono utilizzate? Il risultato alla fine è coerente, cioè Master risolve il conflitto applicando le transazioni in un certo ordine, quindi replica la risoluzione verso il basso?
Non mi aspetto una consistenza perfetta da una cache distribuita, ma voglio capire i punti fini in modo che io usi bene la cache. L'applicazione su cui sto lavorando utilizza la cache distribuita per il coordinamento tra thread / processi dell'operatore. Ad esempio, quando un lavoratore elabora un elemento, inserisce una chiave nella cache con una scadenza di 1 minuto che comunica agli altri lavoratori di non elaborare lo stesso articolo. È accettabile se due o tre lavoratori finiscono per elaborare lo stesso oggetto, ma questo meccanismo impedisce una rielaborazione infinita.