1. A method, comprising: receiving, by one or more computing devices, a request to schedule a task, the task being associated with one or more constraints identifying an amount of computing resources needed to perform the task; randomly selecting independent of the one or more constraints, by the one or more computing devices, a subset of candidate server computing devices from a plurality of server computing devices to compete in a polling tournament for scheduling the task, the subset comprising at least two candidate server computing devices; after randomly selecting the subset of candidate computing devices, polling, by the one or more computing devices, the candidate server computing devices of the subset to determine an amount of computing capacity currently available in each candidate server computing device; comparing, by one or more computing devices, the amount of computing capacity currently available in each of the candidate server computing devices of the subset; determining, by the one or more computing devices, a winning candidate server computing device of the polling tournament based on the comparison of the amount of computing capacity currently available in each of the polled candidate server computing devices and the constraints; and allocating, by the one or more computing devices, the task to the winning candidate server computing device.