1. A method comprising: receiving, by a client-side scan server, a request to scan a segment; 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; identifying, by the client-side scan server, one or more server-side scan servers, each of which has access to a copy of the segment in an in-memory store; 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; 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.