Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
 

How To Determine Which Cell Service Is Best For You
Category:
Business  

A Short History of the Wristwatch
Category:
Business  

Growing Your Own Herbs
Category:
Home And Family  

Herbal Acne Home Cures
Category:
Health / Fitness  

Creating Fresh Content for Search Engines
Category:
Marketing  

That Talking Thing will either make or break a relationship
Category:
Home And Family  

Avoid the Most Common Mistakes in Affiliate Marketing
Category:
Business  

Know the Signs of Childhood Asthma
Category:
Health / Fitness  

The Easiest Weight Loss Program Ever
Category:
Health / Fitness  

How to Expand your Business by Leaps and Bounds
Category:
Business  

Personal Accident Claim The Successful Route
Category:
Business  

Free Advertising
Category:
Marketing  

Free Advertising
Category:
Marketing  

Chicken and the Egg
Category:
Business  

Herbs for hair growth
Category:
Health / Fitness  

Organic Gardening
Category:
Home And Family  

Does Your Cleaning Business Have a Mission Statement
Category:
Business  

Internet Banking Are you online
Category:
Finance / Investment  

3 Things All Affiliate Marketers Need To Survive Online
Category:
Marketing  

How to use your subject to grab the attention of your optin news...
Category:
Marketing  

Choosing the Right Network Marketing Company 4 surprising steps
Category:
Marketing  

Diabetic diet plan guide
Category:
Health / Fitness  

6 POWERFUL VRE Business Models You Can Start Building In 2006 Us...
Category:
Business  

Free Cell Phone Ring Tones Jingling Vibes For Any Occasion
Category:
Entertainment / Television  

Free Ringtone Downloads Dazzling Tunes For Your Pleasure
Category:
Entertainment / Television  

Why choose MLM Leads
Category:
Business  

Vending Machines provide an excellent income
Category:
Business  

Discovers The Secret To The Most Popular Way Of Making Money
Category:
Business  

Internet Marketing Information Overload
Category:
Marketing  

Your New Cat Why Are the First 24 Hours So Important Part 3
Category:
Home And Family  

SearchInform 3 0 Consolidating information from various sources
Category:
Computers  

Health Insurance How to Find An Affordable Quote
Category:
Home And Family  

Brand You The Top Five Ways To Build Your Brand Online
Category:
Marketing  

Acne Treatment
Category:
Health / Fitness  

Home Business Entrepreneurs Banking On Increased Income
Category:
Business  

Hypnotherapy in Bedfordshire
Category:
Health / Fitness  

An Alaska Cruise Offers Unlimited Fun
Category:
Travel  

Guide To Ceiling Fan Blades
Category:
Home And Family  

Personal Injury Specialist No Win No Fee
Category:
Finance / Investment  

reduce tension
Category:
Business  

How to Use Free Articles to Create Massive Traffic Within Minute...
Category:
Marketing  

LASIK a Cure for Blurry Vision
Category:
Health / Fitness  

The Truth About Debt Consolidation
Category:
Business  

Don t Wait for a Mate Feather Your Nest Now Part 2
Category:
Home And Family  

Hawaii Vacation Accommodation and Holiday Homes in Oahu Maui Kau...
Category:
Travel  

Mortgage Lenders Making The Right Choice
Category:
Business  

Hawaii Vacation Accommodation and Holiday Homes in Oahu Maui Kau...
Category:
Travel  

Changing Face Of Holidays In The UK
Category:
Travel  

Make Your Business Memorable with Business Cards
Category:
Marketing  

Network Marketing The Organic Way
Category:
Marketing  

8 Ways to Grow Your Business During a Summer Lull
Category:
Marketing  

You Don t Need to be a Computer Scientist to Profit Online
Category:
Marketing  

Information Retrieval Systems IRS and Search Engines SEO
Category:
Marketing  

Plasma TVs are Hot
Category:
Computers  

The Top Providers on the Web
Category:
Health / Fitness  

Winning the Skin War Best Acne Skin Care
Category:
Health / Fitness  

Boost Your Income and Hits Today
Category:
Business  

Bad Credit Loans Made Easier by Pre Approval
Category:
Business  

Vitamin supplements by Nguang Nguek Fluek
Category:
Health / Fitness  

How you Can Save Money if you Book Hotels in Central Rome
Category:
Travel  

Universal Life Insurance guide 101
Category:
Finance / Investment  

FINE or VICE Cash Loans
Category:
Finance / Investment  

Why Blogs are so popular
Category:
Marketing  

Office Supplies and Client Relation
Category:
Business  

Buying a Hidden Spy Camera
Category:
Business  

Understanding Flower Bulbs
Category:
Home And Family  

Parenting 101 Get Into a Parenting Class
Category:
Home And Family  

Lanzarote Tourist
Category:
Travel  

A Visitors Guide to Paris France
Category:
Travel  

Personal Accounts Choosing Your Bank
Category:
Business  

Protect Yourself Against Viruses
Category:
Computers  

Acne A Clean Face First Step In A 12 Step Program
Category:
Health / Fitness  

Inspiring Chicago Musical
Category:
Entertainment / Television  

VOIP security guide
Category:
Computers  

Three Reasons For Becoming A Foster Parent
Category:
Home And Family

Management of the file-modification time attribute in a multi-processor file server system Number:7,412,496 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: Management of the file-modification time attribute in a multi-processor file server system

