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