WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for network file recovery    
United States Patent5594863   
Link to this pagehttp://www.wikipatents.com/5594863.html
Inventor(s)Stiles; Ian J. (Salem, UT)
AbstractA method and apparatus for assisting in file recovery after a network fault uses a block state indicator in a client cache. After file data is stored in the client cache, the block state indicator is set to a client-cached state. After the file data is stored in a server cache, the block state indicator is set to a server-cached state. After the file data is stored in a non-volatile store attached to the server, the block state indicator is set to a stored state. If the data in server cache is lost or compromised due to a network fault, the data maintained in client memory is retransmitted. In a similar manner, file locks and file semaphores are re-established after a network fault.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5594863
Method and apparatus for network file recovery - US Patent 5594863 Drawing
Method and apparatus for network file recovery
Inventor     Stiles; Ian J. (Salem, UT)
Owner/Assignee     Novell, Inc. (Orem, UT)
Patent assignment
All assignments
Publication Date     January 14, 1997
Application Number     08/494,919
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 26, 1995
US Classification     714/15
Int'l Classification     G01R 031/28 G06F 011/00
Examiner     Beausoliel Jr.; Robert W.
Assistant Examiner     Snyder; Glenn
Attorney/Law Firm     Computer Law
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/182.13 395/182.14 364/243.41
Patent Tags     network file recovery
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5542066
Mattson
711/136
Jul,1996

[0 after 0 votes]
5513314
Kandasamy
714/6
Apr,1996

[0 after 0 votes]
5504883
Coverston
707/202
Apr,1996

[0 after 0 votes]
5493728
Solton
711/113
Feb,1996

[0 after 0 votes]
5488731
Mendelsohn
711/114
Jan,1996

[0 after 0 votes]
5452447
Nelson

Sep,1995

[0 after 0 votes]
5408644
Schneider
714/1
Apr,1995

[0 after 0 votes]
5386540
Young

Jan,1995

[0 after 0 votes]
5353410
Macon, Jr.
711/144
Oct,1994

[0 after 0 votes]
5295259
Horne

Mar,1994

[0 after 0 votes]
5276867
Kenley
707/204
Jan,1994

[0 after 0 votes]
5276840
Yu
710/35
Jan,1994

[0 after 0 votes]
5261051
Masden
711/152
Nov,1993

[0 after 0 votes]
5257370
Letwin
711/113
Oct,1993

[0 after 0 votes]
5218695
Noveck

Jun,1993

[0 after 0 votes]
5202969
Sato
711/143
Apr,1993

[0 after 0 votes]
5193162
Bordsen

Mar,1993

[0 after 0 votes]
5157663
Major
714/10
Oct,1992

[0 after 0 votes]
5155824
Edenfield
711/143
Oct,1992

[0 after 0 votes]
5119485
Ledbetter, Jr.
711/146
Jun,1992

[0 after 0 votes]
5113519
Johnson
707/201
May,1992

[0 after 0 votes]
5097409
Schwartz
711/145
Mar,1992

[0 after 0 votes]
4989134
Shaw
707/206
Jan,1991

[0 after 0 votes]
4939641
Schwartz
711/146
Jul,1990

[0 after 0 votes]
4858111
Steps
711/143
Aug,1989

[0 after 0 votes]
4819159
Shipley
714/19
Apr,1989

[0 after 0 votes]
4755930
Wilson, Jr.
711/122
Jul,1988

[0 after 0 votes]
4713755
Worley, Jr.
711/123
Dec,1987

[0 after 0 votes]
4622631
Frank
707/201
Nov,1986

[0 after 0 votes]
4164017
Randell
714/15
Aug,1979

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed and desired to be secured by patent is:

1. A method for assisting the recovery of files in a computer network after a network fault occurs, the network including a file server and a client connected to the file server, the client including a client cache data block and a corresponding client block state indicator, the file server including a server cache data block and a non-volatile store, the non-volatile store including a controller and a non-volatile medium, said method comprising the following steps in the order indicated:

client-caching a specified piece of file data by writing the file data to the client cache data block;

indicating that client-caching is complete by updating the client block state indicator;

server-caching the file data by writing the file data to the server cache data block;

indicating that server-caching is complete by updating the client block state indicator;

requesting storage of the file data by writing the file data to the controller in the file server;

receiving an acknowledgement from the controller that the file data has been stored on the non-volatile medium; and

