← Back to Patent Explorer
US5692178A Expired / Lapsed US ⏱️ 0.0 years remaining

System and methods for improved file management in a multi-user environment

Assignee: Borland Software Corp
•
Filing: 1996-07-16
•
Granted: 1997-11-25
•
Expires: 2016-07-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system having concurrently shared objects or resources is described. An exemplary embodiment includes a multi-user database management system having information tables and related objects stored in shared directories on a file server. A plurality of lock types, including directory lock, full lock, write lock, prevent full lock, and prevent write lock, are provided for controlling concurrent access. Methods are described for managing locks by creating a special lock file for each shared directory that is accessed. The lock file stores at least one logical lock file having locking or concurrency information specific to a family of related members. The logical lock file itself includes a plurality of entries for specifying concurrency information of associated family members. A shared object or resource is accessed according to the information retrieved from the corresponding logical lock file.

Inventors

  • 👤 Steven T. Shaughnessy

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 17:47
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/10; G06F16/17; G06F16/176; G06F16/1767; G06F16/1774; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99956

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 290 words
In a multi-client data processing system, an improved method for storing files on a storage device, the method comprising: storing a plurality of files as a plurality of logical files stored in a single physical file, said physical file residing as a single disk file on a storage device, each logical file being stored as a contiguous sequence of uniform storage blocks in the physical file; storing with the physical file a directory describing each logical file stored within the physical file; receiving a first request from a client for information from a particular logical file; in response to said first request, determining from said directory where said logical file is located in said physical file, and storing at the client information comprising a pointer describing that location, so that a subsequent request for the logical lock file can be satisfied without the directory; receiving a second request from another client for storing in the logical file new information which causes overflow of the logical file; in response to said second request, storing the new information by: (i) appending to one end of the physical file a sufficient number of new uniform storage blocks for storing the new information, (ii) storing information for the logical lock file together with the new information being added in said new uniform storage blocks, (iii) marking storage blocks which previously comprised the logical file as invalid, and (iv) storing with the invalidated storage blocks a pointer which points to said storage blocks being appended to said physical file; and as each client requests access to information stored in the logical file, updating the pointer stored at the client to reference a location in the physical file where the new storage blocks have been appended.
Claim 2
Dependent Claim 290 words
In a multi-client data processing system, an improved method for storing files on a storage device, the method comprising: storing a plurality of files as a plurality of logical files stored in a single physical file, said physical file residing as a single disk file on a storage device, each logical file being stored as a contiguous sequence of uniform storage blocks in the physical file; storing with the physical file a directory describing each logical file stored within the physical file; receiving a first request from a client for information from a particular logical file; in response to said first request, determining from said directory where said logical file is located in said physical file, and storing at the client information comprising a pointer describing that location, so that a subsequent request for the logical lock file can be satisfied without the directory; receiving a second request from another client for storing in the logical file new information which causes overflow of the logical file; in response to said second request, storing the new information by: (i) appending to one end of the physical file a sufficient number of new uniform storage blocks for storing the new information, (ii) storing information for the logical lock file together with the new information being added in said new uniform storage blocks, (iii) marking storage blocks which previously comprised the logical file as invalid, and (iv) storing with the invalidated storage blocks a pointer which points to said storage blocks being appended to said physical file; and as each client requests access to information stored in the logical file, updating the pointer stored at the client to reference a location in the physical file where the new storage blocks have been appended.
Claim 3
Dependent Claim 20 words
The method of claim 1, wherein each uniform storage block is allocated as a multiple of a disk sector size.
Claim 4
Dependent Claim 39 words
The method of claim 2, wherein said appending step includes appending the uniform storage blocks as a contiguous sequence of storage blocks, so that said logical file can always be read from disk in a single disk read operation.
Claim 5
Dependent Claim 19 words
The method of claim 1, wherein each logical file itself includes a directory describing contents stored at that file.
Claim 6
Dependent Claim 25 words
The method of claim 1, further comprising: storing a high water mark in the physical file for indicating where new storage blocks can be appended.
Claim 7
Dependent Claim 33 words
The method of claim 1, wherein said directory stores information for locating said logical files, said directory including a plurality of entries each of which stores a starting address for one logical file.
Claim 8
Dependent Claim 29 words
The method of claim 1, wherein each particular logical file includes a header storing a flag for indicating whether the particular logical file has moved within said physical file.
Claim 9
Dependent Claim 33 words
The method of claim 7, wherein said logical file header for the particular logical file stores a pointer to a new logical file if said flag indicates that the logical file has moved.
Claim 10
Dependent Claim 24 words
The method of claim 1, wherein each at least one logical file stores concurrency information specific to a particular resource shared among multiple clients.
Claim 11
Dependent Claim 41 words
The method of claim 1, wherein said physical file is a separate disk file stored on a server computer, and wherein one physical file is created for each directory of the server computer which has resources being shared among multiple clients.
Claim 12
Dependent Claim 29 words
The method of claim 1, wherein each logical file comprises a number of uniform storage blocks allocated within said physical file as a multiple of a common disk unit.
Claim 13
Dependent Claim 63 words
The method of claim 1, wherein said physical file comprises a physical lock file and wherein said plurality of logical files comprise a plurality of logical lock files, each logical lock file storing information for accessing particular resources of a database, said physical lock file having a plurality of uniform storage areas each of which stores no more than one logical lock file.
Claim 14
Dependent Claim 301 words
A multi-client data processing system comprising: a server computer storing a plurality of files as a plurality of logical files stored in a single physical file, said physical file residing as a single disk file on a storage device of said server computer, each logical file being stored as a contiguous sequence of uniform storage blocks in the physical file, said physical file including a directory describing each logical file stored within the physical file; a client computer capable of generating a first request from a client for information from a particular logical file; means, responsive to said first request, for determining from said directory where said logical file is located in said physical file, said means storing at the client computer information comprising a pointer describing that location, so that a subsequent request for the logical lock file can be satisfied without the directory; means for receiving a second request from another client computer requesting storage of new information in the logical file, said new information causing overflow of the logical file; means, responsive to said second request, for storing the new information by: (i) appending to one end of the physical file a sufficient number of new uniform storage blocks for storing the new information, (ii) storing information for the logical lock file together with the new information being added in said new uniform storage blocks, (iii) marking storage block which previously comprised the logical file as invalid, and (iv) storing with the invalidated storage blocks a pointer which points to said storage blocks being appended to said physical file; and means for updating the pointer stored at the client computer to reference a location in the physical file where the new storage blocks have been appended, as each client requests access to information stored in the logical file.
Claim 15
Dependent Claim 301 words
A multi-client data processing system comprising: a server computer storing a plurality of files as a plurality of logical files stored in a single physical file, said physical file residing as a single disk file on a storage device of said server computer, each logical file being stored as a contiguous sequence of uniform storage blocks in the physical file, said physical file including a directory describing each logical file stored within the physical file; a client computer capable of generating a first request from a client for information from a particular logical file; means, responsive to said first request, for determining from said directory where said logical file is located in said physical file, said means storing at the client computer information comprising a pointer describing that location, so that a subsequent request for the logical lock file can be satisfied without the directory; means for receiving a second request from another client computer requesting storage of new information in the logical file, said new information causing overflow of the logical file; means, responsive to said second request, for storing the new information by: (i) appending to one end of the physical file a sufficient number of new uniform storage blocks for storing the new information, (ii) storing information for the logical lock file together with the new information being added in said new uniform storage blocks, (iii) marking storage block which previously comprised the logical file as invalid, and (iv) storing with the invalidated storage blocks a pointer which points to said storage blocks being appended to said physical file; and means for updating the pointer stored at the client computer to reference a location in the physical file where the new storage blocks have been appended, as each client requests access to information stored in the logical file.
Claim 16
Dependent Claim 20 words
The system of claim 13, wherein each uniform storage block is allocated as a multiple of a disk sector size.
Claim 17
Dependent Claim 44 words
The system of claim 14, wherein means for storing the new information includes: means for appending the uniform storage blocks as a contiguous sequence of storage blocks, so that said logical file can always be read from disk in a single disk read operation.
Claim 18
Dependent Claim 19 words
The system of claim 13, wherein each logical file itself includes a directory describing contents stored at that file.
Claim 19
Dependent Claim 27 words
The system of claim 13, further comprising: means for storing a high water mark in the physical file for indicating where new storage blocks can be appended.
Claim 20
Dependent Claim 33 words
The system of claim 13, wherein said directory stores information for locating said logical files, said directory including a plurality of entries each of which stores a starting address for one logical file.
Claim 21
Dependent Claim 29 words
The system of claim 13, wherein each particular logical file includes a header storing a flag for indicating whether the particular logical file has moved within said physical file.
Claim 22
Dependent Claim 33 words
The system of claim 19, wherein said logical file header for the particular logical file stores a pointer to a new logical file if said flag indicates that the logical file has moved.
Claim 23
Dependent Claim 24 words
The system of claim 13, wherein each at least one logical file stores concurrency information specific to a particular resource shared among multiple clients.
Claim 24
Dependent Claim 43 words
The system of claim 13, wherein said physical lock file is a separate disk file stored on the server computer, and wherein one physical lock file is created for each directory of the server computer which has resources being shared among multiple clients.
Claim 25
Dependent Claim 29 words
The system of claim 13, wherein each logical file comprises a number of uniform storage blocks allocated within said physical file as a multiple of a common disk unit.
Claim 26
Dependent Claim 63 words
The system of claim 13, wherein said physical file comprises a physical lock file and wherein said plurality of logical files comprise a plurality of logical lock files, each logical lock file storing information for accessing particular resources of a database, said physical lock file having a plurality of uniform storage areas each of which stores no more than one logical lock file.

References Cited (Backward Citations)

US5119291A Cited
US5319780A Cited
US5043876A Cited
US5287521A Cited
US5247660A Cited
US5063501A Cited
US5072378A Cited
US5276867A Cited
US5263165A Cited
US5327556A Cited
US5285528A Cited
US5555388A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-11-24 2001-05-26 2001-11-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-11-24 2005-05-26 2005-11-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-11-24 2009-05-26 2009-11-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag