On 14 Jan 2011, at 15:47, Vladimir Blagojevic wrote:
Hi,
Manik and I agreed on final look of distributed execution framework
API[1]. We removed DistributedTask used for migrating
DistributedCallable to execution nodes and replaced it with
DistributedExecutorService which follows ideas of a familiar
ExecutorService from util.concurrent.
MapReduce is still a beast of its own that can not fit into
ExecutorService paradigm but I think we nailed it with a simple and easy
to use API. See in particular examples provided.
The last item Manik and I disagree on is use of DistributedTaskContext.
DistributedTaskContext is given to each DistributedCallable once it has
migrated to remote node for execution. DistributedTaskContext might
evolve and I'd rather keep it in the framework while Manik wants to have
a simple setter on DistributedCallable:
setEnvironment(Cache, K...)
I prefer Manik's design, I generally try to design APIs for known use cases.