Esempio n. 1
0
 private void UpdateUserPriority(IPersistenceManager pm, DA.UserPriority up)
 {
     pm.UseTransaction(() => {
         up.DateEnqueued = DateTime.Now;
         pm.SubmitChanges();
     });
 }
        private void AggregateClientInfos(IPersistenceManager pm, List <FactClientInfo> clientInfos)
        {
            var factClientInfoDao = pm.FactClientInfoDao;
            var last  = clientInfos.Last();
            var infos = clientInfos.GroupBy(x => x.ClientId).Select(x => new {
                NumUsedCores    = (int)x.Average(y => y.NumUsedCores),
                NumTotalCores   = (int)x.Average(y => y.NumTotalCores),
                UsedMemory      = (int)x.Average(y => y.UsedMemory),
                TotalMemory     = (int)x.Average(y => y.TotalMemory),
                CpuUtilization  = Math.Round(x.Average(y => y.CpuUtilization), 2),
                IdleTime        = x.Sum(y => y.IdleTime),
                OfflineTime     = x.Sum(y => y.OfflineTime),
                UnavailableTime = x.Sum(y => y.UnavailableTime)
            }).SingleOrDefault();

            if (infos != null)
            {
                pm.UseTransaction(() => {
                    last.NumUsedCores    = infos.NumUsedCores;
                    last.NumTotalCores   = infos.NumTotalCores;
                    last.UsedMemory      = infos.UsedMemory;
                    last.TotalMemory     = infos.TotalMemory;
                    last.CpuUtilization  = infos.CpuUtilization;
                    last.IdleTime        = infos.IdleTime;
                    last.OfflineTime     = infos.OfflineTime;
                    last.UnavailableTime = infos.UnavailableTime;
                    clientInfos.Remove(last);
                    factClientInfoDao.Delete(clientInfos);
                    pm.SubmitChanges();
                });
            }
        }
Esempio n. 3
0
        private void AggregateJob(IPersistenceManager pm, Guid id)
        {
            var jobDao      = pm.JobDao;
            var factTaskDao = pm.FactTaskDao;

            pm.UseTransaction(() => {
                if (jobDao.Exists(id))
                {
                    return;
                }
                var jobTimeData = factTaskDao.GetByJobId(id).GroupBy(x => x.JobId).Select(x => new {
                    CalculatingTime    = x.Sum(y => y.CalculatingTime),
                    WaitingTime        = x.Sum(y => y.WaitingTime),
                    TransferTime       = x.Sum(y => y.TransferTime),
                    InitialWaitingTime = x.Sum(y => y.InitialWaitingTime),
                    StartTime          = x.Min(y => y.StartTime),
                    EndTime            = x.Max(y => y.EndTime)
                }).SingleOrDefault();
                if (jobTimeData != null)
                {
                    factTaskDao.DeleteByJobId(id);
                    factTaskDao.Save(new FactTask {
                        TaskId             = Guid.NewGuid(),
                        JobId              = id,
                        CalculatingTime    = jobTimeData.CalculatingTime,
                        WaitingTime        = jobTimeData.WaitingTime,
                        TransferTime       = jobTimeData.TransferTime,
                        InitialWaitingTime = jobTimeData.InitialWaitingTime,
                        StartTime          = jobTimeData.StartTime,
                        EndTime            = jobTimeData.EndTime,
                        NumCalculationRuns = 0,
                        NumRetries         = 0,
                        CoresRequired      = 0,
                        MemoryRequired     = 0,
                        Priority           = 0,
                        TaskState          = TaskState.Finished
                    });
                }
                pm.SubmitChanges();
            });
        }
Esempio n. 4
0
        private void AssignTask(IPersistenceManager pm, DA.Slave slave, Guid taskId)
        {
            const DA.TaskState transferring = DA.TaskState.Transferring;
            DateTime           now          = DateTime.Now;
            var taskDao     = pm.TaskDao;
            var stateLogDao = pm.StateLogDao;

            pm.UseTransaction(() => {
                var task = taskDao.GetById(taskId);
                stateLogDao.Save(new DA.StateLog {
                    State     = transferring,
                    DateTime  = now,
                    TaskId    = taskId,
                    SlaveId   = slave.ResourceId,
                    UserId    = null,
                    Exception = null
                });
                task.State         = transferring;
                task.LastHeartbeat = now;
                pm.SubmitChanges();
            });
        }
 private void AggregateClientInfos(IPersistenceManager pm, List<FactClientInfo> clientInfos) {
   var factClientInfoDao = pm.FactClientInfoDao;
   var last = clientInfos.Last();
   var infos = clientInfos.GroupBy(x => x.ClientId).Select(x => new {
     NumUsedCores = (int)x.Average(y => y.NumUsedCores),
     NumTotalCores = (int)x.Average(y => y.NumTotalCores),
     UsedMemory = (int)x.Average(y => y.UsedMemory),
     TotalMemory = (int)x.Average(y => y.TotalMemory),
     CpuUtilization = Math.Round(x.Average(y => y.CpuUtilization), 2),
     IdleTime = x.Sum(y => y.IdleTime),
     OfflineTime = x.Sum(y => y.OfflineTime),
     UnavailableTime = x.Sum(y => y.UnavailableTime)
   }).SingleOrDefault();
   if (infos != null) {
     pm.UseTransaction(() => {
       last.NumUsedCores = infos.NumUsedCores;
       last.NumTotalCores = infos.NumTotalCores;
       last.UsedMemory = infos.UsedMemory;
       last.TotalMemory = infos.TotalMemory;
       last.CpuUtilization = infos.CpuUtilization;
       last.IdleTime = infos.IdleTime;
       last.OfflineTime = infos.OfflineTime;
       last.UnavailableTime = infos.UnavailableTime;
       clientInfos.Remove(last);
       factClientInfoDao.Delete(clientInfos);
       pm.SubmitChanges();
     });
   }
 }
 private void AssignTask(IPersistenceManager pm, DA.Slave slave, Guid taskId) {
   const DA.TaskState transferring = DA.TaskState.Transferring;
   DateTime now = DateTime.Now;
   var taskDao = pm.TaskDao;
   var stateLogDao = pm.StateLogDao;
   pm.UseTransaction(() => {
     var task = taskDao.GetById(taskId);
     stateLogDao.Save(new DA.StateLog {
       State = transferring,
       DateTime = now,
       TaskId = taskId,
       SlaveId = slave.ResourceId,
       UserId = null,
       Exception = null
     });
     task.State = transferring;
     task.LastHeartbeat = now;
     pm.SubmitChanges();
   });
 }
 private void UpdateUserPriority(IPersistenceManager pm, DA.UserPriority up) {
   pm.UseTransaction(() => {
     up.DateEnqueued = DateTime.Now;
     pm.SubmitChanges();
   });
 }
Esempio n. 8
0
 private void AggregateJob(IPersistenceManager pm, Guid id) {
   var jobDao = pm.JobDao;
   var factTaskDao = pm.FactTaskDao;
   pm.UseTransaction(() => {
     if (jobDao.Exists(id)) return;
     var jobTimeData = factTaskDao.GetByJobId(id).GroupBy(x => x.JobId).Select(x => new {
       CalculatingTime = x.Sum(y => y.CalculatingTime),
       WaitingTime = x.Sum(y => y.WaitingTime),
       TransferTime = x.Sum(y => y.TransferTime),
       InitialWaitingTime = x.Sum(y => y.InitialWaitingTime),
       StartTime = x.Min(y => y.StartTime),
       EndTime = x.Max(y => y.EndTime)
     }).SingleOrDefault();
     if (jobTimeData != null) {
       factTaskDao.DeleteByJobId(id);
       factTaskDao.Save(new FactTask {
         TaskId = Guid.NewGuid(),
         JobId = id,
         CalculatingTime = jobTimeData.CalculatingTime,
         WaitingTime = jobTimeData.WaitingTime,
         TransferTime = jobTimeData.TransferTime,
         InitialWaitingTime = jobTimeData.InitialWaitingTime,
         StartTime = jobTimeData.StartTime,
         EndTime = jobTimeData.EndTime,
         NumCalculationRuns = 0,
         NumRetries = 0,
         CoresRequired = 0,
         MemoryRequired = 0,
         Priority = 0,
         TaskState = TaskState.Finished
       });
     }
     pm.SubmitChanges();
   });
 }