Example #1
0
 /** 
  * Constructor
  * @param node local node
  * @param state RPC related state.
  * @param task map-reduce task.
  * @param args arguments to the map reduce task.
  */
 public MapReduceComputation(Node node, object state, 
                             MapReduceTask task,
                             MapReduceArgs args)
 {
   _node = node;
   _rpc = node.Rpc;
   _mr_request_state = state;
   _mr_task = task;
   _mr_args = args;
   //Here is our state variable:
   _state = new State();
   _result = State.DEFAULT_OBJ;
 }
Example #2
0
 /**
  * Allows subscribing new map-reduce tasks to the handler.
  * @param task an object representing the map-reduce task.
  */
 public void SubscribeTask(MapReduceTask task) {
   lock(_sync) {
     if (_name_to_task.ContainsKey(task.TaskName)) {
       throw new Exception(String.Format("Map reduce task name: {0} already registered.", task.TaskName));
     }
     _name_to_task[task.TaskName] = task;
   }
 }
Example #3
0
 /**
  * Constructor
  * @param n local node
  */
 public MapReduceHandler(Node n) {
   _node = n;
   _rpc = n.Rpc;
   _name_to_task = new Dictionary<string, MapReduceTask>();
   _sync = new object();
   //Set up some basic tasks:
   var basetasks = new MapReduceTask[]{
     new MapReduceBoundedBroadcast(_node),
     new MapReduceGreedy(_node),
     new MapReduceListConcat(_node),
   };
   foreach(MapReduceTask mrt in basetasks) {
     SubscribeTask(mrt);
   }
 }
Example #4
0
 /** 
  * Constructor
  * @param node local node
  * @param state RPC related state.
  * @param task map-reduce task.
  * @param args arguments to the map reduce task.
  */
 public MapReduceComputation(Node node, object state, 
                             MapReduceTask task,
                             MapReduceArgs args)
 {
   _node = node;
   _rpc = RpcManager.GetInstance(node);
   _mr_request_state = state;
   _mr_task = task;
   _mr_args = args;
   _queue_to_child = new Hashtable();
   _sync = new object();
   _finished = false;
 }
Example #5
0
 /**
  * Starts a map-reduce computation. 
  * @param task map reduce task to start.
  * @param args arguments for the map-reduce task. 
  * @param req_state RPC related state for the invocation.
  */
 protected void Start(MapReduceTask task, MapReduceArgs args, object req_state) {
   MapReduceComputation mr = new MapReduceComputation(_node, req_state, task, args);
   mr.Start();
 }
Example #6
0
 /** 
  * Constructor
  * @param node local node
  * @param state RPC related state.
  * @param task map-reduce task.
  * @param args arguments to the map reduce task.
  */
 public MapReduceComputation(Node node, object state, 
                             MapReduceTask task,
                             MapReduceArgs args)
 {
   _node = node;
   _rpc = RpcManager.GetInstance(node);
   _mr_request_state = state;
   _mr_task = task;
   _mr_args = args;
   _queue_to_child = new Hashtable();
   _sync = new object();
   _finished = false;
   _start_time = DateTime.UtcNow;
   //register with the node hearbeat to for computation to finish.
   lock(_sync) {
     _node.HeartBeatEvent += new EventHandler(this.CheckTimeout);
   }
 }