Browse Prior Art Database

Dynamic Timer Algorithm for Caching Quota Information on OS/2 Distributed File System Client

IP.com Disclosure Number: IPCOM000112254D
Original Publication Date: 1994-Apr-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 4 page(s) / 131K

Publishing Venue

IBM

Related People

Rich, BA: AUTHOR [+2]

Abstract

In OS/2*, at the end of each DIR command, a DosQueryFSInfo is invoked to obtain the file system storage utilization information. The information includes storage allocated and storage currently available for a specific file system. However, to get this information from a DFS file server is expensive. In DFS, storage utilization information is kept by ftserver. First of all, a Remote Procedure Call (RPC) is made to the fileset location server to obtain the location (IP address and port number) of ftserver. A second RPC is invoked to obtain the file set status which contains the storage information for a file set.

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

Dynamic Timer Algorithm for Caching Quota Information on OS/2 Distributed
File System Client

      In OS/2*, at the end of each DIR command, a DosQueryFSInfo is
invoked to obtain the file system storage utilization information.
The information includes storage allocated and storage currently
available for a specific file system.  However, to get this
information from a DFS file server is expensive.  In DFS, storage
utilization information is kept by ftserver.  First of all, a Remote
Procedure Call (RPC) is made to the fileset location server to obtain
the location (IP address and port number) of ftserver.  A second RPC
is invoked to obtain the file set status which contains the storage
information for a file set.  However, if the local file system is not
the Distributed Computing Environment's (DCE's) Local File System
(LFS), a third RPC is invoked to obtain the aggregate status which
contains the storage information for an aggregate.

      The performance of the DIR command is crucial since it is a
frequently used file system operation.  However, the current DFS
implementation does not have an efficient mechanism to cache the file
system storage utilization information.

      Disclosed is an algorithm for an OS/2 DFS client to cache the
file system storage usage information.  The advantages of this
algorithm are:

1.  Client initiated cache invalidation.  No changes to server
    implementation.

2.  Dynamically adjusted cache invalidation period to achieve minimum
    communication overhead and accurate information when necessary.

      A fixed size file set information table (fileSetQuota) is
allocated.  Each entry in this table contains the following
information:

o   volumeId - Volume identifier of a specific file set.

o   MaxQuota - Number of bytes allocated for a specific file set.

o   Avail - Number of bytes available for a specific file set.

o   Timestamp - The timestamp of last  quota information update.

Our caching algorithm is characterized by the following constants:

o   LONGTIMER (60 minutes by default).  A timeout constant used when
    file system storage utilization is low.

o   SHORTTIMER (15 minutes by default).  A timeout constant used when
    file system storage utilization is high.

o   USAGEPERCENT (75% by default).  A constant to determine the file
    system storage utilization status.  Storage utilization above
    USAGEPERCENT is considered high utilization and vice versa.

      A static variable Timer is used to determine how often we would
like to obtain the file system usage information.  Timer is set to
zero initially For each FS_FSINFO call, we obtain the current
timestamp (in seconds) from the system clock.  Locate the target file
set in the fileSetQuota table and subtract the the timestamp stored
in the table from current timestamp.

      Let the difference be DIFF.  If DIFF is greater than Timer,
then obtain the quota from the ftser...