US 12,406,216 B2
Storage location selection according to query evaluation
Alexey Pavlenko, Vilnius (LT); Jakob Holdgaard Thomsen, Risskov (DK); and Dron Rathore, Aarhus (DK)
Assigned to Uber Technologies, Inc., San Francisco, CA (US)
Filed by Uber Technologies, Inc., San Francisco, CA (US)
Filed on Jun. 13, 2024, as Appl. No. 18/742,253.
Application 18/742,253 is a continuation of application No. 16/805,448, filed on Feb. 28, 2020, granted, now 12,039,474.
Prior Publication US 2024/0330810 A1, Oct. 3, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/00 (2019.01); G06F 16/13 (2019.01); G06F 16/2455 (2019.01); G06F 16/2457 (2019.01); G06Q 10/0631 (2023.01); G06Q 50/40 (2024.01)
CPC G06Q 10/06315 (2013.01) [G06F 16/13 (2019.01); G06F 16/24565 (2019.01); G06F 16/24578 (2019.01); G06Q 50/40 (2024.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, from a client device, a request for storing a file in a directory;
retrieving, from a placement policy library, a placement policy associated with the directory, the placement policy specifying:
a plurality of copies to be stored, and
a set of policy constraints for each of the plurality of copies, the set of policy constraints including
(1) an attribute set of storage location to which a corresponding copy is to be stored; and
(2) required upload mode selected from synchronous or asynchronous, wherein the policy constraints for the plurality of copies include a first set of policy constraints associated with a first copy of the plurality of copies of the file, and a second set of policy constraints associated with a second copy of the plurality of copies of the file, and wherein the first or second set of policy constraints specify (1) an attribute set of storage to which the respective first or second copy of file is to be stored, and (2) whether the respective first or second copy of file is uploaded using a synchronous or asynchronous upload, and wherein a synchronous upload stores the file temporarily proximate to an update time, and an asynchronous upload stores the file as a background operation;
determining a current attribute set for each of a plurality of storage locations;
generating a data structure storing current attribute sets of the plurality of storage locations;
determining a first query in a structured query language for the first copy of the file, the first query comprising the first set of policy constraints for the first copy;
executing the first query against the data structure storing the current attribute sets for storage locations to identify a first set of one or more candidate storage locations for storage of the first copy based on evaluation of the current attribute sets of the plurality of storage locations against the first query;
selecting a first candidate storage location from the first set of one or more candidate storage locations for storage of the first copy;
providing the first copy of the file to the first candidate storage location for storage;
determining a second query in a structured query language for the second copy comprising the second set of policy constraints for the second copy;
executing the second query against the data structure storing the current attribute sets for storage locations to identify a second set of one or more candidate storage locations for storage of the second copy based on evaluation of the current attribute sets of the plurality of storage locations against the second query;
selecting a second candidate storage location from the second set of one or more candidate storage locations for storage of the second copy; and
providing the second copy of the file to the second candidate storage location for storage.