Abstract: To permit multiple unsynchronized processors to update the file-modification time attribute of a file during concurrent asynchronous writes to the file, a primary processor having a clock manages access to metadata of the file. A number of secondary processors service client request for access to the file. Each secondary processor has a timer. When the primary processor grants a range lock upon the file to a secondary, it returns its clock time (m). Upon receipt, the secondary starts a local timer (t). When the secondary modifies the file data, it determines a file-modification time that is a function of the clock time and the timer interval, such as a sum (m+t). When the secondary receives an updated file-modification time (mp) from the primary, if mp>m+t, then the secondary updates the clock time (m) to (mp) and resets its local timer.

Patent Number: 7,412,496 Issued on 08/12/2008 to Fridella,   et al.


Inventors: Fridella; Stephen A (Newton, MA), Ma; Gang (Shrewsbury, MA), Jiang; Xiaoye (Shrewsbury, MA), Faibish; Sorin (Newton, MA), Liang; Rui (Natick, MA)
Assignee: EMC Corporation (Hopkinton, MA)
Appl. No.: 10/645,976
Filed: August 22, 2003


Current U.S. Class: 709/219 ; 709/203; 709/217; 709/225; 709/229
Current International Class: G06F 15/16 (20060101); G06F 15/173 (20060101)
Field of Search: 709/203,217,219,224,225,229


References Cited [Referenced By]

U.S. Patent Documents
5226159 July 1993 Henson et al.
5734898 March 1998 He
5852747 December 1998 Bennett et al.
5940841 August 1999 Schmuck et al.
5944789 August 1999 Tzelnic et al.
6088694 July 2000 Burns et al.
6192408 February 2001 Vahalia et al.
6324581 November 2001 Xu et al.
6687735 February 2004 Logston et al.
7139811 November 2006 Lev Ran et al.
2002/0188667 December 2002 Kirnos
2004/0215746 October 2004 McCanne et al.

Other References

Cellera File Server in the E-Infostructure, EMC Corporation, Hopkinton, MA, 2000 (12 pages). cited by other .
EMC Celerra HighRoad, EMC Corporation, Hopkinton, MA, Jan. 2002 (12 pages). cited by other .
B. Callaghan et al., NFS Version 3 Protocol Specification, RFC 1813, Sun Microsystems, Inc., Jun. 1995, pp. 1-126. cited by other .
S. Shepler et al., NFS Version 4 Protocol Specification, RFC 3530, Sun Microsystems, Inc., Apr. 2003, pp. 1-245. cited by other.

Primary Examiner: Nguyen; Quang N.
Attorney, Agent or Firm: Auchterlonie; Richard Novak Druce & Quigg, LLP

Claims



What is claimed is:

1. In a file server system having a clock for producing a clock time and a processor for servicing client requests for access to a file, the processor having a timer for measuring a time interval, a method comprising: the processor obtaining the clock time from the clock, and beginning measurement of the time interval with the timer, and the processor responding to a request from a client for an asynchronous write to the file by performing an asynchronous write operation with respect to the file, and determining a file-modification time that is a function of the clock time having been obtained from the clock and the time interval measured by the timer, the file-modification time indicating a time of modification of the file by the asynchronous write operation.

2. The method as claimed in claim 1, wherein the file-modification time is a sum of the clock time having been obtained from the clock and the time interval measured by the timer.

3. The method as claimed in claim 1, which includes the processor acknowledging the request from the client for an asynchronous write to the file by returning to the client the file-modification time.

4. The method as claimed in claim 1, which further includes the processor receiving an updated value for the file-modification time after the processor has determined a value for the file-modification time, the processor comparing the updated value to the value that the processor has determined for the file-modification time, and upon finding that the updated value for the file-modification time is greater than the value that the processor has determined for the file-modification time, then the processor resetting the timer and using the updated value for the file-modification time in lieu of the clock time obtained from the clock.

5. The method as claimed in claim 4, wherein the processor stores the clock time having been obtained from the clock in a memory location local to the processor, and the processor uses the updated value for the file-modification time in lieu of the clock time obtained from the clock by replacing the clock time having been obtained from the clock and stored in the memory location local to the processor with the updated value for the file-modification time.

6. The method as claimed in claim 1, which further includes the processor receiving an updated value for the file-modification time after the processor has determined a value for the file-modification time, the processor comparing the updated value for the file-modification time to the value that the processor has determined for the file-modification time, and upon finding the updated value for the file-modification time is less than the value that the processor has determined for the file-modification time, then the processor ignoring the updated value for the file-modification time.

7. In a file server system having a first processor and a second processor for servicing client requests for access to a file, the first processor having a clock producing a clock time, and the second processor having a timer for measuring a time interval, a method comprising: the second processor responding to a first request from a client for an asynchronous write to the file by obtaining the clock time from the clock of the first processor, beginning measurement of the time interval with the timer, performing a first asynchronous write operation with respect to the file, and using the clock time obtained from the clock of the first processor as a first file-modification time, the first file-modification time indicating a time of modification of the file by the first asynchronous write operation; and thereafter the secondary processor responding to a second request from the client for an asynchronous write to the file by performing a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of is the clock time obtained from the clock of the first processor and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

8. The method as claimed in claim 7, wherein the file-modification time is a sum of the clock time having been obtained from the clock and the time interval measured by the timer.

9. The method as claimed in claim 7, which includes: the second processor acknowledging the first request from the client for an asynchronous write to the file by returning to the client the first file-modified time for the file; and the second processor acknowledging the second request from the client for an asynchronous write to the file by returning to the client the second file-modified time for the file.

