IP Library Patent Application 11732042
Patent Application
App. No. 11/732,042

Separating central locking services from distributed data fulfillment services in a storage system

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/732,042
Abstract

Techniques for implementing locking semantics for a storage system are described. An apparatus or system may include a data server to store multiple data files, and a locking server to store locking information for one or more data files stored by the data server. The locking information may include a version number for a data file and a lock state for the data file. Other embodiments are described and claimed.

Claims (35)

1 . A method, comprising:

storing a first identifier for a file at a locking server;

receiving a lock request to lock the file with a second identifier from a client;

granting the lock request if the first and second identifiers match; and

denying the lock request if the first and second identifiers do not match.

2 . The method of claim 1 , comprising sending the client a message to retrieve the file with the first identifier from a data server or another client.

3 . The method of claim 1 , comprising storing a lock state, client identifier for the file, and a file revision identifier.

4 . The method of claim 1 , comprising performing a write operation on the file by the client when the file is locked.

5 . The method of claim 1 , comprising

receiving a lock release request to release the lock;

releasing the lock by the locking server; and

receiving a third identifier representing a file revision identifier for the file from a client.

6 . The method of claim 1 , comprising receiving a third identifier for the file from a data server.

7 . The method of claim 1 , comprising receiving a lock release request to release the lock for the file from the client.

8 . The method of claim 1 , comprising releasing the lock for the file after a defined time period.

9 . An article comprising a storage medium containing instructions that if executed enable a system to:

store a first version number for a file at a locking server;

receive a lock request to lock the file with a second version number;

grant the lock request if the first and second version numbers match; and

deny the lock request if the first and second version numbers do not match.

10 . The article of claim 9 , further comprising instructions that if executed enable the system to send the client a message to retrieve the file with the first version number from a data server or a client device.

11 . The article of claim 9 , further comprising instructions that if executed enable the system to receive a third version number for the file from a client or a data server.

12 . The article of claim 9 , further comprising instructions that if executed enable the system to receive a lock release request to release the lock for the file by the locking server.

13 . The article of claim 9 , further comprising instructions that if executed enable the system to release the lock for the file after a defined time period.

14 . The article of claim 9 , further comprising instructions that if executed enable the system to store a lock state and client identifier for the file.

15 . The article of claim 9 , further comprising instructions that if executed enable the system to perform a write operation on the file by a client when the file is locked.

16 . An apparatus comprising:

a data server to store multiple data files; and

a locking server to store locking information for one or more data files stored by the data server, the locking information to include a version number for a data file and a lock state for the data file.

17 . The apparatus of claim 16 , the locking server comprising a server lock manager, the server lock manager to store a first identifier for a data file, receive a lock request to lock the file with a second identifier from a client device, and send a lock request response granting the lock request if the first and second identifiers match and denying the lock request if the first and second identifiers do not match to the client device.

18 . The apparatus of claim 16 , the locking server comprising a server lock manager, the server lock manager to receive a lock request to lock a data file from a client device with an identifier, and send a lock request response to the client device to retrieve an updated version of the data file based on the identifier.

19 . The apparatus of claim 16 , comprising a client device to communicate with the locking server, the client device comprising:

a database to store a local version of a data file; and

a cache manager to manage the local version of the data file, the cache manager having a client lock manager to send a lock request to lock the data file with an identifier for the data file to the locking server, and receive a lock request response granting the lock request or denying the lock request based on the identifier from the locking server.

20 . The apparatus of claim 16 , comprising a client device to communicate with the locking server, the client device comprising a synchronization engine to synchronize a local version of a data file with a server version of the data file stored by the data server, or another local version of the data file with another client device in response to instructions received from the locking server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2007
From: RASMUSSEN, DAVID J.
To: MICROSOFT CORPORATION
Reel/Frame 019627/0692 →