Ho una serie di sistemi che devono essere distribuiti a un numero variabile di nodi ( almeno due, ma più probabilmente 8 - 10 ). Per motivi di prestazioni, ogni singolo stato deve essere mantenuto in memoria e replicato su almeno due nodi, sebbene con l'aumento della domanda questo possa essere replicato su più nodi come richiesto dal gestore . Sfortunatamente, non possiamo acquistare griglie di dati commerciali che sono già molto buone in questo.
La domanda : supponendo che lo stato sia immutabile, quali sono alcuni schemi e / o algoritmi che posso utilizzare per facilitare questo processo? Ho fornito un esempio per facilitare la discussione, ma non sono legato a questo. Davvero! ... Sono spalancato sulla scelta di una nuova direzione per soddisfare questi requisiti. Se potessi indicarmi foto o esempi di codice che sarebbero molto apprezzati.
Allo stato attuale, uno dei nodi si auto-promuoverà e orchestrerà chi dovrebbe replicare e quando ( cioè il gestore ).
Altre ipotesi:
- Elemento dell'elenco
- I sistemi comunicano tramite TCP / IP e Multicast
- Nessun database
- Nessun trasferimento di file ... solo array di byte
- Tutti i componenti sono attualmente in C # e posso cambiare quasi tutto
- La coerenza finale andrà bene
Nota: mi rendo conto che questo esempio non gestisce i casi di errore. A questo punto ho pensato che avrebbe complicato troppo le cose