10. The method as claimed in claim 7, which includes the second processor responding to a request from the client to commit results of the second asynchronous write operation by sending the second file-modification time to the first processor.

11. In a file server system having a first processor and a second processor for servicing client requests for access to a file, the first processor having a clock producing a clock time, and the second processor having a timer for measuring a time interval, a method comprising: the second processor responding to a first request from a client for an asynchronous write to the file by obtaining the clock time from the clock of the first processor, beginning measurement of the time interval with the timer, performing a first asynchronous write operation with respect to the file, and using the clock time obtained from the clock of the first processor as a first file-modification time, the first file-modification time indicating a time of modification of the file by the first asynchronous write operation; and thereafter the second processor receiving from the first processor an updated value for the file-modification time, the second processor comparing the updated value for the file-modification time to the first file-modification time, and upon finding that the updated value is greater than the first file-modification time, the second processor resetting the timer; and thereafter the second processor responding to a second request from the client for an asynchronous write to the file by performing a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a sum of the updated value for the file-modification time and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

12. In a file server system having a primary processor managing metadata of a file, and a secondary processor responding to requests from a client for access to the file, the primary processor having a clock producing a clock time, and the secondary processor having a timer for measuring a time interval, a method comprising: the secondary processor responding to a first asynchronous write request from the client for writing to the file by obtaining attributes of the file and the clock time from the primary processor, storing the attributes of the file in a cache local to the secondary processor and using the file attributes to perform a first asynchronous write operation with respect to the file, and beginning measurement of the time interval with the timer, and thereafter the secondary processor responding to a second asynchronous write request from the client for writing to the file by using the attributes of the file in the cache local to the secondary processor to perform a second asynchronous write operation with respect to the file, and determining a file-modification time that is a function of the clock time having been obtained from the clock of the primary processor and the interval measured by the timer, the file-modification time indicating a time of modification of the file by the second asynchronous write operation.

13. The method as claimed in claim 12, wherein the file-modification time is a sum of the clock time having been obtained from the clock and the time interval measured by the timer.

14. The method as claimed in claim 12, which includes: the secondary processor acknowledging the second asynchronous write request from the client by returning to the client the file-modification time as the time when the file was modified by the second asynchronous write operation.

15. The method as claimed in claim 12, which includes: the secondary processor responding to a request from the client to commit results of the second asynchronous write operation by sending a flush request to the primary processor, the flush request including the file-modification time.

16. The method as claimed in claim 15, which includes the primary processor sending the file-modification time to another client caching attributes for the file.

17. The method as claimed in claim 12, which includes the secondary processor receiving from the primary processor an updated value for the file-modification time after the secondary processor has completed the second asynchronous write operation, the secondary processor comparing the updated value for the file-modification time to the last value for the file-modification time determined by the secondary processor, and upon finding that the updated value for the file-modification time is greater than the last value for the file-modification time determined by the secondary processor, the secondary processor resetting the timer, and using the updated value for the file-modification time in lieu of the clock time having been obtained from the primary processor, and using the updated value for the file-modification time as the most recent value of the file-modification time.

18. The method as claimed in claim 12, which includes the secondary processor receiving from the primary processor an updated value for the file-modification time after the secondary processor has completed the second asynchronous write operation, the secondary processor comparing the updated value for the file-modification time to the last value for the file-modification time determined by the secondary processor, and upon finding that the updated value for the file-modification time is less than the last value for the file-modification time determined by the secondary processor, the secondary processor ignoring the updated value for the file-modification time.

19. In a network file server having a plurality of data mover computers for servicing client requests for access to a file, and a cached disk array for storing data of the file, the data mover computers being coupled to the cache disk array for accessing the data of the file, the data mover computers including a primary data mover computer managing metadata of the file, and a secondary data mover computer that requests metadata of the file from the primary data mover computer, the primary data mover computer having a clock producing a clock time, and the secondary data mover computer having a timer for measuring a time interval, a method comprising: the secondary data mover computer responding to a first asynchronous write request from a client for writing to the file by obtaining attributes of the file and the clock time from the primary data mover computer, storing the attributes of the file in a cache local to the secondary data mover computer and using the file attributes to perform a first asynchronous write operation with respect to the file, and using the clock time as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation; and thereafter the secondary data mover computer responding to a second asynchronous write request from the client for writing to the file by using the attributes of the file in the cache local to the secondary data mover computer to perform a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of the clock time having been obtained from the primary data mover and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

20. The method as claimed in claim 19, wherein the second file-modification time is a sum of the clock time having been obtained from the primary data mover and the time interval measured by the timer.

21. The method as claimed in claim 19, wherein: the secondary data mover computer uses the clock time as a first filemodification time by acknowledging the first asynchronous write request from the client by returning to the client the clock time as the time when the file was modified by the first asynchronous write operation, and the secondary data mover computer acknowledges the second asynchronous write request from the client by returning to the client the second file-modification time as the time when the file was modified by the second asynchronous write operation.

22. The method as claimed in claim 19, which includes: the secondary data mover computer responding to a request from the client to commit results of the second asynchronous write operation by sending a flush request to the primary data mover computer, the flush request including the second file-modification time.

23. The method as claimed in claim 22, which includes the primary data mover computer sending the second file-modification time to another client caching attributes for the file.

