Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/19/10 09:17:24 (14 years ago)
Author:
kgrading
Message:

added minor speedups and better transaction handling to the server (#828)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3.2/sources/HeuristicLab.Hive.Server.Core/3.2/ClientCommunicator.cs

    r3578 r3931  
    120120                Logger.Info("Client timed out and is on RESET");
    121121                foreach (JobDto job in DaoLocator.JobDao.FindActiveJobsOfClient(client)) {
    122                   jobManager.ResetJobsDependingOnResults(job);
     122                  DaoLocator.JobDao.SetJobOffline(job);
    123123                  lock (newAssignedJobs) {
    124124                    if (newAssignedJobs.ContainsKey(job.Id))
     
    149149              lastHeartbeats.Remove(client.Id);
    150150            foreach (JobDto job in DaoLocator.JobDao.FindActiveJobsOfClient(client)) {
    151               jobManager.ResetJobsDependingOnResults(job);
     151              DaoLocator.JobDao.SetJobOffline(job);
    152152            }
    153153            heartbeatLock.ExitWriteLock();
     
    428428      JobDto job2Calculate = scheduler.GetNextJobForClient(clientId);
    429429      if (job2Calculate != null) {
    430         response.Job = job2Calculate;
     430        response.Job = job2Calculate;       
    431431        response.Job.PluginsNeeded = DaoLocator.PluginInfoDao.GetPluginDependenciesForJob(response.Job);
    432432        response.Success = true;
     
    481481
    482482      if (response.Success) {
    483         jobStream = DaoLocator.JobDao.GetSerializedJobStream(result.JobId);
    484 
     483        Logger.Debug("Trying to aquire WCF Job Stream");
     484        //jobStream = DaoLocator.JobDao.GetSerializedJobStream(result.JobId);
     485        //Logger.Debug("Job Stream Aquired");
    485486        byte[] buffer = new byte[3024];
     487        List<byte> serializedJob = new List<byte>();
    486488        int read = 0;
    487         while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) {
    488           jobStream.Write(buffer, 0, read);
    489         }
    490         jobStream.Close();
     489        int i = 0;       
     490        while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) {         
     491          for (int j = 0; j < read; j++) {
     492            serializedJob.Add(buffer[j]);
     493          }
     494          if (i% 100 == 0)
     495            Logger.Debug("Writing to stream: " + i);         
     496          //jobStream.Write(buffer, 0, read);
     497          i++;
     498        }
     499        Logger.Debug("Done Writing, closing the stream!");               
     500        //jobStream.Close();
     501
     502        DaoLocator.JobDao.SetBinaryJobFile(result.JobId, serializedJob.ToArray());
    491503      }
    492504      Logger.Info("END Job received for Storage:");
     505      stream.Dispose();
    493506      return response;
    494507    }
     
    656669        foreach (JobDto job in jobsOfClient) {
    657670          if (job.State != State.finished)
    658             jobManager.ResetJobsDependingOnResults(job);
     671            DaoLocator.JobDao.SetJobOffline(job);
    659672        }
    660673      }
Note: See TracChangeset for help on using the changeset viewer.