Extended file system
First Claim
1. A computer-readable medium having computer-executable instructions, comprising:
- receiving a request to access data, the data maintained on at least one of a local and remote source, the request originating from a first process that executes on a device that includes the local source;
determining by a second process that executes on the device whether the data is available from the local source; and
if the data is available from the local source, providing access to the data from the local source;
otherwise, retrieving at least some of the data from the remote source and providing access to the data.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
20 Claims
-
1. A computer-readable medium having computer-executable instructions, comprising:
-
receiving a request to access data, the data maintained on at least one of a local and remote source, the request originating from a first process that executes on a device that includes the local source;
determining by a second process that executes on the device whether the data is available from the local source; and
if the data is available from the local source, providing access to the data from the local source;
otherwise, retrieving at least some of the data from the remote source and providing access to the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for maintaining data, comprising:
-
a plurality of servers that are enlisted to provide data, wherein a server enlists to provide the data by performing acts, comprising;
sending an enlist primitive to notify the plurality of servers that the server seeks to participate in providing the data, and receiving a response from at least one of the plurality of servers; and
a client that requests the data and maintains at least some of the data on a store local to the client and other than one provided by the servers. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method for maintaining data, comprising in a file system maintained by a client, marking the data as synchronize-always or local-always;
-
if the data is marked as synchronize-always, obtaining 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; and
if the data is marked as local-always, obtaining the data from a store local to the client in response to the process requesting the data, wherein the client determines where the data is obtained based on the marking of the data. - View Dependent Claims (19, 20)
-
Specification