24. The method as claimed in claim 19, which includes the secondary data mover computer receiving from the primary data mover computer an updated value for the file-modification time for the file after the secondary data mover computer has completed the first asynchronous write operation, the secondary data mover computer comparing the updated value for the file-modification time for the file to the last value determined by the secondary data mover for the file-modified time for the file, and upon finding that the updated value for the file-modification time for the file is greater than the last value determined by the secondary data mover for the file-modified time for the file, the secondary data mover computer resetting the timer, using the updated value for the file-modification time in lieu of the clock time having been obtained from the primary data mover computer, and using the updated value for the file-modification time for the file as the most recent value for the file-modification time for the file.

25. The method as claimed in claim 19, which includes the secondary data mover computer receiving from the primary data mover computer an updated value for the file-modification time for the file after the secondary data mover computer has completed the first asynchronous write operation, the secondary data mover computer comparing the updated value for the file-modification time for the file to the last value determined by the secondary data mover for the file-modified time for the file, and upon finding that the updated value for the file-modification time for the file is less than the last value determined by the secondary data mover for the file-modified time for the file, the secondary data mover computer ignoring the updated value for the file-modification time.

26. A file server system having a clock for producing a clock time and a processor for servicing client requests for access to a file, the processor having a timer for measuring a time interval; the processor being programmed for obtaining the clock time from the clock, and beginning measurement of the time interval with the timer, and the processor being programmed for responding to a request from a client for an asynchronous write to the file by performing an asynchronous write operation with respect to the file, and determining a file-modification time that is a function of the clock time having been obtained from the clock and the time interval measured by the timer, the file-modification time indicating a time of modification of the file by the asynchronous write operation.

27. The file server system as claimed in claim 26, wherein the file-modification time is a sum of the clock time having been obtained from the clock and the time interval measured by the timer.

28. The file server system as claimed in claim 26, wherein the processor is programmed to acknowledging the request from the client for an asynchronous write to the file by retuming to the client the file-modification time.

29. The file server system as claimed in claim 26, wherein the processor is programmed for receiving an updated value for the file-modification time after the processor has determined a value for the file-modification time, comparing the updated value for the file-modification time to the value that the processor has determined for the file-modification time, and upon finding the updated value for the file-modification time is greater than the value that the processor has determined for the file-modification time, resetting the timer and using the updated value for the file-modification time in lieu of the clock time having been obtained from the clock.

30. The file server system as claimed in claim 29, wherein the processor is programmed for storing the clock time having been obtained from the clock in a memory location local to the processor, and for using the updated value for the file-modification time in lieu of the clock time having been obtained from the clock by replacing the clock time stored in the memory local to the processor with the updated value for the file-modification time.

31. The file server system as claimed in claim 26, wherein the processor is programmed for receiving an updated value for the file-modification time after the secondary processor has determined a value for the file-modification time, comparing the updated value to the value that the processor has determined for the file-modification time, and ignoring the updated value for the file-modification time upon finding the updated value for the file-modification time is less than the value that the secondary processor has determined for the file-modification time.

32. A file server system comprising: a first processor and a second processor for servicing client requests for access to a file, the first processor having a clock for producing a clock time, and the second processor having a timer for measuring a time interval; the second processor being programmed for responding to a first request from a client for an asynchronous write to the file by obtaining the clock time from the clock of the first processor, beginning measurement of the time interval with the timer, performing a first asynchronous write operation with respect to the file, and using the clock time obtained from the clock of the first processor as a first file-modificationtime, the first file-modification time indicating a time of modification of the file by the first asynchronous write operation; and the second processor being programmed for responding to a second request from the client for an asynchronous write to the file by performing a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of the clock time obtained from the clock of the first processor and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

33. The file server system as claimed in claim 32, wherein the second file-modification time is a sum of the clock time obtained from the clock and the time interval measured by the timer.

34. The file server system as claimed in claim 32, wherein: the second processor is programmed to use the clock time obtained from the clock of the first processor as a first file-modification time by acknowledging the first request from the client for an asynchronous write to the file by returning to the client the clock time obtained from the clock of the first processor as the time when the file was modified by the first asynchronous write operation, and the second processor is programmed to acknowledge the second request from the client for an asynchronous write to the file by returning to the client the second file-modification time as the time when the file was modified by the second asynchronous write operation.

35. The file server system as claimed in claim 32, wherein the second processor is programmed for responding to a request from the client to commit results of the second. asynchronous write operation by sending the second file-modification time to the first processor.

36. A file server system comprising: a first processor and a second processor for servicing client requests for access to a file, the first processor having a clock for producing a clock time, and the second processor having a timer for measuring a time interval; the second processor being programmed for responding to a first request from a client for an asynchronous write to the file by obtaining the clock time from the clock of the first processor, beginning measurement of the time interval with the timer, and performing a first asynchronous write operation with respect to the file, and using the clock time obtained from the clock of the first processor as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation; and the second processor being programmed for receiving from the first processor an updated value for the file-modification time, for comparing the updated value to the first file-modification time, and upon finding that the updated value is greater than the first file-modification time, for resetting the timer; and the second processor being programmed to respond to a second request from the client for an asynchronous write to the file by performing a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a sum of the updated value for the file-modification time and the time measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

