Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/21/10 18:16:24 (13 years ago)
Author:
cneumuel
Message:

#1260

  • increased timeouts for sent jobs (which are needed if the jobs take long time to deserialize on slave)
  • added DeleteJob to ClientService
  • made optimizer actually Pause instead of Stop when stop is called explicitly (so they can be resumed later)
  • temporarily disabled job-abortion from server because it aborted jobs which took too long to deserialize on slaves (this issue needs to be investigated)
  • reduced locking of engines on slave so that the deserialization does not block heartbeats

#1347

  • worked on HiveEngine
  • added test project for HiveEngine
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.3/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Core.cs

    r5093 r5153  
    141141            catch (AppDomainUnloadedException) {
    142142              // appdomain already unloaded. Finishing job probably ongoing
    143             }
    144           else
     143            } else
    145144            Logger.Error("AbortJob: Engine doesn't exist");
    146145          break;
     
    291290
    292291        byte[] sJob = engines[jId].GetFinishedJob();
    293        
     292
    294293        try {
    295294          Logger.Info("Sending the finished job with id: " + jId);
     
    384383            AppDomain appDomain = HeuristicLab.PluginInfrastructure.Sandboxing.SandboxManager.CreateAndInitSandbox(e.Result.Obj.Id.ToString(), pluginDir, Path.Combine(pluginDir, PluginCache.ConfigFileName));
    385384            appDomain.UnhandledException += new UnhandledExceptionEventHandler(appDomain_UnhandledException);
    386             lock (engines) {
    387               if (!jobs.ContainsKey(e.Result.Obj.Id)) {
    388                 jobs.Add(e.Result.Obj.Id, e.Result.Obj);
    389                 appDomains.Add(e.Result.Obj.Id, appDomain);
    390                 Logger.Debug("Creating AppDomain");
    391                 Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
     385
     386            if (!jobs.ContainsKey(e.Result.Obj.Id)) {
     387              jobs.Add(e.Result.Obj.Id, e.Result.Obj);
     388              appDomains.Add(e.Result.Obj.Id, appDomain);
     389              Logger.Debug("Creating AppDomain");
     390
     391              Executor engine;
     392              lock (engines) {
     393                engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
    392394                Logger.Debug("Created AppDomain");
    393395                engine.JobId = e.Result.Obj.Id;
     
    395397                Logger.Debug("Starting Engine for job " + e.Result.Obj.Id);
    396398                engines.Add(e.Result.Obj.Id, engine);
    397                 engine.Start(e.Data);
    398                 SlaveStatusInfo.JobsFetched++;
    399                 Logger.Info("Increment FetchedJobs to:" + SlaveStatusInfo.JobsFetched);
    400399              }
     400              SlaveStatusInfo.JobsFetched++;
     401              Logger.Info("Increment FetchedJobs to:" + SlaveStatusInfo.JobsFetched);
     402              engine.Start(e.Data);
    401403            }
    402404            heartbeatManager.AwakeHeartBeatThread();
Note: See TracChangeset for help on using the changeset viewer.