- Timestamp:
- 05/17/11 18:29:41 (14 years ago)
- Location:
- branches/HeuristicLab.Hive-3.4/sources
- Files:
-
- 3 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/JobResultPoller.cs
r6219 r6229 100 100 IsPolling = false; 101 101 } 102 if (stopRequested) return; 102 103 if (!autoResumeOnException) return; 103 104 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/RefreshableHiveExperiment.cs
r6219 r6229 175 175 } 176 176 private void jobResultPoller_IsPollingChanged(object sender, EventArgs e) { 177 this.refreshAutomatically = jobResultPoller.IsPolling; 178 OnRefreshAutomaticallyChanged(); 177 if (this.refreshAutomatically != jobResultPoller.IsPolling) { 178 this.refreshAutomatically = jobResultPoller.IsPolling; 179 OnRefreshAutomaticallyChanged(); 180 } 179 181 } 180 182 private void jobResultPoller_JobResultReceived(object sender, EventArgs<IEnumerable<LightweightJob>> e) { -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Slave.cs
r5614 r6229 51 51 [DataMember] 52 52 public DateTime? LastHeartbeat { get; set; } 53 [DataMember] 54 public double CpuUtilization { get; set; } 53 55 54 56 public Slave() { -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/HeuristicLab.Services.Hive.Common-3.4.csproj
r6000 r6229 95 95 <ItemGroup> 96 96 <Compile Include="ApplicationConstants.cs" /> 97 <Compile Include="DataTransfer\SlaveStatistics.cs" /> 98 <Compile Include="DataTransfer\Statistics.cs" /> 99 <Compile Include="DataTransfer\UserStatistics.cs" /> 97 100 <Compile Include="ServiceFaults\PluginAlreadyExistsFault.cs" /> 98 101 <None Include="HeuristicLabServicesHiveCommonPlugin.cs.frame" /> -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Convert.cs
r6006 r6229 213 213 CpuArchitecture = source.CpuArchitecture, 214 214 OperatingSystem = source.OperatingSystem, 215 LastHeartbeat = source.LastHeartbeat 215 LastHeartbeat = source.LastHeartbeat, 216 CpuUtilization = source.CpuUtilization 216 217 }; 217 218 } … … 236 237 target.OperatingSystem = source.OperatingSystem; 237 238 target.LastHeartbeat = source.LastHeartbeat; 239 target.CpuUtilization = source.CpuUtilization; 238 240 } 239 241 } … … 273 275 } 274 276 #endregion 277 278 #region Statistics 279 public static DT.Statistics ToDto(Statistics source) { 280 if (source == null) return null; 281 return new DT.Statistics { 282 Id = source.StatisticsId, 283 TimeStamp = source.Timestamp, 284 SlaveStatistics = source.SlaveStatistics.Select(x => Convert.ToDto(x)).ToArray(), 285 UserStatistics = source.UserStatistics.Select(x => Convert.ToDto(x)).ToArray() 286 }; 287 } 288 public static Statistics ToEntity(DT.Statistics source) { 289 if (source == null) return null; 290 var entity = new Statistics(); ToEntity(source, entity); 291 return entity; 292 } 293 public static void ToEntity(DT.Statistics source, Statistics target) { 294 if ((source != null) && (target != null)) { 295 target.StatisticsId = source.Id; 296 target.Timestamp = source.TimeStamp; 297 298 } 299 } 300 #endregion 301 302 #region SlaveStatistics 303 public static DT.SlaveStatistics ToDto(SlaveStatistics source) { 304 if (source == null) return null; 305 return new DT.SlaveStatistics { 306 Id = source.StatisticsId, 307 SlaveId = source.SlaveId, 308 Cores = source.Cores, 309 CpuUtilization = source.CpuUtilization, 310 FreeCores = source.FreeCores, 311 FreeMemory = source.FreeMemory, 312 Memory = source.Memory 313 }; 314 } 315 public static SlaveStatistics ToEntity(DT.SlaveStatistics source) { 316 if (source == null) return null; 317 var entity = new SlaveStatistics(); ToEntity(source, entity); 318 return entity; 319 } 320 public static void ToEntity(DT.SlaveStatistics source, SlaveStatistics target) { 321 if ((source != null) && (target != null)) { 322 target.StatisticsId = source.Id; 323 target.SlaveId = source.SlaveId; 324 target.Cores = source.Cores; 325 target.CpuUtilization = source.CpuUtilization; 326 target.FreeCores = source.FreeCores; 327 target.FreeMemory = source.FreeMemory; 328 target.Memory = source.Memory; 329 } 330 } 331 #endregion 332 333 #region UserStatistics 334 public static DT.UserStatistics ToDto(UserStatistics source) { 335 if (source == null) return null; 336 return new DT.UserStatistics { 337 Id = source.StatisticsId, 338 UserId = source.UserId, 339 UsedCores = source.UsedCores, 340 ExecutionTime = string.IsNullOrEmpty(source.ExecutionTime) ? TimeSpan.Zero : TimeSpan.Parse(source.ExecutionTime), 341 ExecutionTimeFinishedJobs = string.IsNullOrEmpty(source.ExecutionTimeFinishedJobs) ? TimeSpan.Zero : TimeSpan.Parse(source.ExecutionTimeFinishedJobs), 342 StartToEndTime = string.IsNullOrEmpty(source.StartToEndTime) ? TimeSpan.Zero : TimeSpan.Parse(source.StartToEndTime) 343 }; 344 } 345 public static UserStatistics ToEntity(DT.UserStatistics source) { 346 if (source == null) return null; 347 var entity = new UserStatistics(); ToEntity(source, entity); 348 return entity; 349 } 350 public static void ToEntity(DT.UserStatistics source, UserStatistics target) { 351 if ((source != null) && (target != null)) { 352 target.StatisticsId = source.Id; 353 target.UserId = source.UserId; 354 target.UsedCores = source.UsedCores; 355 target.ExecutionTime = source.ExecutionTime.ToString(); 356 target.ExecutionTimeFinishedJobs = source.ExecutionTimeFinishedJobs.ToString(); 357 target.StartToEndTime = source.StartToEndTime.ToString(); 358 } 359 } 360 #endregion 275 361 } 276 362 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDao.cs
r6110 r6229 97 97 && (from child in db.Jobs 98 98 where child.ParentJobId == ar.Job.JobId 99 select child.State == JobState.Finished 100 || child.State == JobState.Aborted 99 select child.State == JobState.Finished 100 || child.State == JobState.Aborted 101 101 || child.State == JobState.Failed).All(x => x) 102 102 && (from child in db.Jobs // avoid returning WaitForChildJobs jobs where no child-jobs exist (yet) … … 607 607 #endregion 608 608 609 #region Appointment Methods609 #region Appointment Methods 610 610 public Appointment GetAppointment(Guid id) { 611 611 using (var db = CreateContext()) { … … 643 643 if (entity != null) db.UptimeCalendars.DeleteOnSubmit(entity); 644 644 db.SubmitChanges(); 645 } 646 } 647 #endregion 648 649 #region Statistics Methods 650 public DT.Statistics GetStatistic(Guid id) { 651 using (var db = CreateContext()) { 652 return Convert.ToDto(db.Statistics.SingleOrDefault(x => x.StatisticsId == id)); 653 654 } 655 } 656 657 public IEnumerable<DT.Statistics> GetStatistics(Expression<Func<Statistics, bool>> predicate) { 658 using (var db = CreateContext()) { 659 return db.Statistics.Where(predicate).Select(x => Convert.ToDto(x)).ToArray(); 660 } 661 } 662 663 public Guid AddStatistics(DT.Statistics dto) { 664 using (var db = CreateContext()) { 665 var entity = Convert.ToEntity(dto); 666 db.Statistics.InsertOnSubmit(entity); 667 db.SubmitChanges(); 668 foreach (var slaveStat in dto.SlaveStatistics) { 669 slaveStat.Id = entity.StatisticsId; 670 db.SlaveStatistics.InsertOnSubmit(Convert.ToEntity(slaveStat)); 671 } 672 foreach (var userStat in dto.UserStatistics) { 673 userStat.Id = entity.StatisticsId; 674 db.UserStatistics.InsertOnSubmit(Convert.ToEntity(userStat)); 675 } 676 db.SubmitChanges(); 677 return entity.StatisticsId; 678 } 679 } 680 681 public void DeleteStatistics(Guid id) { 682 using (var db = CreateContext()) { 683 var entity = db.Statistics.FirstOrDefault(x => x.StatisticsId == id); 684 if (entity != null) db.Statistics.DeleteOnSubmit(entity); 685 db.SubmitChanges(); 686 } 687 } 688 689 public List<DT.UserStatistics> GetUserStatistics() { 690 using (var db = CreateContext()) { 691 var executionTimesByUser = from job in db.Jobs 692 group job by job.HiveExperiment.OwnerUserId into g 693 select new { UserId = g.Key, ExecutionTimes = g.Select(x => x.ExecutionTime) }; 694 695 var userStats = new List<DT.UserStatistics>(); 696 foreach (var item in executionTimesByUser) { 697 userStats.Add(new DT.UserStatistics() { 698 UserId = item.UserId, 699 ExecutionTime = TimeSpan.FromMilliseconds(item.ExecutionTimes.Select(x => string.IsNullOrEmpty(x) ? 0 : TimeSpan.Parse(x).TotalMilliseconds).Sum()) 700 }); 701 } 702 703 // Todo: also consider executiontimes of DeletedJobStats 704 // Todo: compute executionTimeFinishedJobs und StartToEndTime (=> dient zum errechnen der Efficiency/Overhead) 705 706 return userStats; 645 707 } 646 708 } … … 657 719 } 658 720 #endregion 721 722 723 659 724 } 660 725 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.cs
r4593 r6229 1 1 namespace HeuristicLab.Services.Hive.DataAccess { 2 partial class SlaveStatistics { 3 } 4 2 5 partial class HiveDataContext { 3 6 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.dbml
r6006 r6229 53 53 <Column Name="OperatingSystem" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" UpdateCheck="Never" /> 54 54 <Column Name="LastHeartbeat" Type="System.DateTime" DbType="DateTime" CanBeNull="true" /> 55 <Column Name="CpuUtilization" Type="System.Double" DbType="float" CanBeNull="false" /> 55 56 </Type> 56 57 <Type Name="SlaveGroup" InheritanceCode="GROUP" /> … … 102 103 <Column Name="LastAccessed" Type="System.DateTime" DbType="DateTime" CanBeNull="true" /> 103 104 <Column Name="IsHiveEngine" Type="System.Boolean" DbType="Bit" CanBeNull="false" /> 105 <Association Name="HiveExperiment_Job" Member="Jobs" ThisKey="HiveExperimentId" OtherKey="HiveExperimentId" Type="Job" /> 104 106 <Association Name="HiveExperiment_HiveExperimentPermission" Member="HiveExperimentPermissions" ThisKey="HiveExperimentId" OtherKey="HiveExperimentId" Type="HiveExperimentPermission" /> 105 <Association Name="HiveExperiment_Job" Member="Jobs" ThisKey="HiveExperimentId" OtherKey="HiveExperimentId" Type="Job" />106 107 </Type> 107 108 </Table> … … 151 152 </Type> 152 153 </Table> 154 <Table Name="" Member="DeletedJobStatistics"> 155 <Type Name="DeletedJobStatistics"> 156 <Column Member="UserId" Type="System.String" IsPrimaryKey="true" CanBeNull="false" /> 157 <Column Name="ExecutionTime" Type="System.String" DbType="VarChar(30)" CanBeNull="false" /> 158 <Column Name="ExecutionTimeFinishedJobs" Type="System.String" DbType="VarChar(30)" CanBeNull="false" /> 159 <Column Name="StartToEndTime" Type="System.String" DbType="VarChar(30)" CanBeNull="false" /> 160 </Type> 161 </Table> 162 <Table Name="" Member="UserStatistics"> 163 <Type Name="UserStatistics"> 164 <Column Name="StatisticsId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" /> 165 <Column Name="UserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" /> 166 <Column Name="ExecutionTime" Type="System.String" DbType="VarChar(30)" CanBeNull="false" /> 167 <Column Name="UsedCores" Storage="_CoresUsed" Type="System.Int32" DbType="Int" CanBeNull="false" /> 168 <Column Name="ExecutionTimeFinishedJobs" Type="System.String" DbType="VarChar(30)" CanBeNull="false" /> 169 <Column Name="StartToEndTime" Type="System.String" DbType="VarChar(30)" CanBeNull="false" /> 170 <Association Name="Statistics_UserStatistics" Member="Statistics" ThisKey="StatisticsId" OtherKey="StatisticsId" Type="Statistics" IsForeignKey="true" /> 171 </Type> 172 </Table> 173 <Table Name="" Member="SlaveStatistics"> 174 <Type Name="SlaveStatistics"> 175 <Column Name="StatisticsId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" /> 176 <Column Name="SlaveId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" /> 177 <Column Name="Cores" Type="System.Int32" DbType="Int" CanBeNull="false" /> 178 <Column Name="FreeCores" Type="System.Int32" DbType="Int" CanBeNull="false" /> 179 <Column Name="CpuUtilization" Type="System.Double" DbType="float" CanBeNull="false" /> 180 <Column Name="Memory" Type="System.Int32" DbType="Int" CanBeNull="false" /> 181 <Column Name="FreeMemory" Type="System.Int32" DbType="Int" CanBeNull="false" /> 182 <Association Name="Statistics_SlaveStatistics" Member="Statistics" ThisKey="StatisticsId" OtherKey="StatisticsId" Type="Statistics" IsForeignKey="true" /> 183 </Type> 184 </Table> 185 <Table Name="" Member="Statistics"> 186 <Type Name="Statistics"> 187 <Column Name="StatisticsId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" /> 188 <Column Name="Timestamp" Type="System.DateTime" CanBeNull="false" /> 189 <Association Name="Statistics_UserStatistics" Member="UserStatistics" ThisKey="StatisticsId" OtherKey="StatisticsId" Type="UserStatistics" /> 190 <Association Name="Statistics_SlaveStatistics" Member="SlaveStatistics" ThisKey="StatisticsId" OtherKey="StatisticsId" Type="SlaveStatistics" /> 191 </Type> 192 </Table> 153 193 </Database> -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.dbml.layout
r6006 r6229 1 1 <?xml version="1.0" encoding="utf-8"?> 2 <ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 15.75, 8.5" name="HiveDataContext">2 <ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 24.25, 8.5" name="HiveDataContext"> 3 3 <DataContextMoniker Name="/HiveDataContext" /> 4 4 <nestedChildShapes> 5 <classShape Id="a929c9dc-69f4-4488-ba1c-a2342bf81d89" absoluteBounds="8.875, 3.875, 2, 1.3862939453124987">5 <classShape Id="a929c9dc-69f4-4488-ba1c-a2342bf81d89" absoluteBounds="8.875, 4, 2, 1.3862939453124987"> 6 6 <DataClassMoniker Name="/HiveDataContext/AssignedResource" /> 7 7 <nestedChildShapes> 8 <elementListCompartment Id="8b005775-f0ee-41b0-ae10-6d1151003708" absoluteBounds="8.89, 4. 3350000000000009, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />8 <elementListCompartment Id="8b005775-f0ee-41b0-ae10-6d1151003708" absoluteBounds="8.89, 4.4600000000000009, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" /> 9 9 </nestedChildShapes> 10 10 </classShape> … … 45 45 </nestedChildShapes> 46 46 </classShape> 47 <classShape Id="26f4edfa-91dd-4941-a058-359f89e567a8" absoluteBounds="8.875, 0.75, 2, 2.9247054036458331">47 <classShape Id="26f4edfa-91dd-4941-a058-359f89e567a8" absoluteBounds="8.875, 0.75, 2, 3.1170068359375"> 48 48 <DataClassMoniker Name="/HiveDataContext/Slave" /> 49 49 <nestedChildShapes> 50 <elementListCompartment Id="1e61f36b-08dc-4df7-8594-c9dcd95c0791" absoluteBounds="8.89, 1.21, 1.9700000000000002, 2. 364705403645833" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />50 <elementListCompartment Id="1e61f36b-08dc-4df7-8594-c9dcd95c0791" absoluteBounds="8.89, 1.21, 1.9700000000000002, 2.5570068359375" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" /> 51 51 </nestedChildShapes> 52 52 </classShape> … … 69 69 </nodes> 70 70 </inheritanceConnector> 71 <associationConnector edgePoints="[(11.9843735 : 2.57859537760417); (11.9843735 : 4. 56814697265625); (10.875 : 4.56814697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">71 <associationConnector edgePoints="[(11.9843735 : 2.57859537760417); (11.9843735 : 4.69314697265625); (10.875 : 4.69314697265625)]" fixedFrom="Algorithm" fixedTo="Algorithm"> 72 72 <AssociationMoniker Name="/HiveDataContext/Resource/Resource_AssignedResource" /> 73 73 <nodes> … … 76 76 </nodes> 77 77 </associationConnector> 78 <associationConnector edgePoints="[(7. 8398428125 : 4.1170068359375); (7.8398428125 : 4.689150890625); (8.875 : 4.689150890625)]" fixedFrom="Algorithm" fixedTo="Algorithm">78 <associationConnector edgePoints="[(7.5 : 4.1170068359375); (7.5 : 4.751650890625); (8.875 : 4.751650890625)]" fixedFrom="Algorithm" fixedTo="Algorithm"> 79 79 <AssociationMoniker Name="/HiveDataContext/Job/Job_AssignedResource" /> 80 80 <nodes> … … 83 83 </nodes> 84 84 </associationConnector> 85 <associationConnector edgePoints="[(7.10742140625 : 4.1170068359375); (7.10742140625 : 5.5)]" fixedFrom=" Algorithm" fixedTo="Algorithm">85 <associationConnector edgePoints="[(7.10742140625 : 4.1170068359375); (7.10742140625 : 5.5)]" fixedFrom="NotFixed" fixedTo="NotFixed"> 86 86 <AssociationMoniker Name="/HiveDataContext/Job/Job_RequiredPlugin" /> 87 87 <nodes> … … 123 123 </nodes> 124 124 </associationConnector> 125 <associationConnector edgePoints="[(6.5 : 1.69314697265625); (6.125 : 1.69314697265625)]" fixedFrom=" Algorithm" fixedTo="Algorithm">125 <associationConnector edgePoints="[(6.5 : 1.69314697265625); (6.125 : 1.69314697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed"> 126 126 <AssociationMoniker Name="/HiveDataContext/Job/Job_JobData" /> 127 127 <nodes> … … 156 156 </nestedChildShapes> 157 157 </classShape> 158 <associationConnector edgePoints="[(6.5 : 2.50564697265625); (3.75 : 2.50564697265625)]" fixedFrom=" Algorithm" fixedTo="Algorithm">158 <associationConnector edgePoints="[(6.5 : 2.50564697265625); (3.75 : 2.50564697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed"> 159 159 <AssociationMoniker Name="/HiveDataContext/Job/Job_StateLog" /> 160 160 <nodes> … … 163 163 </nodes> 164 164 </associationConnector> 165 <associationConnector edgePoints="[(11.25 : 1. 78929768880208); (10.9375 : 1.78929768880208); (10.9375 : 0.6875); (2.75 : 0.6875); (2.75 : 1)]" fixedFrom="Algorithm" fixedTo="Algorithm">165 <associationConnector edgePoints="[(11.25 : 1.36339684440104); (10.9375 : 1.36339684440104); (10.9375 : 0.6875); (2.75 : 0.6875); (2.75 : 1)]" fixedFrom="NotFixed" fixedTo="NotFixed"> 166 166 <AssociationMoniker Name="/HiveDataContext/Resource/Resource_StateLog" /> 167 167 <nodes> … … 170 170 </nodes> 171 171 </associationConnector> 172 <associationConnector edgePoints="[(4.125 : 4.29890055338542); (3.75 : 4.29890055338542)]" fixedFrom=" Algorithm" fixedTo="Algorithm">172 <associationConnector edgePoints="[(4.125 : 4.29890055338542); (3.75 : 4.29890055338542)]" fixedFrom="NotFixed" fixedTo="NotFixed"> 173 173 <AssociationMoniker Name="/HiveDataContext/HiveExperiment/HiveExperiment_HiveExperimentPermission" /> 174 174 <nodes> … … 183 183 </nestedChildShapes> 184 184 </classShape> 185 <associationConnector edgePoints="[(6.125 : 3.37100341796875); (6.5 : 3.37100341796875)]" fixedFrom=" Algorithm" fixedTo="Algorithm">185 <associationConnector edgePoints="[(6.125 : 3.37100341796875); (6.5 : 3.37100341796875)]" fixedFrom="NotFixed" fixedTo="NotFixed"> 186 186 <AssociationMoniker Name="/HiveDataContext/HiveExperiment/HiveExperiment_Job" /> 187 187 <nodes> 188 188 <classShapeMoniker Id="e6f840cc-2968-4be1-b234-eef624ccacbb" /> 189 189 <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" /> 190 </nodes> 191 </associationConnector> 192 <classShape Id="cdddf4da-eaef-46a1-9cfd-987bb6b3d03e" absoluteBounds="17, 3.125, 2, 1.5785953776041666"> 193 <DataClassMoniker Name="/HiveDataContext/DeletedJobStatistics" /> 194 <nestedChildShapes> 195 <elementListCompartment Id="b8738381-f696-4dba-a517-47e9cd96a9a6" absoluteBounds="17.015, 3.585, 1.9700000000000002, 1.0185953776041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" /> 196 </nestedChildShapes> 197 </classShape> 198 <classShape Id="25442617-ff41-49a0-b5d5-4cbe0b2f0f45" absoluteBounds="22, 4.5, 2, 1.9631982421874996"> 199 <DataClassMoniker Name="/HiveDataContext/UserStatistics" /> 200 <nestedChildShapes> 201 <elementListCompartment Id="6edf08e7-054a-4253-8d4f-5bf2dfec2d29" absoluteBounds="22.015, 4.96, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" /> 202 </nestedChildShapes> 203 </classShape> 204 <classShape Id="f78ec989-4862-4bac-87e3-9b0aad4bc037" absoluteBounds="19.875, 4.5, 2, 2.1554996744791666"> 205 <DataClassMoniker Name="/HiveDataContext/SlaveStatistics" /> 206 <nestedChildShapes> 207 <elementListCompartment Id="98cb46fe-820e-4041-aee8-04e8bed3df23" absoluteBounds="19.89, 4.96, 1.9700000000000002, 1.5954996744791665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" /> 208 </nestedChildShapes> 209 </classShape> 210 <classShape Id="4d9f0606-b7ee-4dae-a8ac-aff88d25a941" absoluteBounds="21, 3, 2, 1.1939925130208327"> 211 <DataClassMoniker Name="/HiveDataContext/Statistics" /> 212 <nestedChildShapes> 213 <elementListCompartment Id="17821282-8edf-40b7-9065-84f53391d5c1" absoluteBounds="21.015, 3.46, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" /> 214 </nestedChildShapes> 215 </classShape> 216 <associationConnector edgePoints="[(21.4375 : 4.19399251302083); (21.4375 : 4.5)]" fixedFrom="Algorithm" fixedTo="Algorithm"> 217 <AssociationMoniker Name="/HiveDataContext/Statistics/Statistics_SlaveStatistics" /> 218 <nodes> 219 <classShapeMoniker Id="4d9f0606-b7ee-4dae-a8ac-aff88d25a941" /> 220 <classShapeMoniker Id="f78ec989-4862-4bac-87e3-9b0aad4bc037" /> 221 </nodes> 222 </associationConnector> 223 <associationConnector edgePoints="[(22.5 : 4.19399251302083); (22.5 : 4.5)]" fixedFrom="Algorithm" fixedTo="Algorithm"> 224 <AssociationMoniker Name="/HiveDataContext/Statistics/Statistics_UserStatistics" /> 225 <nodes> 226 <classShapeMoniker Id="4d9f0606-b7ee-4dae-a8ac-aff88d25a941" /> 227 <classShapeMoniker Id="25442617-ff41-49a0-b5d5-4cbe0b2f0f45" /> 190 228 </nodes> 191 229 </associationConnector> -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.designer.cs
r6006 r6229 3 3 // <auto-generated> 4 4 // This code was generated by a tool. 5 // Runtime Version:4.0.30319.2 085 // Runtime Version:4.0.30319.225 6 6 // 7 7 // Changes to this file may cause incorrect behavior and will be lost if … … 67 67 partial void UpdateLifecycle(Lifecycle instance); 68 68 partial void DeleteLifecycle(Lifecycle instance); 69 partial void InsertDeletedJobStatistics(DeletedJobStatistics instance); 70 partial void UpdateDeletedJobStatistics(DeletedJobStatistics instance); 71 partial void DeleteDeletedJobStatistics(DeletedJobStatistics instance); 72 partial void InsertUserStatistics(UserStatistics instance); 73 partial void UpdateUserStatistics(UserStatistics instance); 74 partial void DeleteUserStatistics(UserStatistics instance); 75 partial void InsertSlaveStatistics(SlaveStatistics instance); 76 partial void UpdateSlaveStatistics(SlaveStatistics instance); 77 partial void DeleteSlaveStatistics(SlaveStatistics instance); 78 partial void InsertStatistics(Statistics instance); 79 partial void UpdateStatistics(Statistics instance); 80 partial void DeleteStatistics(Statistics instance); 69 81 #endregion 70 82 … … 186 198 { 187 199 return this.GetTable<Lifecycle>(); 200 } 201 } 202 203 public System.Data.Linq.Table<DeletedJobStatistics> DeletedJobStatistics 204 { 205 get 206 { 207 return this.GetTable<DeletedJobStatistics>(); 208 } 209 } 210 211 public System.Data.Linq.Table<UserStatistics> UserStatistics 212 { 213 get 214 { 215 return this.GetTable<UserStatistics>(); 216 } 217 } 218 219 public System.Data.Linq.Table<SlaveStatistics> SlaveStatistics 220 { 221 get 222 { 223 return this.GetTable<SlaveStatistics>(); 224 } 225 } 226 227 public System.Data.Linq.Table<Statistics> Statistics 228 { 229 get 230 { 231 return this.GetTable<Statistics>(); 188 232 } 189 233 } … … 1126 1170 1127 1171 private System.Nullable<System.DateTime> _LastHeartbeat; 1172 1173 private double _CpuUtilization; 1128 1174 1129 1175 #region Extensibility Method Definitions … … 1153 1199 partial void OnLastHeartbeatChanging(System.Nullable<System.DateTime> value); 1154 1200 partial void OnLastHeartbeatChanged(); 1201 partial void OnCpuUtilizationChanging(double value); 1202 partial void OnCpuUtilizationChanged(); 1155 1203 #endregion 1156 1204 … … 1376 1424 this.SendPropertyChanged("LastHeartbeat"); 1377 1425 this.OnLastHeartbeatChanged(); 1426 } 1427 } 1428 } 1429 1430 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CpuUtilization", DbType="float")] 1431 public double CpuUtilization 1432 { 1433 get 1434 { 1435 return this._CpuUtilization; 1436 } 1437 set 1438 { 1439 if ((this._CpuUtilization != value)) 1440 { 1441 this.OnCpuUtilizationChanging(value); 1442 this.SendPropertyChanging(); 1443 this._CpuUtilization = value; 1444 this.SendPropertyChanged("CpuUtilization"); 1445 this.OnCpuUtilizationChanged(); 1378 1446 } 1379 1447 } … … 2217 2285 private bool _IsHiveEngine; 2218 2286 2287 private EntitySet<Job> _Jobs; 2288 2219 2289 private EntitySet<HiveExperimentPermission> _HiveExperimentPermissions; 2220 2221 private EntitySet<Job> _Jobs;2222 2290 2223 2291 #region Extensibility Method Definitions … … 2245 2313 public HiveExperiment() 2246 2314 { 2315 this._Jobs = new EntitySet<Job>(new Action<Job>(this.attach_Jobs), new Action<Job>(this.detach_Jobs)); 2247 2316 this._HiveExperimentPermissions = new EntitySet<HiveExperimentPermission>(new Action<HiveExperimentPermission>(this.attach_HiveExperimentPermissions), new Action<HiveExperimentPermission>(this.detach_HiveExperimentPermissions)); 2248 this._Jobs = new EntitySet<Job>(new Action<Job>(this.attach_Jobs), new Action<Job>(this.detach_Jobs));2249 2317 OnCreated(); 2250 2318 } … … 2410 2478 } 2411 2479 2480 [global::System.Data.Linq.Mapping.AssociationAttribute(Name="HiveExperiment_Job", Storage="_Jobs", ThisKey="HiveExperimentId", OtherKey="HiveExperimentId")] 2481 public EntitySet<Job> Jobs 2482 { 2483 get 2484 { 2485 return this._Jobs; 2486 } 2487 set 2488 { 2489 this._Jobs.Assign(value); 2490 } 2491 } 2492 2412 2493 [global::System.Data.Linq.Mapping.AssociationAttribute(Name="HiveExperiment_HiveExperimentPermission", Storage="_HiveExperimentPermissions", ThisKey="HiveExperimentId", OtherKey="HiveExperimentId")] 2413 2494 public EntitySet<HiveExperimentPermission> HiveExperimentPermissions … … 2423 2504 } 2424 2505 2425 [global::System.Data.Linq.Mapping.AssociationAttribute(Name="HiveExperiment_Job", Storage="_Jobs", ThisKey="HiveExperimentId", OtherKey="HiveExperimentId")]2426 public EntitySet<Job> Jobs2427 {2428 get2429 {2430 return this._Jobs;2431 }2432 set2433 {2434 this._Jobs.Assign(value);2435 }2436 }2437 2438 2506 public event PropertyChangingEventHandler PropertyChanging; 2439 2507 … … 2456 2524 } 2457 2525 2458 private void attach_ HiveExperimentPermissions(HiveExperimentPermissionentity)2526 private void attach_Jobs(Job entity) 2459 2527 { 2460 2528 this.SendPropertyChanging(); … … 2462 2530 } 2463 2531 2464 private void detach_ HiveExperimentPermissions(HiveExperimentPermissionentity)2532 private void detach_Jobs(Job entity) 2465 2533 { 2466 2534 this.SendPropertyChanging(); … … 2468 2536 } 2469 2537 2470 private void attach_ Jobs(Jobentity)2538 private void attach_HiveExperimentPermissions(HiveExperimentPermission entity) 2471 2539 { 2472 2540 this.SendPropertyChanging(); … … 2474 2542 } 2475 2543 2476 private void detach_ Jobs(Jobentity)2544 private void detach_HiveExperimentPermissions(HiveExperimentPermission entity) 2477 2545 { 2478 2546 this.SendPropertyChanging(); … … 3355 3423 } 3356 3424 } 3425 3426 [global::System.Data.Linq.Mapping.TableAttribute(Name="")] 3427 public partial class DeletedJobStatistics : INotifyPropertyChanging, INotifyPropertyChanged 3428 { 3429 3430 private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); 3431 3432 private string _UserId; 3433 3434 private string _ExecutionTime; 3435 3436 private string _ExecutionTimeFinishedJobs; 3437 3438 private string _StartToEndTime; 3439 3440 #region Extensibility Method Definitions 3441 partial void OnLoaded(); 3442 partial void OnValidate(System.Data.Linq.ChangeAction action); 3443 partial void OnCreated(); 3444 partial void OnUserIdChanging(string value); 3445 partial void OnUserIdChanged(); 3446 partial void OnExecutionTimeChanging(string value); 3447 partial void OnExecutionTimeChanged(); 3448 partial void OnExecutionTimeFinishedJobsChanging(string value); 3449 partial void OnExecutionTimeFinishedJobsChanged(); 3450 partial void OnStartToEndTimeChanging(string value); 3451 partial void OnStartToEndTimeChanged(); 3452 #endregion 3453 3454 public DeletedJobStatistics() 3455 { 3456 OnCreated(); 3457 } 3458 3459 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserId", CanBeNull=false, IsPrimaryKey=true)] 3460 public string UserId 3461 { 3462 get 3463 { 3464 return this._UserId; 3465 } 3466 set 3467 { 3468 if ((this._UserId != value)) 3469 { 3470 this.OnUserIdChanging(value); 3471 this.SendPropertyChanging(); 3472 this._UserId = value; 3473 this.SendPropertyChanged("UserId"); 3474 this.OnUserIdChanged(); 3475 } 3476 } 3477 } 3478 3479 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ExecutionTime", DbType="VarChar(30)", CanBeNull=false)] 3480 public string ExecutionTime 3481 { 3482 get 3483 { 3484 return this._ExecutionTime; 3485 } 3486 set 3487 { 3488 if ((this._ExecutionTime != value)) 3489 { 3490 this.OnExecutionTimeChanging(value); 3491 this.SendPropertyChanging(); 3492 this._ExecutionTime = value; 3493 this.SendPropertyChanged("ExecutionTime"); 3494 this.OnExecutionTimeChanged(); 3495 } 3496 } 3497 } 3498 3499 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ExecutionTimeFinishedJobs", DbType="VarChar(30)", CanBeNull=false)] 3500 public string ExecutionTimeFinishedJobs 3501 { 3502 get 3503 { 3504 return this._ExecutionTimeFinishedJobs; 3505 } 3506 set 3507 { 3508 if ((this._ExecutionTimeFinishedJobs != value)) 3509 { 3510 this.OnExecutionTimeFinishedJobsChanging(value); 3511 this.SendPropertyChanging(); 3512 this._ExecutionTimeFinishedJobs = value; 3513 this.SendPropertyChanged("ExecutionTimeFinishedJobs"); 3514 this.OnExecutionTimeFinishedJobsChanged(); 3515 } 3516 } 3517 } 3518 3519 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartToEndTime", DbType="VarChar(30)", CanBeNull=false)] 3520 public string StartToEndTime 3521 { 3522 get 3523 { 3524 return this._StartToEndTime; 3525 } 3526 set 3527 { 3528 if ((this._StartToEndTime != value)) 3529 { 3530 this.OnStartToEndTimeChanging(value); 3531 this.SendPropertyChanging(); 3532 this._StartToEndTime = value; 3533 this.SendPropertyChanged("StartToEndTime"); 3534 this.OnStartToEndTimeChanged(); 3535 } 3536 } 3537 } 3538 3539 public event PropertyChangingEventHandler PropertyChanging; 3540 3541 public event PropertyChangedEventHandler PropertyChanged; 3542 3543 protected virtual void SendPropertyChanging() 3544 { 3545 if ((this.PropertyChanging != null)) 3546 { 3547 this.PropertyChanging(this, emptyChangingEventArgs); 3548 } 3549 } 3550 3551 protected virtual void SendPropertyChanged(String propertyName) 3552 { 3553 if ((this.PropertyChanged != null)) 3554 { 3555 this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 3556 } 3557 } 3558 } 3559 3560 [global::System.Data.Linq.Mapping.TableAttribute(Name="")] 3561 public partial class UserStatistics : INotifyPropertyChanging, INotifyPropertyChanged 3562 { 3563 3564 private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); 3565 3566 private System.Guid _StatisticsId; 3567 3568 private System.Guid _UserId; 3569 3570 private string _ExecutionTime; 3571 3572 private int _CoresUsed; 3573 3574 private string _ExecutionTimeFinishedJobs; 3575 3576 private string _StartToEndTime; 3577 3578 private EntityRef<Statistics> _Statistics; 3579 3580 #region Extensibility Method Definitions 3581 partial void OnLoaded(); 3582 partial void OnValidate(System.Data.Linq.ChangeAction action); 3583 partial void OnCreated(); 3584 partial void OnStatisticsIdChanging(System.Guid value); 3585 partial void OnStatisticsIdChanged(); 3586 partial void OnUserIdChanging(System.Guid value); 3587 partial void OnUserIdChanged(); 3588 partial void OnExecutionTimeChanging(string value); 3589 partial void OnExecutionTimeChanged(); 3590 partial void OnUsedCoresChanging(int value); 3591 partial void OnUsedCoresChanged(); 3592 partial void OnExecutionTimeFinishedJobsChanging(string value); 3593 partial void OnExecutionTimeFinishedJobsChanged(); 3594 partial void OnStartToEndTimeChanging(string value); 3595 partial void OnStartToEndTimeChanged(); 3596 #endregion 3597 3598 public UserStatistics() 3599 { 3600 this._Statistics = default(EntityRef<Statistics>); 3601 OnCreated(); 3602 } 3603 3604 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StatisticsId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)] 3605 public System.Guid StatisticsId 3606 { 3607 get 3608 { 3609 return this._StatisticsId; 3610 } 3611 set 3612 { 3613 if ((this._StatisticsId != value)) 3614 { 3615 if (this._Statistics.HasLoadedOrAssignedValue) 3616 { 3617 throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); 3618 } 3619 this.OnStatisticsIdChanging(value); 3620 this.SendPropertyChanging(); 3621 this._StatisticsId = value; 3622 this.SendPropertyChanged("StatisticsId"); 3623 this.OnStatisticsIdChanged(); 3624 } 3625 } 3626 } 3627 3628 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)] 3629 public System.Guid UserId 3630 { 3631 get 3632 { 3633 return this._UserId; 3634 } 3635 set 3636 { 3637 if ((this._UserId != value)) 3638 { 3639 this.OnUserIdChanging(value); 3640 this.SendPropertyChanging(); 3641 this._UserId = value; 3642 this.SendPropertyChanged("UserId"); 3643 this.OnUserIdChanged(); 3644 } 3645 } 3646 } 3647 3648 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ExecutionTime", DbType="VarChar(30)", CanBeNull=false)] 3649 public string ExecutionTime 3650 { 3651 get 3652 { 3653 return this._ExecutionTime; 3654 } 3655 set 3656 { 3657 if ((this._ExecutionTime != value)) 3658 { 3659 this.OnExecutionTimeChanging(value); 3660 this.SendPropertyChanging(); 3661 this._ExecutionTime = value; 3662 this.SendPropertyChanged("ExecutionTime"); 3663 this.OnExecutionTimeChanged(); 3664 } 3665 } 3666 } 3667 3668 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CoresUsed", DbType="Int")] 3669 public int UsedCores 3670 { 3671 get 3672 { 3673 return this._CoresUsed; 3674 } 3675 set 3676 { 3677 if ((this._CoresUsed != value)) 3678 { 3679 this.OnUsedCoresChanging(value); 3680 this.SendPropertyChanging(); 3681 this._CoresUsed = value; 3682 this.SendPropertyChanged("UsedCores"); 3683 this.OnUsedCoresChanged(); 3684 } 3685 } 3686 } 3687 3688 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ExecutionTimeFinishedJobs", DbType="VarChar(30)", CanBeNull=false)] 3689 public string ExecutionTimeFinishedJobs 3690 { 3691 get 3692 { 3693 return this._ExecutionTimeFinishedJobs; 3694 } 3695 set 3696 { 3697 if ((this._ExecutionTimeFinishedJobs != value)) 3698 { 3699 this.OnExecutionTimeFinishedJobsChanging(value); 3700 this.SendPropertyChanging(); 3701 this._ExecutionTimeFinishedJobs = value; 3702 this.SendPropertyChanged("ExecutionTimeFinishedJobs"); 3703 this.OnExecutionTimeFinishedJobsChanged(); 3704 } 3705 } 3706 } 3707 3708 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartToEndTime", DbType="VarChar(30)", CanBeNull=false)] 3709 public string StartToEndTime 3710 { 3711 get 3712 { 3713 return this._StartToEndTime; 3714 } 3715 set 3716 { 3717 if ((this._StartToEndTime != value)) 3718 { 3719 this.OnStartToEndTimeChanging(value); 3720 this.SendPropertyChanging(); 3721 this._StartToEndTime = value; 3722 this.SendPropertyChanged("StartToEndTime"); 3723 this.OnStartToEndTimeChanged(); 3724 } 3725 } 3726 } 3727 3728 [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Statistics_UserStatistics", Storage="_Statistics", ThisKey="StatisticsId", OtherKey="StatisticsId", IsForeignKey=true)] 3729 public Statistics Statistics 3730 { 3731 get 3732 { 3733 return this._Statistics.Entity; 3734 } 3735 set 3736 { 3737 Statistics previousValue = this._Statistics.Entity; 3738 if (((previousValue != value) 3739 || (this._Statistics.HasLoadedOrAssignedValue == false))) 3740 { 3741 this.SendPropertyChanging(); 3742 if ((previousValue != null)) 3743 { 3744 this._Statistics.Entity = null; 3745 previousValue.UserStatistics.Remove(this); 3746 } 3747 this._Statistics.Entity = value; 3748 if ((value != null)) 3749 { 3750 value.UserStatistics.Add(this); 3751 this._StatisticsId = value.StatisticsId; 3752 } 3753 else 3754 { 3755 this._StatisticsId = default(System.Guid); 3756 } 3757 this.SendPropertyChanged("Statistics"); 3758 } 3759 } 3760 } 3761 3762 public event PropertyChangingEventHandler PropertyChanging; 3763 3764 public event PropertyChangedEventHandler PropertyChanged; 3765 3766 protected virtual void SendPropertyChanging() 3767 { 3768 if ((this.PropertyChanging != null)) 3769 { 3770 this.PropertyChanging(this, emptyChangingEventArgs); 3771 } 3772 } 3773 3774 protected virtual void SendPropertyChanged(String propertyName) 3775 { 3776 if ((this.PropertyChanged != null)) 3777 { 3778 this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 3779 } 3780 } 3781 } 3782 3783 [global::System.Data.Linq.Mapping.TableAttribute(Name="")] 3784 public partial class SlaveStatistics : INotifyPropertyChanging, INotifyPropertyChanged 3785 { 3786 3787 private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); 3788 3789 private System.Guid _StatisticsId; 3790 3791 private System.Guid _SlaveId; 3792 3793 private int _Cores; 3794 3795 private int _FreeCores; 3796 3797 private double _CpuUtilization; 3798 3799 private int _Memory; 3800 3801 private int _FreeMemory; 3802 3803 private EntityRef<Statistics> _Statistics; 3804 3805 #region Extensibility Method Definitions 3806 partial void OnLoaded(); 3807 partial void OnValidate(System.Data.Linq.ChangeAction action); 3808 partial void OnCreated(); 3809 partial void OnStatisticsIdChanging(System.Guid value); 3810 partial void OnStatisticsIdChanged(); 3811 partial void OnSlaveIdChanging(System.Guid value); 3812 partial void OnSlaveIdChanged(); 3813 partial void OnCoresChanging(int value); 3814 partial void OnCoresChanged(); 3815 partial void OnFreeCoresChanging(int value); 3816 partial void OnFreeCoresChanged(); 3817 partial void OnCpuUtilizationChanging(double value); 3818 partial void OnCpuUtilizationChanged(); 3819 partial void OnMemoryChanging(int value); 3820 partial void OnMemoryChanged(); 3821 partial void OnFreeMemoryChanging(int value); 3822 partial void OnFreeMemoryChanged(); 3823 #endregion 3824 3825 public SlaveStatistics() 3826 { 3827 this._Statistics = default(EntityRef<Statistics>); 3828 OnCreated(); 3829 } 3830 3831 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StatisticsId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)] 3832 public System.Guid StatisticsId 3833 { 3834 get 3835 { 3836 return this._StatisticsId; 3837 } 3838 set 3839 { 3840 if ((this._StatisticsId != value)) 3841 { 3842 if (this._Statistics.HasLoadedOrAssignedValue) 3843 { 3844 throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); 3845 } 3846 this.OnStatisticsIdChanging(value); 3847 this.SendPropertyChanging(); 3848 this._StatisticsId = value; 3849 this.SendPropertyChanged("StatisticsId"); 3850 this.OnStatisticsIdChanged(); 3851 } 3852 } 3853 } 3854 3855 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SlaveId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)] 3856 public System.Guid SlaveId 3857 { 3858 get 3859 { 3860 return this._SlaveId; 3861 } 3862 set 3863 { 3864 if ((this._SlaveId != value)) 3865 { 3866 this.OnSlaveIdChanging(value); 3867 this.SendPropertyChanging(); 3868 this._SlaveId = value; 3869 this.SendPropertyChanged("SlaveId"); 3870 this.OnSlaveIdChanged(); 3871 } 3872 } 3873 } 3874 3875 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Cores", DbType="Int")] 3876 public int Cores 3877 { 3878 get 3879 { 3880 return this._Cores; 3881 } 3882 set 3883 { 3884 if ((this._Cores != value)) 3885 { 3886 this.OnCoresChanging(value); 3887 this.SendPropertyChanging(); 3888 this._Cores = value; 3889 this.SendPropertyChanged("Cores"); 3890 this.OnCoresChanged(); 3891 } 3892 } 3893 } 3894 3895 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FreeCores", DbType="Int")] 3896 public int FreeCores 3897 { 3898 get 3899 { 3900 return this._FreeCores; 3901 } 3902 set 3903 { 3904 if ((this._FreeCores != value)) 3905 { 3906 this.OnFreeCoresChanging(value); 3907 this.SendPropertyChanging(); 3908 this._FreeCores = value; 3909 this.SendPropertyChanged("FreeCores"); 3910 this.OnFreeCoresChanged(); 3911 } 3912 } 3913 } 3914 3915 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CpuUtilization", DbType="float")] 3916 public double CpuUtilization 3917 { 3918 get 3919 { 3920 return this._CpuUtilization; 3921 } 3922 set 3923 { 3924 if ((this._CpuUtilization != value)) 3925 { 3926 this.OnCpuUtilizationChanging(value); 3927 this.SendPropertyChanging(); 3928 this._CpuUtilization = value; 3929 this.SendPropertyChanged("CpuUtilization"); 3930 this.OnCpuUtilizationChanged(); 3931 } 3932 } 3933 } 3934 3935 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Memory", DbType="Int")] 3936 public int Memory 3937 { 3938 get 3939 { 3940 return this._Memory; 3941 } 3942 set 3943 { 3944 if ((this._Memory != value)) 3945 { 3946 this.OnMemoryChanging(value); 3947 this.SendPropertyChanging(); 3948 this._Memory = value; 3949 this.SendPropertyChanged("Memory"); 3950 this.OnMemoryChanged(); 3951 } 3952 } 3953 } 3954 3955 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FreeMemory", DbType="Int")] 3956 public int FreeMemory 3957 { 3958 get 3959 { 3960 return this._FreeMemory; 3961 } 3962 set 3963 { 3964 if ((this._FreeMemory != value)) 3965 { 3966 this.OnFreeMemoryChanging(value); 3967 this.SendPropertyChanging(); 3968 this._FreeMemory = value; 3969 this.SendPropertyChanged("FreeMemory"); 3970 this.OnFreeMemoryChanged(); 3971 } 3972 } 3973 } 3974 3975 [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Statistics_SlaveStatistics", Storage="_Statistics", ThisKey="StatisticsId", OtherKey="StatisticsId", IsForeignKey=true)] 3976 public Statistics Statistics 3977 { 3978 get 3979 { 3980 return this._Statistics.Entity; 3981 } 3982 set 3983 { 3984 Statistics previousValue = this._Statistics.Entity; 3985 if (((previousValue != value) 3986 || (this._Statistics.HasLoadedOrAssignedValue == false))) 3987 { 3988 this.SendPropertyChanging(); 3989 if ((previousValue != null)) 3990 { 3991 this._Statistics.Entity = null; 3992 previousValue.SlaveStatistics.Remove(this); 3993 } 3994 this._Statistics.Entity = value; 3995 if ((value != null)) 3996 { 3997 value.SlaveStatistics.Add(this); 3998 this._StatisticsId = value.StatisticsId; 3999 } 4000 else 4001 { 4002 this._StatisticsId = default(System.Guid); 4003 } 4004 this.SendPropertyChanged("Statistics"); 4005 } 4006 } 4007 } 4008 4009 public event PropertyChangingEventHandler PropertyChanging; 4010 4011 public event PropertyChangedEventHandler PropertyChanged; 4012 4013 protected virtual void SendPropertyChanging() 4014 { 4015 if ((this.PropertyChanging != null)) 4016 { 4017 this.PropertyChanging(this, emptyChangingEventArgs); 4018 } 4019 } 4020 4021 protected virtual void SendPropertyChanged(String propertyName) 4022 { 4023 if ((this.PropertyChanged != null)) 4024 { 4025 this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 4026 } 4027 } 4028 } 4029 4030 [global::System.Data.Linq.Mapping.TableAttribute(Name="")] 4031 public partial class Statistics : INotifyPropertyChanging, INotifyPropertyChanged 4032 { 4033 4034 private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); 4035 4036 private System.Guid _StatisticsId; 4037 4038 private System.DateTime _Timestamp; 4039 4040 private EntitySet<UserStatistics> _UserStatistics; 4041 4042 private EntitySet<SlaveStatistics> _SlaveStatistics; 4043 4044 #region Extensibility Method Definitions 4045 partial void OnLoaded(); 4046 partial void OnValidate(System.Data.Linq.ChangeAction action); 4047 partial void OnCreated(); 4048 partial void OnStatisticsIdChanging(System.Guid value); 4049 partial void OnStatisticsIdChanged(); 4050 partial void OnTimestampChanging(System.DateTime value); 4051 partial void OnTimestampChanged(); 4052 #endregion 4053 4054 public Statistics() 4055 { 4056 this._UserStatistics = new EntitySet<UserStatistics>(new Action<UserStatistics>(this.attach_UserStatistics), new Action<UserStatistics>(this.detach_UserStatistics)); 4057 this._SlaveStatistics = new EntitySet<SlaveStatistics>(new Action<SlaveStatistics>(this.attach_SlaveStatistics), new Action<SlaveStatistics>(this.detach_SlaveStatistics)); 4058 OnCreated(); 4059 } 4060 4061 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StatisticsId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)] 4062 public System.Guid StatisticsId 4063 { 4064 get 4065 { 4066 return this._StatisticsId; 4067 } 4068 set 4069 { 4070 if ((this._StatisticsId != value)) 4071 { 4072 this.OnStatisticsIdChanging(value); 4073 this.SendPropertyChanging(); 4074 this._StatisticsId = value; 4075 this.SendPropertyChanged("StatisticsId"); 4076 this.OnStatisticsIdChanged(); 4077 } 4078 } 4079 } 4080 4081 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Timestamp")] 4082 public System.DateTime Timestamp 4083 { 4084 get 4085 { 4086 return this._Timestamp; 4087 } 4088 set 4089 { 4090 if ((this._Timestamp != value)) 4091 { 4092 this.OnTimestampChanging(value); 4093 this.SendPropertyChanging(); 4094 this._Timestamp = value; 4095 this.SendPropertyChanged("Timestamp"); 4096 this.OnTimestampChanged(); 4097 } 4098 } 4099 } 4100 4101 [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Statistics_UserStatistics", Storage="_UserStatistics", ThisKey="StatisticsId", OtherKey="StatisticsId")] 4102 public EntitySet<UserStatistics> UserStatistics 4103 { 4104 get 4105 { 4106 return this._UserStatistics; 4107 } 4108 set 4109 { 4110 this._UserStatistics.Assign(value); 4111 } 4112 } 4113 4114 [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Statistics_SlaveStatistics", Storage="_SlaveStatistics", ThisKey="StatisticsId", OtherKey="StatisticsId")] 4115 public EntitySet<SlaveStatistics> SlaveStatistics 4116 { 4117 get 4118 { 4119 return this._SlaveStatistics; 4120 } 4121 set 4122 { 4123 this._SlaveStatistics.Assign(value); 4124 } 4125 } 4126 4127 public event PropertyChangingEventHandler PropertyChanging; 4128 4129 public event PropertyChangedEventHandler PropertyChanged; 4130 4131 protected virtual void SendPropertyChanging() 4132 { 4133 if ((this.PropertyChanging != null)) 4134 { 4135 this.PropertyChanging(this, emptyChangingEventArgs); 4136 } 4137 } 4138 4139 protected virtual void SendPropertyChanged(String propertyName) 4140 { 4141 if ((this.PropertyChanged != null)) 4142 { 4143 this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 4144 } 4145 } 4146 4147 private void attach_UserStatistics(UserStatistics entity) 4148 { 4149 this.SendPropertyChanging(); 4150 entity.Statistics = this; 4151 } 4152 4153 private void detach_UserStatistics(UserStatistics entity) 4154 { 4155 this.SendPropertyChanging(); 4156 entity.Statistics = null; 4157 } 4158 4159 private void attach_SlaveStatistics(SlaveStatistics entity) 4160 { 4161 this.SendPropertyChanging(); 4162 entity.Statistics = this; 4163 } 4164 4165 private void detach_SlaveStatistics(SlaveStatistics entity) 4166 { 4167 this.SendPropertyChanging(); 4168 entity.Statistics = null; 4169 } 4170 } 3357 4171 } 3358 4172 #pragma warning restore 1591 -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Interfaces/IHiveDao.cs
r6110 r6229 116 116 #endregion 117 117 118 #region Statistics Methods 119 DT.Statistics GetStatistic(Guid id); 120 IEnumerable<DT.Statistics> GetStatistics(Expression<Func<Statistics, bool>> predicate); 121 Guid AddStatistics(DT.Statistics dto); 122 void DeleteStatistics(Guid id); 123 List<DT.UserStatistics> GetUserStatistics(); 124 #endregion 125 126 127 118 128 } 119 129 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/prepareHiveDatabase.sql
r6033 r6229 104 104 GO 105 105 106 ALTER TABLE [dbo].[Statistics] ALTER COLUMN StatisticsId ADD ROWGUIDCOL; 107 ALTER TABLE [dbo].[Statistics] WITH NOCHECK ADD CONSTRAINT [DF_Statistics_StatisticsId] DEFAULT (newid()) FOR StatisticsId; 108 GO 109 110 ALTER TABLE [dbo].[SlaveStatistics] DROP CONSTRAINT [Statistics_SlaveStatistics] 111 ALTER TABLE [dbo].[SlaveStatistics] WITH CHECK ADD CONSTRAINT [Statistics_SlaveStatistics] FOREIGN KEY([StatisticsId]) 112 REFERENCES [dbo].[Statistics] ([StatisticsId]) 113 ON UPDATE CASCADE 114 ON DELETE CASCADE 115 GO 116 117 ALTER TABLE [dbo].[UserStatistics] DROP CONSTRAINT [Statistics_UserStatistics] 118 ALTER TABLE [dbo].[UserStatistics] WITH CHECK ADD CONSTRAINT [Statistics_UserStatistics] FOREIGN KEY([StatisticsId]) 119 REFERENCES [dbo].[Statistics] ([StatisticsId]) 120 ON UPDATE CASCADE 121 ON DELETE CASCADE 122 GO 123 106 124 /* create indices */ 107 125 CREATE INDEX Index_RequiredPlugins_JobId ON RequiredPlugins(JobId); … … 159 177 DELETE Job FROM Job INNER JOIN #Table ON Job.JobId = #Table.JobId 160 178 END 179 GO 180 181 -- ============================================= 182 -- Author: cneumuel 183 -- Create date: 17.05.2011 184 -- Description: Writes the execution times of deleted jobs into DeletedJobStats to ensure correct statistics 185 -- ============================================= 186 --CREATE TRIGGER [dbo].[tr_DeletedJobStats] ON [dbo].[Job] AFTER DELETE AS 187 --BEGIN 188 -- INSERT INTO DeletedJobStats SELECT JobId, ExecutionTime FROM deleted 189 --END -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/DaoTests.cs
r6006 r6229 7 7 8 8 namespace HeuristicLab.Services.Hive.Tests { 9 using System.Collections.Generic; 9 10 using System.Threading; 10 11 using DT = HeuristicLab.Services.Hive.Common.DataTransfer; … … 83 84 Assert.IsTrue(Math.Abs((job1.StateLog[i].DateTime - job1loaded.StateLog[i].DateTime).TotalSeconds) < 1); 84 85 } 85 86 86 87 job1 = job1loaded; 87 88 … … 236 237 237 238 } 239 240 241 [TestMethod] 242 public void TestStatistics() { 243 IHiveDao dao = ServiceLocator.Instance.HiveDao; 244 245 var stats = new DT.Statistics(); 246 stats.TimeStamp = DateTime.Now; 247 var slaveStats = new List<DT.SlaveStatistics>(); 248 slaveStats.Add(new DT.SlaveStatistics() { Cores = 8, FreeCores = 3, Memory = 8000, FreeMemory = 3000, CpuUtilization = 0.8, SlaveId = Guid.NewGuid() }); 249 slaveStats.Add(new DT.SlaveStatistics() { Cores = 2, FreeCores = 0, Memory = 1024, FreeMemory = 100, CpuUtilization = 0.99, SlaveId = Guid.NewGuid() }); 250 slaveStats.Add(new DT.SlaveStatistics() { Cores = 4, FreeCores = 4, Memory = 3024, FreeMemory = 2300, CpuUtilization = 0.01, SlaveId = Guid.NewGuid() }); 251 stats.SlaveStatistics = slaveStats; 252 253 var userStats = new List<DT.UserStatistics>(); 254 userStats.Add(new DT.UserStatistics() { UsedCores = 15, ExecutionTime = TimeSpan.FromHours(123), UserId = Guid.NewGuid() }); 255 userStats.Add(new DT.UserStatistics() { UsedCores = 42, ExecutionTime = TimeSpan.FromHours(945), UserId = Guid.NewGuid() }); 256 stats.UserStatistics = userStats; 257 258 stats.Id = dao.AddStatistics(stats); 259 260 var statsLoaded = dao.GetStatistic(stats.Id); 261 Assert.AreEqual(stats.Id, statsLoaded.Id); 262 Assert.IsTrue(Math.Abs((stats.TimeStamp - statsLoaded.TimeStamp).TotalSeconds) < 1); 263 264 for (int i = 0; i < slaveStats.Count; i ++) { 265 Assert.AreEqual(slaveStats[i].Cores, statsLoaded.SlaveStatistics.Single(x => x.SlaveId == slaveStats[i].SlaveId).Cores); 266 Assert.AreEqual(slaveStats[i].FreeCores, statsLoaded.SlaveStatistics.Single(x => x.SlaveId == slaveStats[i].SlaveId).FreeCores); 267 Assert.AreEqual(slaveStats[i].Memory, statsLoaded.SlaveStatistics.Single(x => x.SlaveId == slaveStats[i].SlaveId).Memory); 268 Assert.AreEqual(slaveStats[i].FreeMemory, statsLoaded.SlaveStatistics.Single(x => x.SlaveId == slaveStats[i].SlaveId).FreeMemory); 269 Assert.AreEqual(slaveStats[i].CpuUtilization, statsLoaded.SlaveStatistics.Single(x => x.SlaveId == slaveStats[i].SlaveId).CpuUtilization); 270 } 271 272 for (int i = 0; i < userStats.Count; i++) { 273 Assert.AreEqual(userStats[i].ExecutionTime, statsLoaded.UserStatistics.Single(x => x.UserId == userStats[i].UserId).ExecutionTime); 274 Assert.AreEqual(userStats[i].UsedCores, statsLoaded.UserStatistics.Single(x => x.UserId == userStats[i].UserId).UsedCores); 275 } 276 277 dao.DeleteStatistics(stats.Id); 278 Assert.AreEqual(null, dao.GetStatistic(stats.Id)); 279 } 238 280 } 239 281 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.4/LifecycleManager.cs
r5786 r6229 1 1 using System; 2 using System.Collections.Generic; 2 3 using System.Linq; 3 4 using HeuristicLab.Services.Hive.Common; … … 26 27 SetTimeoutSlavesOffline(); 27 28 SetTimeoutJobsWaiting(); 28 FinishParentJobs(); 29 FinishParentJobs(); 30 UpdateStatistics(); 31 } 32 33 private void UpdateStatistics() { 34 var slaves = dao.GetSlaves(x => x.SlaveState == SlaveState.Calculating || x.SlaveState == SlaveState.Idle); 35 36 var stats = new Statistics(); 37 stats.TimeStamp = DateTime.Now; 38 var slaveStats = new List<SlaveStatistics>(); 39 foreach (var slave in slaves) { 40 slaveStats.Add(new SlaveStatistics() { 41 SlaveId = slave.Id, 42 Cores = slave.Cores.HasValue ? slave.Cores.Value : 0, 43 FreeCores = slave.FreeCores.HasValue ? slave.FreeCores.Value : 0, 44 Memory = slave.Memory.HasValue ? slave.Memory.Value : 0, 45 FreeMemory = slave.FreeMemory.HasValue ? slave.FreeMemory.Value : 0, 46 CpuUtilization = slave.CpuUtilization 47 }); 48 } 49 stats.SlaveStatistics = slaveStats; 50 51 stats.UserStatistics = dao.GetUserStatistics(); 52 53 dao.AddStatistics(stats); 54 55 //int slaveCount = slaves.Count(); 56 //int cores = slaves.Select(x => x.Cores.HasValue ? x.Cores.Value : 0).Sum(); 57 //int usedCores = slaves.Select(x => x.FreeCores.HasValue ? x.FreeCores.Value : 0).Sum(); 58 59 //long memoryMb = slaves.Select(x => x.Memory.HasValue ? x.Memory.Value : 0).Sum(); ; 60 //long memoryUsedMb = slaves.Select(x => x.FreeMemory.HasValue ? x.FreeMemory.Value : 0).Sum(); 61 62 //double averageCpuUtilization = slaves.Select(x => x.CpuUtilization.HasValue ? x.CpuUtilization.Value : 0).Average(); 63 64 //int executionTimeDelta = 0; // since last update 65 66 //{ // per user 67 // int activeJobs = 0; // calculating, transferring 68 // int waitingJobs = 0; // waiting 69 // int stoppedJobs = 0; // finished, failed, aborted, paused 70 //} 71 72 //{ // per slave 73 // int activeJobs = 0; // calculating, transferring 74 // double cpuUtilization = 0.0; 75 //} 76 29 77 } 30 78
Note: See TracChangeset
for help on using the changeset viewer.