37. A file server system comprising: a primary processor managing metadata of a file, and a secondary processor responding to requests from a client for access to the file, the primary processor having a clock for producing a clock time, and the secondary processor having a timer for measuring a time interval; the secondary processor being programmed for responding to a first asynchronous write request from the client for writing to the file by obtaining attributes of the file and the clock time from the primary processor, storing the attributes of the file in a cache local to the secondary processor and using the file attributes to perform a first asynchronous write operation with respect to the file, and beginning measurement of the time interval with the timer; and the secondary processor being programmed for responding to a second asynchronous write request from the client for writing to the file by using the attributes of the file in the cache local to the secondary processor to perform a second asynchronous write operation with respect to the file, and determining a file-modification time that is a function of the clock time having been obtained from the clock of the primary processor and the time interval measured by the timer, the file-modification time indicating a time of modification of the file by the second asynchronous write operation.

38. The file server system as claimed in claim 37, wherein the file-modification time is a sum of the clock time having been obtained from the primary processor and the time interval measured by the timer.

39. The file server system as claimed in claim 37, wherein: the secondary processor is programmed for acknowledging the second asynchronous write request from the client by returning to the client the file-modification time as the time when the file was modified by the second asynchronous write operation.

40. The file server system as claimed in claim 37, wherein the secondary processor is programmed for responding to a request from the client to commit results of the second asynchronous write operation by sending a flush request to the primary processor, the flush request including the file-modification time.

41. The file server system as claimed in claim 40, wherein the primary processor is programmed to send the file-modification time to other clients caching attributes for the file.

42. The file server system as claimed in claim 37, wherein the secondary processor is programmed for receiving from the primary processor an updated value for the file-modification time after the secondary processor has completed the second asynchronous write operation, for comparing the updated value for the file-modification time to the last value for the file-modification time determined by the secondary processor, and upon finding that the updated value for the file-modification time is greater than the last value for the file-modification time determined by the secondary processor, for resetting the timer, and using the updated value for the file-modification time in lieu of the clock time having been obtained from the primary processor, and using the updated value for the file-modification time as the most recent value of the file-modification time.

43. The file server system as claimed in claim 37, wherein the secondary processor is programmed for receiving from the primary processor an updated value for the file-modification time after the secondary processor has completed the second asynchronous write operation, for comparing the updated value for the file-modification time to the last value for the file-modification time determined by the secondary processor, and upon finding that the updated value for the file-modification time is less than the last value for the file-modification time determined by the secondary processor, for ignoring the updated value for the file-modification time.

44. A network file server comprising: a plurality of data mover computers for servicing client requests for access to a file, and a cached disk array for storing data of the file, the data mover computers being coupled to the cached disk array for accessing the data of the file, the data mover computers including a primary data mover computer programmed for managing metadata of the file, and a secondary data mover computer programmed for requesting metadata of the file from the primary data mover computer, the primary data mover computer having a clock for producing a clock time, and the secondary data mover computer having a timer for measuring a time interval; the secondary data mover computer being programmed for responding to a first asynchronous write request from a client for writing to the file by obtaining attributes of the file and the clock time from the primary data mover computer, storing the attributes of the file in a cache local to the secondary data mover computer and using the file attributes to perform a first asynchronous write operation with respect to the file, beginning measurement of the time interval with the timer, and using the clock time as a first file-modification time, the first file-modification time indicating a time of modification of the file by the first asynchronous write operation; and the secondary data mover computer being programmed for responding to a second asynchronous write request from the client for writing to the file by using the attributes of the file in the cache local to the secondary data mover computer to perform a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of the clock time having been obtained from the primary data mover and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

45. The network file server as claimed in claim 44, wherein the second file-modification time is a sum of the clock time having been obtained from the primary data mover and the time interval measured by the timer.

46. The network file server as claimed in claim 44, wherein: the secondary data mover computer is programmed for using the clock time as a first file-modification time by acknowledging the first asynchronous write request from the client by returning to the client the clock time as the time when the file was modified by the first asynchronous write operation, and the secondary data mover computer is programmed for acknowledging the second asynchronous write request from the client by returning to the client the second file-modification time as the time when the file was modified by the second asynchronous write operation.

47. The network file server as claimed in claim 44, wherein the secondary data mover computer is programmed for responding to a request from the client to commit results of the second asynchronous write operation by sending a flush request to the primary data mover computer, the flush request including the second file-modification time.

48. The network file server as claimed in claim 47, wherein the primary data mover computer is programmed for sending the second file-modification time to other clients caching attributes for the file.

49. The network file server as claimed in claim 44, wherein the secondary data mover computer is programmed for receiving from the primary data mover computer an updated value for the file-modification time for the file after the secondary data mover computer has completed the first asynchronous write operation, for comparing the updated value for the file-modification time for the file to last value determined by the secondary data mover for the file-modified time for the file, and upon finding that the updated value for the file-modification time for the file is greater than the last value determined by the secondary data mover for the file-modified time for the file, for resetting the timer, using the updated value for the file-modification time for the file in lieu of the clock time having been obtained from the primary data mover computer, and using the updated value for the file-modified time for the file as the most recent value for the file-modification time for the file.

50. The network file server as claimed in claim 44, wherein the secondary data mover computer is programmed for receiving from the primary data mover computer an updated value for the file-modification time for the file after the secondary data mover computer has completed the first asynchronous write operation, for comparing the updated value for the file-modification time for the file to last value determined by the secondary data mover for the file-modified time for the file, and upon finding that the updated value for the file-modification time for the file is less than the last value determined by the secondary data mover for the file-modified time for the file, for ignoring the updated value for the file-modification time for the file.
Description



BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to data storage systems, and more particularly to network file servers. The present invention specifically relates to a file server system in which access to file attributes is shared among a number of processors.

2. Description of the Related Art

