-
Notifications
You must be signed in to change notification settings - Fork 1
/
design.txt
51 lines (36 loc) · 1.3 KB
/
design.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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Konsept:
Nodeid: user@network
-Alle noder hoster alle id'er fra og med seg selv til neste nabo
-Alle noder lytter på heartbeat fra sin etterfølgende node
-Alle noder sender hearbeat til sin foregående node
-Heartbeat inneholder sesjonshistorikk fra seg selv
-Dersom en heartbeat uteblir sender noden request hosting start melding via pastry
-Når pastry oppdager en ny node så lager broker en RequestTransfer med denne som avsender
-RequestTransfer håndteres ved at Host sjekker sine klienter mot avsenders ID og dersom noen sokner til avsender sender host requesttransfer for hver av disse
Ulike årsaker til at Heartbeat uteblir:
-Noden er død
-Brukeren hostes av en annen node (RequestTransfer)
-Hosting er avsluttet
Hvordan håndtere duplikat nodeId, eksempelvis at en bruker starter applikasjonen fra en annen maskin?
Kode:
Moduler:
*IRC:
-GUI client
-Backup client
*Pastry:
-Application
-Detektere at noder forsvinner
-Oppdatere naboer (sende heartbeat / loggmeldinger)
-Meldinger
-Heartbeat med logg
-LoggStatus
Tester:
Scenario 1: Base case
-Start en ring med fem klienter og hver sin irc-sesjon
-Alle klienter joiner hver sin kanal og en felles kanal
-Alle klienter prater litt
-To klienter faller ut
-Alle klienter prater litt
-En klient kommer tilbake
Scenario 2: Churn
Scenario 3: