Basic Nomad behavior in a simple environment
In order to understand how Nomad behaves in a simple environment, we have provided some examples. All the scenarios use the illustrated network setup, likely scenarios are:
These scenarios are presented in a tabular format where time is represented going down the column and each row in the table marks a significant event. The columns in the table show the events that have taken place for each device.
Normal use
This illustration shows Nomad working as expected with no errors encountered during the transmission of a package. It shows a new ADV00001 advertisement, being sent containing the PKG00001 package:
Step | Device A | Device B | Device C |
---|---|---|---|
1 | Start state ON | Start state ON | Start state OFF |
2 | Receives new ADV00001 advert | ||
3 | Starts Nomad | ||
4 | Initiates election for PKG00001 | ||
5 | No replies so starts downloading from DP | ||
6 | Receives new ADV00001 advert | ||
7 | Starts Nomad | ||
8 | Initiates election for PKG00001 | ||
9 | Reply to PKG00001 20% complete | ||
10 | A wins election | ||
11 | Updates local cache from A Copies blocks from A until caught up then back off (P2PbackoffSecs) before catching up again. | C is switched on | |
12 | Each 5 minute period, A initiates an election and is re-elected as master | ||
13 | Receives new ADV00001 advert | ||
14 | Starts Nomad | ||
15 | Initiates election for PKG00001 | ||
16 | Starts update local cache from A | ||
17 | A completes download and broadcasts Done | ||
18 | Waits for peers to finish caching | Signals to A that cache is being copied | Signal to A that cache is being copied |
19 | Loads package | ||
20 | Broadcast Done | Returns status for ADV00001 | |
21 | Wait for peers to finish caching | ||
22 | Signals to A that cache is being copied | ||
23 | Loads package | ||
24 | Returns status for ADV00001 advert | ||
25 | Loads package | ||
26 | Returns status for ADV00001 advert |
Master switched-off during upload
This illustration shows how three devices running Nomad interact to elect a new master when the existing one becomes unavailable. It starts when a new advertisement, ADV00001, is sent containing package, PKG00001.
Step | Device A | Device B | Device C |
---|---|---|---|
1 | Start state ON | Start state ON | Start state OFF |
2 | Receives new ADV00001 advert | ||
3 | Starts Nomad | ||
4 | Initiates election for PKG00001 | ||
5 | No replies so starts downloading from DP | ||
6 | Receives new Advert ADV00001 | ||
7 | Starts Nomad | ||
8 | Initiates election for PKG00001 | ||
9 | Replies to PKG00001 20% complete | ||
10 | A wins election | ||
11 | Updates local cache from A Copies blocks from A until caught up then back off (P2PbackoffSecs) before catching up again. | C is switched on | |
12 | Each 5 minute period, A initiates an election and is re-elected as master | ||
13 | Receives new ADV00001 advert | ||
14 | Starts Nomad | ||
15 | Initiates election for PKG00001 | ||
16 | Starts update local cache from A | ||
17 | A Switched Off | ||
18 | B is partway through copying a block of data and returns an error | C is in a wait state and notices nothing yet | |
19 | B initiates an election (loss of connection) | ||
20 | B wins election and now takes over copying from the DP | C now caches from B | |
21 | A Switched On | ||
22 | Configuration Manager restarts package and Nomad | ||
23 | A initiates an election (start up) | ||
24 | B wins Election (% complete) | ||
25 | A now caching from B | ||
26 | B completes download and broadcasts Done | ||
27 | Signals to B that cache is being copied | Wait for peers to finish caching | Signals to B that cache is being copied |
28 | Loads package | Loads package | |
29 | Returns status for ADV00001 advert | Returns status for ADV00001 advert | |
30 | Loads package | ||
31 | Returns status to for ADV00001 advert |
Common uplink broken
This illustration shows how Nomad deals with the situation where the WAN to the DP becomes unavailable and is later restored. It starts when a new ADV00001 advertisement has been sent containing the PKG00001 package.
Step | Device A | Device B | Device C |
---|---|---|---|
1 | Start state ON | Start state ON | Start state ON |
2 | Receives new ADV00001 advert | Receives new ADV00001 advert | Receives new ADV00001 advert |
3 | Starts Nomad | Starts Nomad | Starts Nomad |
4 | Initiates election for PKG00001 | Initiates election for PKG00001 | Initiates election for PKG00001 |
5 | A wins election and starts downloading from DP | ||
6 | Updates local cache from A | Updates local cache from A | |
7 | Each 5 minute period, A initiates an election and is re-elected as master | ||
WAN link broken | |||
8 | Error detected – causing election to take place | Catch up with A | Catch up with A |
After 3 periods of no progress, reverts to looking at DP link. | After 3 periods of no progress, reverts to looking at DP link. | ||
9 | A switched off | ||
WAN link restored | |||
10 | B notices that WAN is restored and forces an election | ||
11 | B is elected master | ||
12 | Starts caching from B |
Distribution Point modified after initial advert download
This illustration shows how the Nomad executable and service deals with the situation where the DP is modified after a master device has added the package to its cache. It starts with a new advertisement, ADV00001, is sent containing package, PKG00001 and the administrator then modifies the DP share.
Step | Device A | Device B | Device C |
---|---|---|---|
1 | A has already cached package | ||
Admin Modifies the DP Shares | |||
2 | Receives new ADV00001 advert | ||
3 | Starts Nomad | ||
4 | Initiates election for PKG00001 | ||
5 | Replies to PKG00001 100% complete | ||
6 | A wins election | ||
7 | Whole package is loaded from A using original file list | ||
8 | B notices that file list from A is older than DP last write time. B creates file list direct from DP and elects itself master | ||
9 | B is now master and wins elections due to later file list | ||
10 | Any file which does not exist or has been modified is now deleted and reloaded from the DP | ||
11 | C caches from B as it has a more up-to-date file list | ||
12 | A is still running the old software and will continue to do so until it receives a new advert causing it to update |