Large-scale databases accessible by multiple users and multiple tenants (e.g., distinct organizational entities) typically include a plurality of read servers for executing database read operations. Database read operations do not modify the database; therefore, multiple read operations can occur in parallel without a danger of corrupting data. When a database read operation is received by the database, a read server is selected by the database and the operation is provided to the read server. In the event read operations are provided to a read server more rapidly than the operations can be executed, the read server holds read operations in a queue of pending operations. Estimating the time to execute an operation is difficult (for example, the time to complete a read operation typically depends strongly on the quantity of data to read from the database, which may not be reflected in the instructions of the read operation), so determining the length of the queue associated with a given read server or the read server with the shortest queue can be difficult. A read operation can be put in a read server queue with a very time consuming operation in front of it and be stuck for an unnecessarily long period of time.
USPTO Backgrounds
USPTO Backgrounds