indicating that storing is complete by updating the client block state indicator.

2. The method of claim 1, further comprising the steps of:

reconnecting the client to the file server after the network fault occurs;

determining that the client block state indicator indicates that server-caching is complete and that storing is not complete; and

changing the client block state indicator to indicate instead that client-caching is complete and that server-caching is not complete.

3. The method of claim 2, wherein said reconnecting step is followed by the step of re-establishing a client directory with the server.

4. The method of claim 2, wherein said reconnecting step is followed by the step of re-opening a file that is stored on the server store.

5. The method of claim 2, wherein said reconnecting step is followed by the step of creating a new instance of a file that is stored on the server store.

6. The method of claim 2, wherein said reconnecting step is followed by the step of truncating a file that is stored on the server store.

7. The method of claim 1, wherein the network fault occurs after said step of indicating that server-caching is complete and before said step of indicating that storing is complete, and wherein said method further comprises the following steps after said step of indicating that server-caching is complete and before said step of indicating that storing is complete:

reconnecting the client to the file server; and then

trying again to store the file data by performing said steps of server-caching, indicating that server-caching is complete, requesting storage, and receiving an acknowledgement, regardless of whether any of said steps were also performed before the network fault occurred.

8. The method of claim 1, wherein said client-caching step occurs in response to a disk write-through requesting step by a process that resides on the client, and said method further comprises the steps of:

suspending execution of the process after said disk write-through requesting step; and

resuming execution of the process after said step of indicating that storing is complete.

9. The method of claim 8, further comprising the step of sending the file server a rush signal corresponding to the file data, the rush signal being sent before said resuming step.

10. The method of claim 1, wherein the file data is destined for storage in a file on the non-volatile medium in the file server, and said method further comprises the steps of:

storing an instance identification of the file on the non-volatile medium in the file server;

updating an instance identification of the file in the client cache after said server-caching step; and

comparing the instance identification in the client cache with the instance identification stored on the non-volatile medium after a network fault occurs to determine whether the instance identifications correspond to one another.

11. The method of claim 10, further comprising the step of updating the instance identification stored on the non-volatile medium after said step of receiving an acknowledgement from the controller, said updating making the instance identification on the non-volatile medium correspond to the instance identification in the client cache.

12. The method of claim 10, wherein said steps of storing an instance identification and updating an instance identification comprise storing a modification count and updating a modification count, respectively.

13. The method of claim 10, wherein said comparing step determines that the instance identifications do not correspond to one another and that the file was not modified after the network fault occurred, and wherein said method further comprises the step of trying again to store the file data by performing said steps of server-caching, indicating that server-caching is complete, requesting storage, and receiving an acknowledgement, regardless of whether any of said steps were also performed before the network fault occurred.

14. The method of claim 10, wherein said comparing step determines that the instance identifications do not correspond to one another and that the file was modified after the network fault occurred, and wherein said method further comprises the step of storing the file data in a new instance of at least a portion of the file.

15. The method of claim 14, wherein said step of storing the file data in a new instance comprises performing said steps of server-caching, indicating that server-caching is complete, requesting storage, and receiving an acknowledgement, regardless of whether any of said steps were also performed before the network fault occurred.

16. The method of claim 1, wherein the file data is destined for storage in a file on the non-volatile medium in the file server, and said method further comprises the steps of:

storing a lock identification of the file in the client, the lock identification identifying at least one lock region of the file;

reconnecting the client to the file server after a network fault occurs; and then

relocking the lock region of the file.

17. The method of claim 16, wherein said relocking step is followed by the steps of:

determining that the client block state indicator indicates than server-caching is complete and that storing is not complete; and

changing the client block state indicator to indicate instead that client-caching is complete and that server-caching is not complete.

18. The method of claim 16, wherein said relocking step is followed by the step of performing said steps of server-caching, indicating that server-caching is complete, requesting storage, and receiving an acknowledgement, regardless of whether any of said steps were also performed before the network fault occurred.

19. The method of claim 1, further comprising the steps of:

storing a semaphore identification in the client, the semaphore identification identifying at least one resource which is claimed by a process residing on the client;

reconnecting the client to the file server after a network fault occurs; and then

resubmitting the semaphore identification to the file server to reclaim at least one resource after a network fault occurs.

20. An apparatus for assisting the recovery of files in a computer network after a network fault occurs, said apparatus comprising:

a file server having a non-volatile store;

a client connected to the file server by at least a portion of the network;

a client cache in the client, the client cache including a client cache data block for holding a piece of file data and a corresponding block state indicator;

a server cache in the server, the server cache including a server cache data block for holding the file data and a corresponding dirty flag;

client-cached updating means for updating the block state indicator to indicate that client-caching is complete after the file data is written to the client cache data block;

server-cached updating means for updating the block state indicator to indicate that server-caching is complete after the file data is written to the server cache data block; and

server-stored updating means for updating the block state indicator to indicate that server-storing is complete after the file data is written to the server store.

21. The apparatus of claim 20, further comprising:

means for reconnecting the client to the file server after the network fault occurs;

means for determining that the block state indicator indicates that server-caching is complete and that storing is not complete; and

means for changing the client block state indicator to indicate instead that client-caching is complete and that server-caching is not complete.

22. The apparatus of claim 21, further comprising means for creating a new instance of a file that is stored on the server store.

23. The apparatus of claim 20, further comprising:

means for reconnecting the client to the file server and

means for flushing the file data from the client cache through the server cache to the server store.

24. The apparatus of claim 20, further comprising:

disk write-through requesting means capable of being called by a process that resides on the client;

means for suspending execution of the process in response to a call to said disk write-through requesting means; and

means for resuming execution of the process after storing of the file data on the server store is complete.

25. The apparatus of claim 24, further comprising means for sending the file server a rush signal corresponding to the file data.

26. The apparatus of claim 20, further comprising:

means for storing an instance identification of the file on a non-volatile medium in the file server;

means for updating an instance identification of the file in the client cache after server-caching the file data; and

means for comparing the instance identification in the client cache with the instance identification stored on the non-volatile medium after a network fault occurs to determine if the instance identifications correspond to one another.

27. The apparatus of claim 26, further comprising means for updating the instance identification stored on the non-volatile medium after receiving an acknowledgement that the file data is stored on the server store, such that the instance identification on the non-volatile medium corresponds to the instance identification in the client cache.

28. The apparatus of claim 26, wherein said means for storing an instance identification and said means for updating an instance identification comprise means for storing a modification count and means for updating a modification count, respectively.

29. The apparatus of claim 26, further comprising means for flushing the file data from the client cache through the server cache to the server store.

30. The apparatus of claim 26, further comprising means for storing the file data in a new instance of at least a portion of the file.

31. The apparatus of claim 20, further comprising:

means for storing a lock identification of a file in the client, the lock identification identifying at least one lock region of the file;

means for reconnecting the client to the file server after a network fault occurs; and

means for relocking the lock region of the file.

32. The apparatus of claim 31, wherein said means for relocking comprises:

means for determining that the block state indicator indicates that server-caching is complete and that storing is not complete; and

means for changing the block state indicator to indicate instead that client-caching is complete and that server-caching is not complete.

33. The apparatus of claim 31, further comprising means for flushing the file data from the client cache through the server cache to the server store.

34. The apparatus of claim 20, further comprising:

means for storing a semaphore identification in the client, the semaphore identification identifying at least one resource which is claimed by a process residing on the client;

means for reconnecting the client to the file server after a network fault occurs; and

means for resubmitting the semaphore identification to the file server to reclaim at least one resource after a network fault occurs.

35. A computer-readable storage medium having a configuration that represents data and instructions which cause a client and a file server to perform method steps for assisting the recovery of files after a network fault occurs, the client connected to the server in a computer network, the client including a client cache data block and a corresponding client block state indicator, the file server including a server cache data block and a non-volatile store, the non-volatile store including a controller and a non-volatile medium, the method comprising the following steps in the order indicated:

client-caching a specified piece of file data by writing the file data to the client cache data block;

indicating that client-caching is complete by updating the client block state indicator;

server-caching the file data by writing the file data to the server cache data block;

indicating that server-caching is complete by updating the client block state indicator;

requesting storage of the file data by writing the file data to the controller in the file server;

receiving an acknowledgement from the controller that the file data has been stored on the non-volatile medium; and

indicating that storing is complete by updating the client block state indicator.

36. The storage medium of claim 35, further comprising the steps of:

storing a semaphore identification in the client, the semaphore identification identifying at least one resource which is claimed by a process residing on the client;

reconnecting the client to the file server after a network fault occurs; and then

