Filesystem redirection
First Claim
1. A system comprising:
- a local data store configured to store cached data files and specific computer-executable instructions; and
a computing device including a processor in communication with the local data store, wherein the specific computer-executable instructions, when executed by the processor, configure the processor to at least;
obtain, from a client filesystem, client filesystem information;
cache the client filesystem information in the local data store;
cause transmission of the client filesystem information to a virtual machine executing on behalf of a client;
obtain, from the virtual machine, a request for a client data file, wherein the client data file is represented in the client filesystem information;
determine that a cached data file stored in the local data store is associated with the client data file;
determine a cached file version identifier based at least in part on the cached data file;
cause transmission of the cached file version identifier to a client filesystem application executing on a client computing device associated with the client filesystem, wherein the client filesystem application identifies, based at least in part on the cached file version identifier, one or more changes made to the client data file;
obtain, from the client filesystem application, the one or more changes;
apply the one or more changes to the cached data file to form a current data file;
store the current data file in the local data store; and
cause transmission of the current data file to the virtual machine.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are described for providing a proxied filesystem in a hosted computing environment. A provider of hosted computing services provides a filesystem proxy server. The server proxies filesystems on a client computing device utilizing the hosted computing environment, enabling the resources of the hosted computing environment to access the filesystems of the client computing device. Requests for resources in the proxied filesystem may be cached, and updates to cached resources may be communicated as a set of changes that, when applied to the cached resource, transform it into the current version of the resource. The filesystem proxy server may proxy read requests, write requests, requests for information pertaining to the filesystem, and may be implemented within a virtual machine in the hosted computing environment or as a standalone service.
11 Citations
21 Claims
-
1. A system comprising:
-
a local data store configured to store cached data files and specific computer-executable instructions; and a computing device including a processor in communication with the local data store, wherein the specific computer-executable instructions, when executed by the processor, configure the processor to at least; obtain, from a client filesystem, client filesystem information; cache the client filesystem information in the local data store; cause transmission of the client filesystem information to a virtual machine executing on behalf of a client; obtain, from the virtual machine, a request for a client data file, wherein the client data file is represented in the client filesystem information; determine that a cached data file stored in the local data store is associated with the client data file; determine a cached file version identifier based at least in part on the cached data file; cause transmission of the cached file version identifier to a client filesystem application executing on a client computing device associated with the client filesystem, wherein the client filesystem application identifies, based at least in part on the cached file version identifier, one or more changes made to the client data file; obtain, from the client filesystem application, the one or more changes; apply the one or more changes to the cached data file to form a current data file; store the current data file in the local data store; and cause transmission of the current data file to the virtual machine. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method comprising:
-
obtaining, by a filesystem proxy, remote filesystem information from a remote filesystem; caching, by the filesystem proxy, the remote filesystem information in a filesystem cache; transmitting, by the filesystem proxy to a virtual machine, the remote filesystem information; obtaining, by the filesystem proxy, a first request from the virtual machine, the first request including at least a first requested resource, wherein the first requested resource is represented in the remote filesystem information; determining, by the filesystem proxy, that a first cached resource in the filesystem cache corresponds to the first requested resource; determining, by the filesystem proxy, an identifier corresponding to the first cached resource; transmitting, by the filesystem proxy to the remote filesystem, the identifier corresponding to the first cached resource, wherein the remote filesystem identifies, based at least in part on the identifier corresponding to the first cached resource, a first set of changes made to the first requested resource; obtaining, by the filesystem proxy from the remote filesystem, the first set of changes; applying, by the filesystem proxy, the first set of changes to the first cached resource to form a first current resource; and transmitting, by the filesystem proxy, the first current resource to the virtual machine in response to the first request. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-readable medium comprising computer-executable instructions that when executed by a first computing device comprising a processor and a memory cause the first computing device to at least:
-
obtain, from a filesystem application, filesystem information associated with a remote filesystem monitored by the filesystem application; cache the filesystem information in a data store configured to store cached resources; transmit the filesystem information; obtain a request for a resource represented in the filesystem information; determine that a cached resource in the data store is associated with the resource specified in the request; cause the filesystem application to identify a set of changes made to the resource specified in the request, the set of changes determined based at least in part on an identifier associated with the cached resource; obtain, from the filesystem application, the set of changes made to the resource identified in the request; apply the set of changes to the cached resource to form a current resource; and transmit the current resource in response to the request. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification