Patent ID: 9715414
Date: 2017-07-25
CPC Classifications: G06F,H04L

Claim:
1. A method comprising: executing a plurality of database servers, wherein each database server of the plurality of database servers has access to a particular database object; executing a plurality of server-side scan servers, wherein each server-side scan server executes on a respective database server of the plurality of database servers; receiving, by a client-side scan server that is executing on a particular database server, a request to scan a segment of the particular database object; wherein the plurality of server-side scan servers includes a first subset and a second subset; wherein each server-side scan server in the first subset has access to a copy of the segment in an in-memory store; wherein each server-side scan server in the second subset does not have access to a copy of the segment in an in-memory store; creating, by the client-side scan server, a plurality of scanning tasks to answer the request, wherein the plurality of scanning tasks are independently executable; wherein creating the plurality of scanning tasks includes creating the plurality of scanning tasks such that each scanning task is associated with a scan range that does not overlap with the scan range of any other of the plurality of scanning tasks; identifying, by the client-side scan server, one or more server-side scan servers that belong to the first subset; determining assignments, by the client-side scan server, that assign each of the plurality of scanning tasks to a corresponding server-side scan server of the one or more server-side scan servers; distributing, by the client-side scan server, the plurality of scanning tasks to the one or more server-side scan servers based on the assignments, to cause each scan range to be scanned by only the server-side scan server that is assigned the scanning task associated with the scan range; receiving, at the client-side scan server, results of the plurality of scanning tasks from the one or more server-side scan servers; returning, by the client-side scan server, the results in response to the request; and wherein the method is performed by one or more computing devices.