Network data storage is most economically provided by an array of low-cost disk drives integrated with a large semiconductor cache memory. A number of data mover computers are used to interface the cached disk array to the network. The data mover computers perform file locking management and mapping of the network files to logical block addresses of storage in the cached disk array, and move data between network clients and the storage in the cached disk array.

Data consistency problems may arise if concurrent client access to a read/write file is permitted through more than one data mover. These data consistency problems can be solved in a number of ways. For example, as described in Vahalia et al., U.S. Pat. No. 5,893,140 issued Apr. 6, 1999, entitled "File Server Having a File System Cache and Protocol for Truly Safe Asynchronous Writes," incorporated herein by reference, locking information can be stored in the cached disk array, or cached in the data mover computers if a cache coherency scheme is used to maintain consistent locking data in the caches of the data mover computers.

When a large number of clients are concurrently accessing shared read-write files, there may be considerable access delays due to contention for locks not only on the files but also on the file directories. One way of reducing this contention is to assign each file system to only one data mover assigned the task of managing the locks on the files and directories in the file system. This permits the data mover file manager to locally cache and manage the metadata for the files and directories of the file system. For example, as described in Xu et al., U.S. Pat. No. 6,324,581, issued Nov. 27, 2001, incorporated herein by reference, the data mover acting as the manager of a file grants a lock on the file and provides metadata of the file to another data mover servicing a client request for access to the file. Then the data mover servicing the client request uses the metadata to directly access the file data in the cached disk array.

It is desired to permit clients to have asynchronous writes to a file in accordance with version 3 of the Network File System (NFS) protocol, and concurrent write access and byte range locking to a file in accordance with version 4 of the NFS protocol. (See NFS Version 3 Protocol Specification, RFC 1813, Sun Microsystems, Inc., June 1995, incorporated herein by reference, and NFS Version 4Protocol Specification, RFC 3530, Sun Microsystems, Inc., April 2003, incorporated herein by reference.) In this case, it is possible for a file to be updated at about the same time by multiple clients. The NFS protocol specifies that the time of last update of a file should be indicated by a file-modification time attribute, referred to in the protocol as "mtime."

SUMMARY OF THE INVENTION

In accordance with one aspect, the invention provides a method of operation in a file server system. The file server system has a clock for producing a clock time and a processor for servicing client requests for access to a file. The processor has a timer for measuring a time interval. The method includes the processor obtaining the clock time from the clock, and beginning measurement of the time interval with the timer. The method further includes the processor responding to a request from a client for an asynchronous write to the file by performing an asynchronous write operation with respect to the file, and determining a file-modification time that is a function of the clock time having been obtained from the clock and the time interval measured by the timer, the file-modification time indicating a time of modification of the file by the asynchronous write operation.

In accordance with another aspect, the invention provides a method of operation in a file server system having a first processor and a second processor for servicing client requests for access to a file. The first processor has a clock producing a clock time, and the second processor has a timer for measuring a time interval. The method includes the second processor responding to a first request from a client for an asynchronous write to the file by obtaining the clock time from the clock of the first processor, beginning measurement of the time interval with the timer, performing a first asynchronous write operation with respect to the file, and using the clock time obtained from the clock of the first processor as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation. The method further includes the secondary processor responding to a second request from the client for an asynchronous write to the file by performing a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of the clock time obtained from the clock of the first processor and the time interval measured by the timer. The second file-modification time indicates a time of modification of the file by the second asynchronous write operation.

In accordance with yet another aspect, the invention provides a method of operation in a file server system having a first processor and a second processor for servicing client requests for access to a file. The first processor has a clock producing a clock time, and the second processor has a timer for measuring a time interval. The method includes the second processor responding to a first request from a client for an asynchronous write to the file by obtaining the clock time from the clock of the first processor, beginning measurement of the time interval with the timer, performing a first asynchronous write operation with respect to the file, and using the clock time obtained from the clock of the first processor as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation. The method further includes the second processor receiving from the first processor an updated value for the file-modification time, the second processor comparing the updated value for the file-modification time to the first file-modification time, and upon finding that the updated value for the file-modification time is greater than the first file-modification time, the second processor resetting the timer. Moreover, the method further includes the second processor responding to a second request from the client for an asynchronous write to the file by performing a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of the updated value for the file-modification time and the time interval measured by the timer. The second file-modification time indicates a time of modification of the file by the second asynchronous write operation.

In accordance with yet another aspect, the invention provides a method of operation in a file server system having a primary processor managing metadata of a file, and a secondary processor responding to requests from a client for access to the file. The primary processor has a clock producing a clock time, and the secondary processor has a timer for measuring a time interval. The method includes the secondary processor responding to a first asynchronous write request from the client for writing to the file by obtaining attributes of the file and the clock time from the primary processor, storing the attributes of the file in a cache local to the secondary processor and using the file attributes to perform a first asynchronous write operation with respect to the file, beginning measurement of the time interval with the timer, and using the clock time as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation. The method further includes the secondary processor responding to a second asynchronous write request from the client for writing to the file by using the attributes of the file in the cache local to the secondary processor to perform a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of the clock time having been obtained from the clock of the primary processor and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

