The orchestrator code seems to me to be too complicated because it is
trying to accommodate both simple, direct job submission and threaded
"pull" submission in the same code.  How about splitting these into two
separate implementations of the Orchestrator interface:

* SimpleOrchestratorImpl.java: this just handles direct job submission
with threadpool. size=0 and is for basic testing and instructional purposes.

* PullBasedOrchestrator.java: this is the current code with all the
direct job submission stuff removed.  Threadpool.size >0 or else throw
an exception. Submissions are done asynchronously by pulling ready jobs
from the registry.

You may want to split EmbeddedGFACJobSubmitter into two different
implementations of JobSubmitter as well.  


Marlon

Reply via email to