US5218695A
Expired / Lapsed
US
⏱️ 0.0 years remaining
File server system having high-speed write execution
Assignee: Epoch Systems Inc
•
Filing: 1990-02-05
•
Granted: 1993-06-08
•
Expires: 2010-02-05
Abstract
Abstract A file server system selectively stores and provides access to files across a local network. The system utilizes adaptive request batching, disk pre-allocation, and shadow inode logic to enable data writing operations to be executed at high speed, while conforming to stateless protocol requirements.
Inventors
- 👤 David Noveck
- 👤 John Wallace
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-23 08:57
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F16/00; G06F16/10; G06F3/0602; G06F3/061; G06F3/0611; G06F3/0613; G06F3/0628; G06F3/0629; G06F3/0631; G06F3/0638; G06F3/0643; G06F3/0668; G06F3/067; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99956
Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
384 words
In a method for operating a digital data processing system in a stateless protocol environment, said digital processing system including at least one file server for storing and providing selective access to digital data files, and at least one client device, coupled to and communication with said file server, said at least one client device including request means for generating a request to write data to at least a selected one of said digital data files, said file server including inode means for storing an informational status associated with at least selected ones of said digital data files, indirect block means for storing a data file extension pointer associated with at least selected ones of said files, response means for responding to said write request by executing (i) a write operation to write data associated with said request to said selected digital data file, (ii) an update operation for updating, in connection with said write operation, at least one of said inode means and indirect block means associated with said file, and (iii) an acknowledgement operation for acknowledging, to said client device, said write request, only after completion of said associated write and update operations, the improvement comprising the steps of A. detecting, in said file server, multiple simultaneously pending write requests received from one or more of said client devices and directed to said selected digital data file, B. combining those multiple simultaneously pending write requests to eliminate at least one of said write and update operations associated therewith, C. said combining step including the further steps of i) determining at least one of an informational status and a data file extension pointer associated with said selected file that will result from responding to a plurality of said pending write requests, ii) executing at least one write operation to write data associated with said plurality of pending write requests, and iii) executing an update operation for updating at least one of said inode means and said indirect block means associated with said selected file, to include said informational status and said data file extension pointer in accord with said determining step, D. executing an acknowledgement operation, acknowledging to said one or more client devices completion of said pending write requests, only after completion of said combining step, in accord with said stateless protocol.
Claim 2
Dependent Claim
384 words
In a method for operating a digital data processing system in a stateless protocol environment, said digital processing system including at least one file server for storing and providing selective access to digital data files, and at least one client device, coupled to and communication with said file server, said at least one client device including request means for generating a request to write data to at least a selected one of said digital data files, said file server including inode means for storing an informational status associated with at least selected ones of said digital data files, indirect block means for storing a data file extension pointer associated with at least selected ones of said files, response means for responding to said write request by executing (i) a write operation to write data associated with said request to said selected digital data file, (ii) an update operation for updating, in connection with said write operation, at least one of said inode means and indirect block means associated with said file, and (iii) an acknowledgement operation for acknowledging, to said client device, said write request, only after completion of said associated write and update operations, the improvement comprising the steps of A. detecting, in said file server, multiple simultaneously pending write requests received from one or more of said client devices and directed to said selected digital data file, B. combining those multiple simultaneously pending write requests to eliminate at least one of said write and update operations associated therewith, C. said combining step including the further steps of i) determining at least one of an informational status and a data file extension pointer associated with said selected file that will result from responding to a plurality of said pending write requests, ii) executing at least one write operation to write data associated with said plurality of pending write requests, and iii) executing an update operation for updating at least one of said inode means and said indirect block means associated with said selected file, to include said informational status and said data file extension pointer in accord with said determining step, D. executing an acknowledgement operation, acknowledging to said one or more client devices completion of said pending write requests, only after completion of said combining step, in accord with said stateless protocol.
Claim 3
Dependent Claim
61 words
A method according to claim 1, the further improvement wherein said detecting and combining steps collectively include the steps of commencing execution of at least a first pending write request, wherein said commencing includes executing at least one write operation corresponding at least to said first pending request, and testing for additional pending write requests upon completion of said write operation.
Claim 4
Dependent Claim
22 words
A method according to claim 1, the further improvement comprising the step of executing said combined write requests in a batch operation.
Claim 5
Dependent Claim
275 words
In a method according to claim 1 wherein said file server further includes data storage means including a plurality of storage locations for storing each of said digital data files in plural ones of said storage locations particularly allocated to each of said digital data files, and the further improvement comprising the steps of A. detecting a plurality of pending write requests directed to substantially sequential ones of said storage locations already allocated to said data file, B. pre-allocating, in response to said detection of said pending write requests directed to substantially sequential storage locations, a selected number of storage locations following a last storage location of said selected digital data file in anticipation of subsequent write requests directed to those newly pre-allocated storage locations, wherein said selected number of storage locations is larger than would otherwise be necessary to write data associated with said pending write requests directed to substantially sequential storage locations, and C. wherein said pre-allocating includes the additional steps of i) executing a determining step to determine at least one of an informational status and a data file extension pointer associated with said selected digital data file that will result from extending said selected data file by said selected number of storage locations, and ii) executing an update operation for updating at least one of said inode means and said indirect block means associated with said selected digital data file, to include said informational status and said data file extension pointer of said determining step, and D. executing at least one write operation and at least one acknowledgment operation associated with said pending write requests directed to substantially sequential storage locations.
Claim 6
Dependent Claim
58 words
A method according to claim 4, the further improvement comprising the step of maintaining a first bit mask, said first bit mask including a set of bits, said set being representative of written storage locations in said selected data file, said written storage locations being bounded by a first written storage location and a last written storage location.
Claim 7
Dependent Claim
60 words
A method according to claim 5, the further improvement wherein said maintaining step includes the step of maintaining a second bit mask, said second bit mask including a set of bits representative of said storage locations pre-allocated to said selected data file, said pre-allocated storage locations being bounded by a first pre-allocated storage location and a second pre-allocated storage location.
Claim 8
Dependent Claim
64 words
A method according to claim 6, the further improvement comprising the steps of A. comparing said first and second bit masks to determine which of said storage locations pre-allocated to said selected data file have not been written to, and B. writing zeros to said unwritten storage locations in a storage region between said first written storage location and said last written storage location.
Claim 9
Dependent Claim
36 words
A method according to claim 6, the further improvement comprising the steps of A. detecting substantially non-sequential write requests, received subsequent to said pre-allocation, and B. responding to said non-sequential write requests by inhibiting further pre-allocation.
Claim 10
Dependent Claim
155 words
A method according to claim 8, further improvement comprising the steps of A. following detection of said non-sequential write requests, reading said first and second bit masks, B. comparing said first and second bit masks to detect storage locations pre-allocated to said selected data file while have not been written to, and C. de-allocating, in response to said detection of said non-sequential write requests, storage locations, in a storage region between said last written storage location and said last pre-allocated storage location, D. executing a determining step to determine at least one of an informational status and a data file extension pointer associated with said selected data file resulting from said de-allocating, and E. executing an update operation for updating at least one of said inode means and said indirect block means associated with said selected data file, to include said informational status and said data file extension pointer in accord with said determining step.
Claim 11
Dependent Claim
418 words
In a method for operating a digital data processing system in a stateless protocol environment, said digital processing system including at least one file server for storing and providing selective access to digital data files, and at least one client device, coupled to and in communication with said file server, said at least one client device including request means for generating a request to write data to at least a selected one of said digital data files, said file server including data storage means including a plurality of storage locations for storing each of said digital data files in plural ones of said storage locations particularly allocated to each of said digital data files, inode means for storing an informational status associated with at least selected ones of said digital data files, indirect block means for storing a data file extension pointer associated with at least selected ones of said files, response means for responding to said write request by executing (i) a write operation to write data associated with said request to said selected digital data file, (ii) an update operation for updating, in connection with said write operation, at least one of said inode means and said indirect block means associated with said file, and (iii) an acknowledgment operation for acknowledging, to said client device, said write request, only after completion of said associated write and update operations, the improvement comprising the steps of A. detecting a plurality of pending write requests directed to substantially sequential ones of said storage locations already allocated to said data file, B. pre-allocating, in response to said detection, a selected number of storage locations following a last storage location of said data file in anticipation of subsequent write requests directed to those newly pre-allocated storage locations, wherein said selected number of storage locations is larger than would otherwise be necessary to write data associated with said detected pending write requests, C. said pre-allocating including i) determining at least one of an informational status and a data file extension pointer associated with said selected data file that will result from extending said data file by said selected number of storage locations, and ii) executing an update operation for updating at least one of said inode means and said indirect block means associated with said data file, to include said informational status and said data file extension pointer of said determining step, and D. executing at least one write operation and at least one acknowledgement operation associated with said pending write requests.
Claim 12
Dependent Claim
418 words
In a method for operating a digital data processing system in a stateless protocol environment, said digital processing system including at least one file server for storing and providing selective access to digital data files, and at least one client device, coupled to and in communication with said file server, said at least one client device including request means for generating a request to write data to at least a selected one of said digital data files, said file server including data storage means including a plurality of storage locations for storing each of said digital data files in plural ones of said storage locations particularly allocated to each of said digital data files, inode means for storing an informational status associated with at least selected ones of said digital data files, indirect block means for storing a data file extension pointer associated with at least selected ones of said files, response means for responding to said write request by executing (i) a write operation to write data associated with said request to said selected digital data file, (ii) an update operation for updating, in connection with said write operation, at least one of said inode means and said indirect block means associated with said file, and (iii) an acknowledgment operation for acknowledging, to said client device, said write request, only after completion of said associated write and update operations, the improvement comprising the steps of A. detecting a plurality of pending write requests directed to substantially sequential ones of said storage locations already allocated to said data file, B. pre-allocating, in response to said detection, a selected number of storage locations following a last storage location of said data file in anticipation of subsequent write requests directed to those newly pre-allocated storage locations, wherein said selected number of storage locations is larger than would otherwise be necessary to write data associated with said detected pending write requests, C. said pre-allocating including i) determining at least one of an informational status and a data file extension pointer associated with said selected data file that will result from extending said data file by said selected number of storage locations, and ii) executing an update operation for updating at least one of said inode means and said indirect block means associated with said data file, to include said informational status and said data file extension pointer of said determining step, and D. executing at least one write operation and at least one acknowledgement operation associated with said pending write requests.
Claim 13
Dependent Claim
36 words
A method according to claim 10, the further improvement comprising the steps of A. detecting substantially non-sequential write requests, received subsequent to said pre-allocation, and B. responding to said non-sequential write requests by inhibiting further pre-allocation.
Claim 14
Dependent Claim
54 words
A method according to claim 11, the further improvement comprising the step of maintaining a first bit mask including a set of bits, said set being representative of written storage locations in said selected data file, said written storage locations being bounded by a first written storage location and a last written storage location.
Claim 15
Dependent Claim
60 words
A method according to claim 12, the further improvement wherein said maintaining step includes the steps of maintaining a second bit mask, said second bit mask including a set of bits representative of said storage locations pre-allocated to said selected data file, said pre-allocated storage locations being bounded by a first pre-allocated storage location and a second pre-allocated storage location.
Claim 16
Dependent Claim
155 words
A method according to claim 13, the further improvement comprising the steps of A. following detection of said non-sequential write requests, reading said first and second bit masks, B. comparing said first and second bit masks to detect storage locations pre-allocated to said selected data file have not been written to, and C. de-allocating, in response to said detection of said non-sequential write requests, storage locations, in a storage region between said last written storage location and said last pre-allocated storage location, D. executing a determining step to determine at least one of an informational status and a data file extension pointer associated with said selected data file resulting from said de-allocating, and E. executing an update operation for updating at least one of said inode means and said indirect block means associated with said selected data file, to include said informational status and said data file extension pointer in accord with said determining step.
Claim 17
Dependent Claim
375 words
In a method for operating a digital data processing system in a stateless protocol environment, said digital processing system including at least one file server for storing and providing selective access to digital data files, and at least one client device, coupled to and in communication with said file server, said at least one client device including request means for generating a request to write data to at least a selected one of said digital data files, said file server including `data storage means comprising a plurality of storage locations for storing said digital data files, inode means for storing an informational status associated with at least selected ones of said digital data files, indirect block means for storing a data extension pointer associated with at least selected ones of said files, response means for responding to said requests to write data by executing (i) a write operation to write data associated with said request to said selected digital data file, (ii) an update operation for updating, in connection with said write operation, said inode means associated with said file, and (iii) an acknowledgment operation for acknowledging said client device, said write request, only after completion of said write and update operations, the improvement comprising the steps of A. detecting, in said file server, multiple pending write requests received from one or more of said client devices and directed to said selected data file, B. creating a shadow inode at a location proximate to said selected data file, C. copying said informational status associated with said selected data file from the inode means associated therewith to said shadow inode, D. responding to said pending write requests by i) executing at least selected write operations to write data associated with said pending write requests, ii) executing at least selected update operations for updating, in connection with said write operations, said informational status stored in said shadow inode, E. following said responding step, copying said informational status from said shadow inode to said inode means associated with said selected digital file, and F. executing an acknowledgment operation, acknowledging to said one or more client devices completion of said pending write requests, only after completion of said copying of said informational status, in accord with said stateless protocol.
Claim 18
Dependent Claim
375 words
In a method for operating a digital data processing system in a stateless protocol environment, said digital processing system including at least one file server for storing and providing selective access to digital data files, and at least one client device, coupled to and in communication with said file server, said at least one client device including request means for generating a request to write data to at least a selected one of said digital data files, said file server including `data storage means comprising a plurality of storage locations for storing said digital data files, inode means for storing an informational status associated with at least selected ones of said digital data files, indirect block means for storing a data extension pointer associated with at least selected ones of said files, response means for responding to said requests to write data by executing (i) a write operation to write data associated with said request to said selected digital data file, (ii) an update operation for updating, in connection with said write operation, said inode means associated with said file, and (iii) an acknowledgment operation for acknowledging said client device, said write request, only after completion of said write and update operations, the improvement comprising the steps of A. detecting, in said file server, multiple pending write requests received from one or more of said client devices and directed to said selected data file, B. creating a shadow inode at a location proximate to said selected data file, C. copying said informational status associated with said selected data file from the inode means associated therewith to said shadow inode, D. responding to said pending write requests by i) executing at least selected write operations to write data associated with said pending write requests, ii) executing at least selected update operations for updating, in connection with said write operations, said informational status stored in said shadow inode, E. following said responding step, copying said informational status from said shadow inode to said inode means associated with said selected digital file, and F. executing an acknowledgment operation, acknowledging to said one or more client devices completion of said pending write requests, only after completion of said copying of said informational status, in accord with said stateless protocol.
References Cited (Backward Citations)
CA971285A
Cited
US3806888A
Cited
US4429363A
Cited
EP0205965A2
Cited
US4742450A
Cited
US4742447A
Cited
US4761737A
Cited
US4811216A
Cited
US4918588A
Cited
US5001628A
Cited
US4887204A
Cited
US4897781A
Cited
US4875159A
Cited
US4977582A
Cited
US4942574A
Cited
US4993030A
Cited
US5036518A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1996-06-07 | 1996-12-07 | 1997-06-08 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2000-06-07 | 2000-12-07 | 2001-06-08 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2004-06-07 | 2004-12-07 | 2005-06-08 | $7700.00 | Window Closed / Lapsed |