In accordance with still another aspect, the invention provides a method of operation in a network file server. The network file server has a plurality of data mover computers for servicing client requests for access to a file, and a cached disk array for storing data of the file. The data mover computers are coupled to the cache disk array for accessing the data of the file. The data mover computers include a primary data mover computer managing metadata of the file, and a secondary data mover computer that requests metadata of the file from the primary data mover computer. The primary data mover computer has a clock producing a clock time, and the secondary data mover computer has a timer for measuring a time interval. The method includes the secondary data mover computer responding to a first asynchronous write request from a client for writing to the file by obtaining attributes of the file and the clock time from the primary data mover computer, storing the attributes of the file in a cache local to the secondary data mover computer and using the file attributes to perform a first asynchronous write operation with respect to the file, beginning measurement of the time interval with the timer, and using the clock time as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation. The method further includes the secondary data mover computer responding to a second asynchronous write request from the client for writing to the file by using the attributes of the file in the cache local to the secondary data mover computer to perform a second asynchronous write operation with respect to the file, and determining a second file-modification time as a function of the clock time having been obtained from the primary data mover and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

In accordance with another aspect, the invention provides a file server system having a clock for producing a clock time and a processor for servicing client requests for access to a file. The processor has a timer for measuring a time interval. The processor is programmed for obtaining the clock time from the clock, and beginning measurement of the time interval with the timer. The processor is further programmed for responding to a request from a client for an asynchronous write to the file by performing an asynchronous write operation with respect to the file, and determining a file-modification time that is a function of the clock time having been obtained from the clock and the time interval measured by the timer, the file-modification time indicating a time of modification of the file by the asynchronous write operation.

In accordance with another aspect, the invention provides a file server system including a first processor and a second processor for servicing client requests for access to a file. The first processor has a clock for producing a clock time, and the second processor has a timer for measuring a time interval. The second processor is programmed for responding to a first request from a client for an asynchronous write to the file by obtaining the clock time from the clock of the first processor, beginning measurement of the time interval with the timer, performing a first asynchronous write operation with respect to the file, and using the clock time obtained from the clock of the first processor as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation. The second processor is programmed for responding to a second request from the client for an asynchronous write to the file by performing a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of the clock time obtained from the clock of the first processor and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

In accordance with yet another aspect, the invention provides a file server system including a first processor and a second processor for servicing client requests for access to a file. The first processor has a clock for producing a clock time, and the second processor has a timer for measuring a time interval. The second processor is programmed for responding to a first request from a client for an asynchronous write to the file by obtaining the clock time from the clock of the first processor, beginning measurement of the time interval with the timer, performing a first asynchronous write operation with respect to the file, and using the clock time obtained from the clock of the first processor as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation. The second processor is further programmed for receiving from the first processor an updated value for the file-modification time, for comparing the updated value for the file-modification time to the first file-modification time, and upon finding that the updated value for the file-modification time is greater than the first file-modification time, resetting the timer. Moreover, the second processor is further programmed to respond to a second request from the client for an asynchronous write to the file by performing a second asynchronous write operation with respect to the file, and determining a second file-modification time that is a function of the updated value for the file-modification time and the time interval measured by the timer, the second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

In accordance with still another aspect, the invention provides a file server system including a primary processor managing metadata of a file, and a secondary processor responding to requests from a client for access to the file. The primary processor has a clock for producing a clock time, and the secondary processor has a timer for measuring a time interval. The secondary processor is programmed for responding to a first asynchronous write request from the client for writing to the file by obtaining attributes of the file and the clock time from the primary processor, storing the attributes of the file in a cache local to the secondary processor and using the file attributes to perform a first asynchronous write operation with respect to the file, and beginning measurement of the time interval with the timer. The secondary processor is further programmed for responding to a second asynchronous write request from the client for writing to the file by using the attributes of the file in the cache local to the secondary processor to perform a second asynchronous write operation with respect to the file, and determining a file-modification time that is a function of the clock time from the primary processor and the time interval measured by the timer, the file-modification time indicating a time of modification of the file by the second asynchronous write operation.

In accordance with a final aspect, the invention provides a network file server including a plurality of data mover computers for servicing client requests for access to a file, and a cached disk array for storing data of the file. The data mover computers are coupled to the cache disk array for accessing the data of the file. The data mover computers include a primary data mover computer programmed for managing metadata of the file, and a secondary data mover computer programmed for requesting metadata of the file from the primary data mover computer. The primary data mover computer has a clock for producing a clock time, and the secondary data mover computer has a timer for measuring a time interval. The secondary data mover computer is programmed for responding to a first asynchronous write request from a client for writing to the file by obtaining attributes of the file and the clock time from the primary data mover computer, storing the attributes of the file in a cache local to the secondary data mover computer and using the file attributes to perform a first asynchronous write operation with respect to the file, beginning measurement of the time interval with the timer, and using the clock time as a first file-modification time indicating a time of modification of the file by the first asynchronous write operation. The secondary data mover computer is further programmed for responding to a second asynchronous write request from the client for writing to the file by using the attributes of the file in the cache local to the secondary data mover computer to perform a second asynchronous write operation with respect to the file, and determining a second file-modification time indicating a time of modification of the file by the second asynchronous write operation.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects and advantages of the invention will become apparent upon reading the following detailed description with reference to the accompanying drawings wherein:

FIG. 1 is a block diagram of a data processing system including a network file server having multiple data mover computers, each of which manages a respective file system;

FIG. 2 is a block diagram of a primary NFS server and a secondary a NFS server in a file server system such as the network file server of FIG. 1;

FIG. 3 is a flowchart of a file attribute caching protocol between the primary NFS server and the secondary NFS server of FIG. 2;

FIGS. 4 to 6 comprise a flowchart showing management of the file-modification time attribute during the file attribute caching protocol of FIG. 3;

