Browse Prior Art Database

Method for Deadlock Prevention for Callbacks in a Distributed Environment

IP.com Disclosure Number: IPCOM000116972D
Original Publication Date: 1995-Dec-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 4 page(s) / 199K

Publishing Venue

IBM

Related People

Bennett, RB: AUTHOR [+3]

Abstract

Described is a method for deadlock prevention in a distributed data system, where update concurrency and consistency are accomplished through awarding cached metadata and data block tokens. When one such token is awarded by the Token Manager of a common Repository File Server to a first client for file A and a second client requires the same token or a conflicting token for the same file, the server "calls back" the token from the first client and, upon relinquishment by that first client, awards it to the second client. Token awards protect cached information in the environments of the participating clients.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 25% of the total text.

Method for Deadlock Prevention for Callbacks in a Distributed Environment

      Described is a method for deadlock prevention in a distributed
data system, where update concurrency and consistency are
accomplished through awarding cached metadata and data block tokens.
When one such token is awarded by the Token Manager of a common
Repository File Server to a first client for file A and a second
client requires the same token or a conflicting token for the same
file, the server "calls back" the token from the first client and,
upon relinquishment by that first client, awards it to the second
client.  Token awards protect cached information in the environments
of the participating clients.

Tokens represent cached information as follows:
  o  An object token represents the metadata (object control
      information) for a particular object (file) that is cached in
      a client environment.  Object tokens are used to serialize
      operations on a particular object.  This serialization is
      enforced by the token award and callback by the server, by
      serializing the callback processing for a particular file
      (object) in the server environment, and by delaying callback
      processing for a particular token in a client environment until
      current operations in that client environment, that depend on
      that token, are completed.
  o  A block token represents a contiguous portion of a data file
that
      has been cached in a client environment.  In the case of a data
      file object, a client application request causes the use of all
      or portions of a file object.  The blocks needed for that
request
      are typically read and cached for future use or have already
been
      read and cached by a previous request, such that they need not
be
      read again into the client environment cache.  Similar to the
      case for object tokens, block tokens are not relinquished
through
      callback processing until the current operation in the holding
      client is finished with those tokens.

      The serialization between callback processing and the
maintenance of object metadata and blocks cached in the client
environment, and the associated tokens, that would cause loss of that
cached information and tokens to another client, is accomplished by
locking a control structure called an Object Cache Record, that holds
the metadata in the cache.  While this lock is held, the cache is
protected for that object against callback processing in that client
environment, which would otherwise relinquish the associated tokens
and compromise the cached objects.

      The potential for deadlocks arise when two client environments,
A and B conflict for file X blocks, such as the following:
  1.  Client A holds block 4, but also needs block 5
      Client B holds block 5, but also needs block 4
  where block tok...