US 12,340,104 B1
Universal storage handler
Sumit Sharma, Delhi (IN); and Ankur Kumar Singh, Gurgaon (IN)
Assigned to Expedia, Inc., Seattle, WA (US)
Filed by Expedia, Inc., Seattle, WA (US)
Filed on Jan. 11, 2024, as Appl. No. 18/410,476.
Claims priority of application No. 202341087583 (IN), filed on Dec. 21, 2023.
Int. Cl. G06F 3/00 (2006.01); G06F 3/06 (2006.01)
CPC G06F 3/0635 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0617 (2013.01); G06F 3/067 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A system comprising:
computer-readable memory to store executable instructions; and
a processor in communication with the computer-readable memory, wherein the processor is configured by the executable instructions to at least:
receive a request to store data;
identify, based at least in part on the request, a first storage system in which the data is intended to be stored, wherein the first storage system is associated with a first storage type;
determine that storing the data in the first storage system would temporarily exceed an available storage of the first storage system;
in response to determining that storing the data in the first storage system would temporarily exceed the available storage of the first storage system,
identify, based at least in part on the request, a second storage system, which is available for temporary storage of the data, from a plurality of storage systems, wherein the second storage system is associated with a second storage type, wherein the second storage system is associated with a first storage characteristic, and wherein the second storage type is different from the first storage type;
identify, based at least in part on the request, a third storage system, which is available for temporary storage of the data, from a plurality of storage systems, wherein the third storage system is associated with a third storage type, and wherein the third storage system is associated with a second storage characteristic;
determine the first storage characteristic is preferred over the second storage characteristic;
determine that the second storage system has excess storage capacity;
in response to determining that the second storage system has excess storage capacity, transmit a least a portion of the data to the second storage system for temporary storage without provisioning additional storage for the portion of the data in the first storage system, wherein the portion of the data is transmitted to the second storage system based further in part on the first storage characteristic being determined to be preferred over the second storage characteristic;
determine the first storage system has become available to store the portion of the data temporarily stored in the second storage system;
retrieve the portion of the data from the second storage system; and
return, to the first storage system, the portion of the data.