FIG. 7 is an alternative version of the flowchart of FIG. 5, showing modification of the file-modification time attribute in the secondary NFS server in response to notification of an update from the primary NFS server; and

FIG. 8 is another alternative version of the flowchart of FIG. 5, showing modification of the file-modification time attribute in the secondary NFS server in response to notification of an update from the primary NFS server.

While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown in the drawings and will be described in detail. It should be understood, however, that it is not intended to limit the invention to the particular forms shown, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the scope of the invention as defined by the appended claims.

DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

In a data storage network, it is desirable to provide client access to a file system through more than one processor servicing client requests. FIG. 1, for example, shows a network file server that uses distributed locking and permits storage resources to be incrementally added to provide sufficient storage capacity for any desired number of file systems. The network file server includes multiple data mover computers 115, 116, 117, each of which manages a respective file system. Each data mover computer also functions as a file server for servicing client requests for access to the file systems. For this purpose, each data mover computer 115, 116, 117 has a respective port to a data network 111 having a number of clients including work stations 112, 113. The data network 111 may include any one or more network connection technologies, such as Ethernet, and communication protocols, such as TCP/IP or UDP. The work stations 112, 113, for example, are personal computers.

The preferred construction and operation of the network file server 110 is further described in Vahalia et al., U.S. Pat. No. 5,893,140 issued Apr. 6, 1999, incorporated herein by reference. The network file server 110 includes a cached disk array 114. The network file server 110 is managed as a dedicated network appliance, integrated with popular network operating systems in a way, which, other than its superior performance, is transparent to the end user. The clustering of the data movers 115, 116, 117 as a front end to the cached disk array 114 provides parallelism and scalability. Each of the data movers 115, 116, 117 is a high-end commodity computer, providing the highest performance appropriate for a data mover at the lowest cost. The data movers may communicate with each other over a dedicated dual-redundant Ethernet connection 118. The data mover computers 115, 116, and 117 may communicate with the other network devices using standard file access protocols such as the Network File System (NFS) or the Common Internet File System (CIFS) protocols, but the data mover computers do not necessarily employ standard operating systems. For example, the network file server 110 is programmed with a Unix-based file system that has been adapted for rapid file access and streaming of data between the cached disk array 114 and the data network 111 by any one of the data mover computers 115, 116, 117.

In the network file server of FIG. 1, the locking information for each file system 119, 120, 121, 122 is managed exclusively by only one of the data movers 115, 116, 117. This exclusive relationship will be referred to by saying each file system has a respective data mover that is the owner of the file system. For example, the data mover 115 is the owner of the A: file system 119 and the B: file system 120, the data mover 116 is the owner of the C: file system 121, and the data mover 117 is the owner of D: file system 122. The owner of a file system is said to be primary with respect to the file system, and other data movers are said to be secondary with respect to the file system.

In the network file server 110, each client 112, 113 may access any of the file systems through any one of the data mover computers 115, 116, 117, but if the data mover computer servicing the client does not own the file system to be accessed, then a lock on at least a portion of the file system to be accessed must be obtained from the data mover computer that owns the file system to be accessed.

In network file server 110, it is possible for a write operation to change the attributes of a file, for example, when the extent of a file is increased by appending data to the file. When a write operation will change the metadata of a file, the metadata must be managed in a consistent fashion, in order to avoid conflict between the data mover owning the file, and the data mover performing the write operation. For example, as described in the above-cited Xu et al., U.S. Pat. No. 6,324,581, when a secondary data mover performs a write operation that changes the metadata of a file, the new metadata is written to the primary data mover. This ensures that the primary data mover maintains consistent metadata in its cache.

It is desired to permit multiple clients to have concurrent asynchronous writes to a file in accordance with version 3 and version 4 of the Network File System (NFS) protocol. Locking can be based on ranges of blocks within the same file. For example, the primary data mover may grant one client a write lock on blocks 100 to 199 in a file, and the primary data mover may grant another client a concurrent write lock on blocks 200 to 299 in the same file.

It is desirable for some of the file system metadata to be cached only on the primary data mover, and some of the file system metadata to be cached on the primary and secondary data movers. For example, the file system metadata is broken into three categories: directory information, inodes and indirect blocks, and file attributes. For the first two categories, all block allocations are performed on the primary data mover, and all directory-related NFS requests are serviced on this same primary data mover. However, file attributes are cached on the secondary data movers to prevent the primary data mover from becoming a bottleneck for read-only access to the file attributes.

When multiple clients are permitted to write to the same file concurrently, it becomes difficult to maintain the file-modification time attribute. Normally, when a file attribute applicable to the entire file needs to be changed, the change is made at the cache of the primary data mover, and the caches of the secondary data movers are invalidated. The clocks of the data movers 115, 116, 177 are not synchronized. Therefore, to update the file-modification time in a consistent fashion, a secondary data mover could send a file-modification time request to the primary data mover, and the primary data mover could read its clock to obtain a new update time, and then return the new update time to the secondary data mover. Unfortunately this method would be quite burdensome, because messages would have to be passed between the primary and secondary data movers for each asynchronous write to a file system. In contrast, the file-creation time attribute (ctime) can simply be set with the clock time of the primary data mover since a file is always created by its primary data mover, and the fil


Free Web Sudoku Puzzles.
Solve with your browser.
    5     1      
    8 7 3       6
    7   8 2   9  
  7       6   8  
    9       2    
  5   4       3  
  2   3 1   6    
7       4 9 8    
      6     3    
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!