Currently we have a single call queue that serves all the "normal user" requests, and the requests are executed in FIFO.
When running map-reduce jobs and user-queries on the same machine, we want to prioritize the user-queries.
Without changing too much code, and not having the user giving hints, we can add a “vtime” field to the scanner, to keep track from how long is running. And we can replace the callQueue with a priorityQueue. In this way we can deprioritize long-running scans, the longer a scan request lives the less priority it gets.