-
Notifications
You must be signed in to change notification settings - Fork 0
/
punti.txt
28 lines (18 loc) · 1.45 KB
/
punti.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Ogni server avrà 1 socket (dovrebbe bastare)
Quando un client si connette ad uno dei server riceve una lista di tutti i server.
Implementare put() potrebbe essere molto semplice, troppo semplice a quano pare
server:
client:
Implementare get()
server: risponde con l'ultimo valore o null per la chiave ricevuta
client: fa la richiesta (chiave), confronta le risposte e se riceve da N/2+1 server lo mismo acceta il valore (stampa a video)
il sistema di lookup o dobbiamo implementare con un oggetto tipo load balancer o ci basta dare al client (hardcoded o passandoglieli all'invocazione)
gli indirizzi dei server presenti supponendo di avere un sistema di lookup che ritorni la lista delle socket
Possiamo dare per buono che il timestamp sia reliable come metodo per distinguere gli aggiornamenti? si
we want to introduce version numbers such that the client can know when a new version of the file is provided
How to manage failed writes!!:
- READ REPAIR, when a client receives from a read to some server a old value this can suggest an update.
- Anti-Entropy Process, a background process that asks other nodes for new data to be sure the data is the most recent.
Dobbiamo parlare della conflict resolution nel caso di processi che fanno write write.
nel caso ci dovessimo arrivare potremmo mettere che se i timestamp sono uguali prendiamo quello che ha qualce parametro e.g., ip, id, porta... più piccolo dell'altro
cambiare timestamp