I am trying to understand the olbd caching system. However, self-doubt 
persists and I wonder if you could help me.

In the case of load-based selection (as opposed to round-robin), it 
looks like the following to me:

1. Each time a file is opened, the olbd manager makes a list (well, a 
mask) of servers that have the file (a primary) or that could stage the 
2. It then checks the currently cached load information for each server 
from step 1 and takes the first one that isn't overloaded.
3. If the selected server doesn't already have the file, then the 
master tells it to stage the file and notes in the manager's cache that 
the file should be on this server in the future.
4. It then redirects the open request to the selected server.

Now for the ignorant questions:
If the manager olbd crashes, then the manager's cache of what files are 
already staged on a machine would be lost. When it restarts, does it 
rebuild that knowledge only by responding to requests to open files (at 
which point it may behave inefficiently by assuming that there are no 
primary servers for a file)? Or does it broadcast some directive to get 
information about which servers have the file already staged?

If a server drops a staged file to make space for something else, does 
it also tell the manager so that the manager updates its cache of what 
files are where? Or does the central manager always direct what should 
be dropped (since it has more global knowledge about what is heavily 

Gregory J. Sharp                   email: [log in to unmask]
Wilson Synchrotron Laboratory      url:
Dryden Rd                          ph:  +1 607 255 4882
Ithaca, NY 14853                   fax: +1 607 255 8062