-
Notifications
You must be signed in to change notification settings - Fork 452
Host identification and merging
We haven't found a universal hardware-level mechanism (CPU chip ID, MAC address) for uniquely identifying computers. So we do it in software as follows: When a computer first contacts a project's scheduling server, the server creates a database record for the computer, which includes an integer ID and an RPC sequence number. The ID and RPC sequence number are also stored in the client's client_state.xml file. The client increments the RPC sequence number on each scheduler RPC request.
If the scheduling server receives an RPC with a sequence number less than the expected sequence number (usually indicating that the you have copied the client_state.xml file between computers) it creates a new database record and returns a new ID.
This mechanism can lead to situations where a project's server has multiple database records for a single computer. For example, this will occur if the user deletes the client_state.xml file. The user can merge these duplicates into a single record via a web interface.
You may only merge two computer records if
- They have the same processor type (Intel, AMD etc.) and operating system.
- They don't overlap in time; i.e. computer 1's last RPC happened before computer 2's first RPC, or vice-versa.
There are two ways of merging computer records:
- To merge a single computer, open its Summary page, and click on "Merge this computer". You will see a list of computers eligible to be merged with this one, and you can select any or all of them.
- The "Your computers" page has a link Merge computers by name. This feature lets you automatically merge all eligible computers having the same domain name. This is handy if you run a "computer farm" and periodically reformat all the drives.
WCG uses a different method to recognize existing devices to prevent duplicate registrations. The server compares the following host information:
- user name (network name of host)
- domain_name (The default on Windows is "WORKGROUP")
- ip_addr (the ip of the client on the local network)
- operating system name
- processor vendor
- memory
The most recent record that matches these attributes (if found) will be re-used. It will cancel any results currently assigned to the client, and then issue new work. This is because a user might be trying to clear out some work that was causing some form of trouble. If any of this information is hidden through for instance setting the the method fails and will create a new device registration.