We burn a lot of resources having multiple concurrent requests for the same objects that we already have open request to retrieve under certain situations.
We just need a set of object IDs currently being retrieved, add it to the set when a request somes in and remove it when we complete the request. Only queue processing if the entry didn't exist.
We burn a lot of resources having multiple concurrent requests for the same objects that we already have open request to retrieve under certain situations.
We just need a set of object IDs currently being retrieved, add it to the set when a request somes in and remove it when we complete the request. Only queue processing if the entry didn't exist.