Add option to start multiple workers on a single EC2 instance (feedback from
tutorial).
Add API to specify disk, ram, and memory.
Add work_queue_task_specify_command so that command can be added to that task after the object is already created.
Added basic tracking of cores, disk, and memory by the worker
so that they are periodically returned to the master, and then
summed up by work_queue_get_resources.
Foreman now sums up the resources available in the queue,
and sends that to the master.
Updates are only transmitted to the master when they
are different from the previous update.
Dispatch tasks to each worker, up to the number of cores available.
Track the memory and disk used along the way.
Advertise to the catalog the total resources available and in use.
Eliminated two information transfers that cause trouble:
- Master should not be querying the catalog to enforce pool decisions.
- Worker need not reveal the pool name or the workspace to the master.
Cleaned up chatty debug messages.
Fixed broken ready message.
Updated copyright boilerplate.
Cleaned up handling of ready and resource update messages.
Dynamically allocate worker properties, to save some memory and avoid boundary problems.
Always assume worker is asynchronous.
Moved work_queue_get_resources to work_queue_internal -- not sure if this is going to be a public API.
Removed master_mode setting -- always report to catalog if project is set.
Removed task_status, which is not sufficient to reflect multiple tasks running.
Task is now transmitted as a package that indicates resources
and file dependencies, separately from the actual file transfer.
Converted several short timeouts to long timeouts for robustness.
Fixed utterly broken command line.
Cleaned up the debug output by routing all messages in and out
through send_master_message and recv_master_message.