Next: , Previous: Name access (and deleted-block reclamation), Up: Concurrency


2.2.2 Fail-out protocol/access conflict strategy

Blocked operations are at the moment simply going to fail with an error code of RETRYERR, meaning that they can be safely retried later. The current idea is to use this whenever a READ-WRITE conflict occurs. (This would not be necessary using SAGIV's method.) However, since various other lockout and wait conditions can occur – waits for block reads, waits on NAME locks, waits on interlocked operations – some such facility would be needed anyway, so it seems reasonable to try to use it to handle READ-WRITE blocking as well.

NOT REALLY IMPLEMENTED YET due to the complexity of reorganizing the code to pass up the appropriate information in all cases. (Top-level routines return these codes but internal routines don't really use it yet, so retry-ability isn't really there yet.)