IP Library › Granted Patent US 7,542,999
Granted Patent B2
US 7,542,999 · App. 10/819,624 · Granted Jun 2, 2009

Extended file system

Assignee: Microsoft Corporation
View Patent ↗
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 7,542,999
App. No.
10/819,624
Granted
Jun 2, 2009
Kind
B2
Abstract

A method and system for transparently combining remote and local storage to provide an extended file system such as a virtual local drive for a computer system client/user, e.g., a user of a pocket sized personal computer or a cable set-top box. A client device may load file system object data, storing the directories and files remotely, and retrieving the files only when required. Via its local storage, the extended file system handles unreliable connections and delays. When a connection to an extended file system server is present, the extended file system provides automatic downloading of information that is not locally cached, and automatically uploading of information that has been modified on the client. Extended file system attributes are employed to determine the actual location of file system data, and a lightweight protocol is defined to download or upload remote data by low-level components that make the remote source transparent from the perspective of the application. The system scales to large networks as it employs the lightweight protocol and establishes a connection only to retrieve and submit data.

Claims (27)

1. A method for maintaining data, comprising:

in a file system maintained by a client, marking the data as synchronize-always or local-always;

when the data is marked as synchronize-always, obtaining a portion of the data from a server in response to a process that requests the data, the process executing on the client, the process originating the request, wherein synchronize-always indicates the data has a size larger than an available storage size of a store local to the client such that the data is not maintained on the store local to the client;

when the data is marked as local-always, obtaining the data from the store local to the client in response to the process requesting the data, wherein data marked as local-always indicates the data cannot be removed from the store local to the client, wherein the client determines where the data is obtained based on the marking of the data;

when the data is not marked synchronize-always and is not marked local-always, evaluating a local/remote attribute associated with the data;

when the local/remote attribute is set to local to indicate the data is stored at the client, obtaining the data from the store local to the client;

when the local/remote attribute is set to remote to indicate the data is stored at the server, obtaining the data from the server.

2. The method of claim 1 , further comprising when the data is marked as synchronize-always, transmitting any changes to the data to the server in response to a request that the data be changed, the request to change the data originating at the client.

3. The method of claim 1 , further comprising when the data is marked as local-always, changing the data on the store local to the client in response to a request that the data be changed, the request to change the data originating at the client.

4. The method of claim 1 , further comprising when the local/remote attribute is set to remote and the data has a size less than an available storage size of the store local to the client, obtaining the data from the server and maintaining the data on the store local to the client.

5. The method of claim 1 , further comprising when the local/remote attribute is set to remote and the data has a size larger than an available storage size of the store local to the client, maintaining the data on the server and marking the data as synchronize-always.

6. The method of claim 1 , further comprising when the local/remote attribute is set to local, synchronizing a remote copy of the data stored on the server with an update to the data stored on the store local to the client.

7. The method of claim 1 , further comprising when the local/remote attribute is set to local and an update to the data results in updated data having a size larger than an available storage size of the store local to the client, storing the updated data on the server and marking the updated data as synchronize-always.

8. The method of claim 1 , wherein when the data is marked as local-always, a directory associated with the data is marked local-always.

9. The method of claim 8 wherein when the directory is marked as local-always, the data is accessible by the client when no connection is present between the client and the server.

10. The method of claim 1 , further comprising:

when the data is marked as synchronize-always,

updating, at the client, the portion of the data received from the server; and

sending, by the client, the updated portion of the data to the server to update the data stored on the server.

11. One or more computer readable storage media including computer-executable instructions that when executed by a client computing device perform operations comprising:

in a file system maintained by a client, marking the data as synchronize-always or local-always;

when the data is marked as synchronize-always, obtaining a portion of the data from a server in response to a process that requests the data, the process executing on the client, the process originating the request, wherein synchronize-always indicates the data has a size larger than an available storage size of a store local to the client such that the data is not maintained on the store local to the client;

when the data is marked as local-always, obtaining the data from the store local to the client in response to the process requesting the data, wherein data marked as local-always indicates the data cannot be removed from the store local to the client,

wherein the client determines where the data is obtained based on the marking of the data;

when the data is not marked synchronize-always and is not marked local-always, evaluating a local/remote attribute associated with the data;

when the local/remote attribute is set to local to indicate the data is stored at the client, obtaining the data from the store local to the client;

when the local/remote attribute is set to remote to indicate the data is stored at the server, obtaining the data from the server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
Continuity (4)
Continuation 0953505800 · Mar 24, 2000
Provisional Application 6012609400 · Mar 25, 1999
Provisional Application 6017199500 · Dec 23, 1999
Related Publication 20050060316A1 · Mar 17, 2005