wiki:HostId

Version 4 (modified by Sekerob, 16 years ago) (diff)

--

Computer identification

How computers are identified

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 a host ID and an RPC sequence number. The computer ID and the RPC sequence number are also stored in the client's client_state.xml file. The client increments the RPC sequence number on each scheduler request.

If the scheduling server receives an RPC with a sequence number less than the expected sequence number (usually indicating that the user has copied the client_state.xml file between computers) it creates a new database record and returns a new ID.

Merging duplicate computer records

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.

Alternate identification method at World Community Grid

In absence of a merge feature at this project, WCG introduced an alternate method called host matching to recognise previously existing devices to prevent new / duplicate registrations. For that the server compares standard information exchanged during server-client communications being:

  • user name
  • domain_name
  • ip_addr (the ip of the client on the local network)
  • operating system name
  • processor vendor
  • memory

The most recent record that matches this critiera (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 <suppress_net_info> flag in the cc_config.xml file suppressing the IP address or domain_name, the method fails and will create a new device registration.