submitting the semaphore identification to the file server to reclaim at least one resource after a network fault occurs.

37. The storage medium of claim 35, further comprising the steps of:

reconnecting the client to the file server after the network fault occurs;

determining that the client block state indicator indicates that server-caching is complete and that storing is not complete; and

changing the client block state indicator to indicate instead that client-caching is complete and that server-caching is not complete.

38. The storage medium of claim 37, wherein the reconnecting step is followed by the step of re-establishing a client directory with the server.

39. The storage medium of claim 37, wherein the reconnecting step is followed by the step of re-opening a file that is stored on the server store.

40. The storage medium of claim 37, wherein the reconnecting step is followed by the step of creating a new instance of a file that is stored on the server store.

41. The storage medium of claim 37, wherein the reconnecting step is followed by the step of truncating a file that is stored on the server store.

42. The storage medium of claim 35, wherein the network fault occurs after the step of indicating that server-caching is complete and before the step of indicating that storing is complete, and wherein the method further comprises the following steps after the step of indicating that server-caching is complete and before the step of indicating that storing is complete:

reconnecting the client to the file server; and then

trying again to store the file data by performing the steps of server-caching, indicating that server-caching is complete, requesting storage, and receiving an acknowledgement, regardless of whether any of those steps were also performed before the network fault occurred.

43. The storage medium of claim 35, wherein the client-caching step occurs in response to a disk write-through requesting step by a process that resides on the client, and the method further comprises the steps of:

suspending execution of the process after the disk write-through requesting step; and

resuming execution of the process after the step of indicating that storing is complete.

44. The storage medium of claim 43, further comprising the step of sending the file server a rush signal corresponding to the file data, the rush signal being sent before the resuming step.

45. The storage medium of claim 35, wherein the file data is destined for storage in a file on the non-volatile medium in the file server, and the method further comprises the steps of:

storing an instance identification of the file on the non-volatile medium in the file server;

updating an instance identification of the file in the client cache after the server-caching step; and

comparing the instance identification in the client cache with the instance identification stored on the non-volatile medium after a network fault occurs to determine whether the instance identifications correspond to one another.

46. The storage medium of claim 45, further comprising the step of updating the instance identification stored on the non-volatile medium after the step of receiving an acknowledgement from the controller, the updating making the instance identification on the non-volatile medium correspond to the instance identification in the client cache.

47. The storage medium of claim 45, wherein the steps of storing an instance identification and updating an instance identification comprise storing a modification count and updating a modification count, respectively.

48. The storage medium of claim 45, wherein the comparing step determines that the instance identifications do not correspond to one another and that the file was not modified after the network fault occurred, and wherein the method further comprises the step of trying again to store the file data by performing the steps of server-caching, indicating that server-caching is complete, requesting storage, and receiving an acknowledgement, regardless of whether any of those steps were also performed before the network fault occurred.

49. The storage medium of claim 45, wherein the comparing step determines that the instance identifications do not correspond to one another and that the file was modified after the network fault occurred, and wherein the method further comprises the step of notifying a user that the file was modified.

50. The storage medium of claim 45, wherein the comparing step determines that the instance identifications do not correspond to one another and that the file was modified after the network fault occurred, and wherein the method further comprises the step of storing the file data in a new instance of at least a portion of the file.

51. The storage medium of claim 50, wherein the step of storing the file data in a new instance comprises performing the steps of server-caching, indicating that server-caching is complete, requesting storage, and receiving an acknowledgement, regardless of whether any of those steps were also performed before the network fault occurred.

52. The storage medium of claim 35, wherein the file data is destined for storage in a file on the non-volatile medium in the file server, and the method further comprises the steps of:

storing a lock identification of the file in the client, the lock identification identifying at least one lock region of the file;

reconnecting the client to the file server after a network fault occurs; and then

relocking the lock region of the file.

53. The storage medium of claim 52, wherein the relocking step is followed by the steps of:

determining that the client block state indicator indicates that server-caching is complete and that storing is not complete; and

changing the client block state indicator to indicate instead that client-caching is complete and that server-caching is not complete.

54. The storage medium of claim 52, wherein the relocking step is followed by the step of performing the steps of server-caching, indicating that server-caching is complete, requesting storage, and receiving an acknowledgement, regardless of whether any of those steps were also performed before the network fault occurred.
 Description Submit all comments and votes
 


COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material which is subject t