摘要 |
A method, apparatus, system, and signal-bearing medium that, in an embodiment, accumulate multiple work units into a bundle and send the bundle to a selected active server. The active server is selected based on the relative costs for the work units and costs for servers. In an embodiment, selecting the active server includes determining relative work unit costs and relative server costs, calculating total weighted costs for the servers based on the relative work unit costs and the relative server costs, and selecting the active server that has the lowest total weighted cost. The active server may either process a work in the bundle locally or send the work unit to a passive server for processing. The active server determines whether each work unit can be executed at the active server. If the work unit can be executed on the active server, the active server executes the work unit and creates local results. If the work unit cannot be executed on the server, the active server sends the work unit to a passive server, and the passive server creates remote results. The active server receives the remote results from the passive server, combines the local results with the remote results into combined results, and sends the combined results to a client. In various embodiments, branch and dependency data are included in the bundle, which the active server uses to order and conditionally process for the work units.
|