Streaming content and placeholders
First Claim
Patent Images
1. A method implemented at least in part by a computer, the method comprising:
- receiving an indication of a file system object of a local file system of a client, the file system object comprising a placeholder representing the file system object on the local file system, a remote file at a remote storage system, and portions of content, the placeholder being stored on the local file system, the client structured to obtain metadata of the file system object from the placeholder, the client structured to synchronize the local file system with the remote storage system, including duplicating portions of the content from the remote file to the local file system and from the local file system to the remote file, the metadata sufficient to allow the client, while offline with respect to the remote storage system, to obtain namespace information about the file system object from the placeholder, the placeholder including data that identifies the remote storage system from which data of the file system object is obtainable;
receiving a request to access at least a portion of the content of the file system object;
determining, based on the placeholder, whether the portion of the content resides on the local file system;
providing first code that is configured to be executed responsive to determining that the portion of the content resides on the local file system, the first logic able to determine whether the portion of the content is up-to-date and, if so, provide the portion of the content from the local file system;
providing second code that is configured to be executed responsive to determining that the portion of the content does not reside on the local file system, the second logic configured to determine whether or not an application to which the portion of the content is to be provided is structured to access the portion of the content via streaming by accessing a data structure stored on the local file system, the data structure indicating whether the application is structured to access the content via streaming;
providing third code that is configured to be executed responsive to determining that the application to which the portion of the content is to be provided is structured to access the content via streaming, the third code configured to perform actions comprising;
obtaining the portion of the content of the file system object from the remote storage system,updating the placeholder to indicate that the content is available from the local file system, andproviding the content to the application.
3 Assignments
0 Petitions
Accused Products
Abstract
Aspects of the subject matter described herein relate to file system placeholders. In aspects, placeholders may be used by a client to represent remote file system objects. The placeholders may include metadata and may also include none, some, or all of the content of the represented remote file system objects. In response to a request to access content of a file system object represented by a placeholder, a client may obtain needed data from a remote storage system and stream or not stream the data to the requesting application based on whether the requesting application is capable of streaming the data.
-
Citations
19 Claims
-
1. A method implemented at least in part by a computer, the method comprising:
-
receiving an indication of a file system object of a local file system of a client, the file system object comprising a placeholder representing the file system object on the local file system, a remote file at a remote storage system, and portions of content, the placeholder being stored on the local file system, the client structured to obtain metadata of the file system object from the placeholder, the client structured to synchronize the local file system with the remote storage system, including duplicating portions of the content from the remote file to the local file system and from the local file system to the remote file, the metadata sufficient to allow the client, while offline with respect to the remote storage system, to obtain namespace information about the file system object from the placeholder, the placeholder including data that identifies the remote storage system from which data of the file system object is obtainable; receiving a request to access at least a portion of the content of the file system object; determining, based on the placeholder, whether the portion of the content resides on the local file system; providing first code that is configured to be executed responsive to determining that the portion of the content resides on the local file system, the first logic able to determine whether the portion of the content is up-to-date and, if so, provide the portion of the content from the local file system; providing second code that is configured to be executed responsive to determining that the portion of the content does not reside on the local file system, the second logic configured to determine whether or not an application to which the portion of the content is to be provided is structured to access the portion of the content via streaming by accessing a data structure stored on the local file system, the data structure indicating whether the application is structured to access the content via streaming; providing third code that is configured to be executed responsive to determining that the application to which the portion of the content is to be provided is structured to access the content via streaming, the third code configured to perform actions comprising; obtaining the portion of the content of the file system object from the remote storage system, updating the placeholder to indicate that the content is available from the local file system, and providing the content to the application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device, comprising:
-
processing hardware; storage hardware comprising computer storage elements that persist file system metadata for local file system objects of a local file system and that persist placeholders for remote file system objects of a remote storage system, the placeholders including metadata of the remote file system objects without requiring that the remote file system objects exist in the storage hardware; the storage hardware storing a placeholder manager structured to be executed by the processing hardware to create, populate, and maintain the placeholders to ensure that placeholders exist for the respective remote file system objects in a namespace, wherein at least some of the placeholders represent respective remote file system objects for which there is no content thereof stored on the storage hardware; and the storage hardware storing a streaming manager, hosted on the computing device, the streaming manager structured to be executed by the processing hardware to perform actions, the actions comprising; receiving a request from an application to access content of a file system object; determining, based on a placeholder of the file, whether the content resides on the local file system; providing first code that is configured to be executed by the processing hardware responsive to determining that the content resides on the local file system, the first code configured to determine whether the content is up-to-date and, if so, provide the content from the local file system; providing second code that is configured to be executed by the processing hardware responsive to determining that the content does not reside on the local file system, the second code configured to determine whether an application to which the content is to be provided is structured to access the content via streaming or whether the application to which content is to be provided is not structured to access the content via streaming; and providing third code that is configured to be executed by the processing hardware responsive to determining that the application to which the content is to be provided is structured to access the content via streaming, wherein the whether the application is structured to access the content via streaming is determined according to how the application makes the request for the content of the file, the third code configured to perform actions comprising; obtaining at least a portion of the content of the file system object from the remote storage system, updating the placeholder to indicate that the obtained portion of the content is available from the local file system, and providing the obtained portion of the content to the application while continuing to obtain additional content of the file system object from the remote file system object. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A computer storage medium having computer-executable instructions, which when executed perform actions, comprising:
-
receiving a request for data of a file system object indicated by a client, the client having a client file system, the client file system having complete file system objects in which all respective content thereof is located on the client file system and file system objects for which no content thereof is located on the client file system, the client having placeholders that represent at least the file system objects in which no content thereof is located on the client file system, wherein placeholders for respective file system objects for which there is no content located on the client file system are accessible to the client as file system objects, the file system object being represented by a placeholder stored on the client file system, the placeholder identifying a remote storage system from which the content of the file system object is obtainable, the client structured to (i) stream the content of the file system object from the remote storage system to an application hosted on the client responsive to determining that a data structure associated with the application indicates that the application is structured to access the content via streaming and the client further structured to (ii) ensure that all of the content of the file system object is available on the client file system responsive to determining that the application is not structured to access the content via streaming, the client ensuring by copying all of the content of the file system object from the remote storage system to the client file system; and providing the data of the file system object from the remote storage system. - View Dependent Claims (19)
-
Specification