Dynamic selection of storage tiers
First Claim
1. A computer-implemented method for dynamically selecting a storage tier for storing an object from a plurality of storage tiers, the method comprising performing computer-implemented operations for:
- receiving, via an Application Programming Interface (API) exposed by an operating system executing on a computing device, a request to store an object at an unspecified location, the request being received from an application executing on the computing device and the request comprising the object to be stored, one or more object location factors, and an optimization factor that identifies one or more attributes associated with selecting the storage tier for storing the object;
monitoring a plurality of object location factors for the plurality of storage tiers, the plurality of storage tiers including a local storage tier including a memory of a local storage device and a mass storage device of the local storage device, a local network storage tier, and a remote network storage tier that comprises one or more storage resources provided by one or more data centers, wherein monitoring the plurality of object location factors includes monitoring a usage pattern associated with the object and the one or more object location factors; and
in response to receiving the request, selecting by way of the operating system the selected storage tier from the plurality of storage tiers for storing the object based at least in part upon a type of the object, at least one of the plurality of the object location factors and the one or more object location factors, and the optimization factor;
causing the object to be stored at the selected storage tier;
creating data that indicates the object is stored at the selected storage tier;
receiving a request to retrieve the object; and
in response to receiving the request to retrieve the object, utilizing the data to identify the selected storage tier for the object, retrieving the object from the selected storage tier, and providing the object in response to the request to retrieve the object.
1 Assignment
0 Petitions
Accused Products
Abstract
An operating system is configured to receive a request to store an object that does not specify the location at which the object should be stored. The request might also include an optimization factor and one or more object location factors. The operating system might also generate object location factors or retrieve object location factors from one or more external locations. Object location factors might also be utilized that are based upon properties of the object to be stored. Utilizing the object location factors, and the optimization factor if provided, the operating system dynamically selects an appropriate storage tier for storing the object. The tiers might include a local storage tier, a local network storage tier, a remote network storage tier, and other types of storage tiers. The object is then stored on the selected storage tier. The object may be retrieved from the storage tier at a later time.
17 Citations
20 Claims
-
1. A computer-implemented method for dynamically selecting a storage tier for storing an object from a plurality of storage tiers, the method comprising performing computer-implemented operations for:
-
receiving, via an Application Programming Interface (API) exposed by an operating system executing on a computing device, a request to store an object at an unspecified location, the request being received from an application executing on the computing device and the request comprising the object to be stored, one or more object location factors, and an optimization factor that identifies one or more attributes associated with selecting the storage tier for storing the object; monitoring a plurality of object location factors for the plurality of storage tiers, the plurality of storage tiers including a local storage tier including a memory of a local storage device and a mass storage device of the local storage device, a local network storage tier, and a remote network storage tier that comprises one or more storage resources provided by one or more data centers, wherein monitoring the plurality of object location factors includes monitoring a usage pattern associated with the object and the one or more object location factors; and in response to receiving the request, selecting by way of the operating system the selected storage tier from the plurality of storage tiers for storing the object based at least in part upon a type of the object, at least one of the plurality of the object location factors and the one or more object location factors, and the optimization factor; causing the object to be stored at the selected storage tier; creating data that indicates the object is stored at the selected storage tier; receiving a request to retrieve the object; and in response to receiving the request to retrieve the object, utilizing the data to identify the selected storage tier for the object, retrieving the object from the selected storage tier, and providing the object in response to the request to retrieve the object. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus, comprising:
-
a processor; and a non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by the processor, cause the apparatus to; receive, via an Application Programming Interface (API) exposed by an operating system executing on the apparatus, a request to store an object at an unspecified location, the request being received from an application executing on the apparatus and including the object to be stored, one or more object location factors, and an optimization factor that identifies one or more attributes associated with selecting the storage tier for storing the object; in response to receiving the request, select, by the operating system, a selected storage location for storing the object based at least in part upon a type of the object, the one or more object location factors, and the optimization factor, wherein the selected storage location is selected from a plurality of storage locations including a local storage location and a network storage location, wherein the local storage location comprises one or more memories and one or more mass storage devices of the apparatus and the network storage location comprises one or more storage resources provided by one or more data centers; cause the object to be stored at the selected storage location; create data that indicates the object is stored at the selected storage location; receive a request to retrieve the object; and in response to receiving the request to retrieve the object, utilize the data to identify the selected storage location for the object, retrieve the object from the selected storage location, and provide the object in response to the request to retrieve the object. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to:
-
receive, via an Application Programming Interface (API) exposed by an operating system executing on the computer, a request to store an object at an unspecified location, the request being received from an application executing on the computer and including the object to be stored, one or more object location factors, and an optimization factor that identifies one or more attributes associated with selecting the storage tier for storing the object; in response to receiving the request to store the object, determine a selected storage tier for the object based at least in part upon a type of the object, and one or more object location factors, the selected storage tier is selected from a local storage tier that comprises one or more memories of the computer, one or more mass storage devices of the computer, and one or more of a local network storage tier, or a remote network storage tier; cause the object to be stored at the selected storage tier; create data that indicates the object is stored at the selected storage tier; receive a request to retrieve the object; and in response to receiving the request to retrieve the object, utilize the data to identify the selected storage tier for the object, retrieve the object from the selected storage tier, and provide the object in response to the request to retrieve the object. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification