Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/prepareHiveDatabase.sql @ 5405

Last change on this file since 5405 was 5404, checked in by cneumuel, 14 years ago

#1233

  • changed the workflow of aquireing a new job from server.
    • if a job is available for calculation, the slave receives the jobId already with the heartbeats. The job is then exclusively assigned to this slave.
  • extended the metainfo for a slave by OperatingSystem and CpuArchitecture
  • enhanced the way plugin-dependencies are discovered by using the types used by XmlGenerator. Now only mimimum amount of plugins are transferred.
  • selection of waiting jobs now consideres assigned slave-group
  • more unit tests for service
  • added unit tests for experiment manager
File size: 5.9 KB
Line 
1/* this script is supposed to be executed after the plain DB is generated by the linq-to-sql schema */
2
3/* use these DROP commands if you want to run this query a second time on the same db */
4
5/*
6ALTER TABLE dbo.AssignedResources ALTER COLUMN AssignedRessourcesId DROP ROWGUIDCOL;
7ALTER TABLE dbo.Job ALTER COLUMN JobId DROP ROWGUIDCOL;
8ALTER TABLE dbo.SlaveGroup_Resource ALTER COLUMN SlaveGroup_RessourceId DROP ROWGUIDCOL;
9ALTER TABLE dbo.Plugin ALTER COLUMN PluginId DROP ROWGUIDCOL;
10ALTER TABLE dbo.RequiredPlugins ALTER COLUMN RequiredPluginId DROP ROWGUIDCOL;
11ALTER TABLE dbo.Resource ALTER COLUMN ResourceId DROP ROWGUIDCOL;
12ALTER TABLE dbo.UptimeCalendar ALTER COLUMN UptimeCalendarId DROP ROWGUIDCOL;
13ALTER TABLE dbo.HiveExperiment ALTER COLUMN HiveExperimentId DROP ROWGUIDCOL;
14
15ALTER TABLE dbo.AssignedResources DROP CONSTRAINT [DF_AssignedResources_AssignedRessourcesId];
16ALTER TABLE dbo.Job DROP CONSTRAINT [DF_Job_JobId];
17ALTER TABLE dbo.SlaveGroup_Resource DROP CONSTRAINT [DF_SlaveGroup_ResourceSlaveGroup_RessourceId];
18ALTER TABLE dbo.Plugin DROP CONSTRAINT [DF_Plugin_PluginId];
19ALTER TABLE dbo.RequiredPlugins DROP CONSTRAINT [DF_RequiredPlugins_RequiredPluginId];
20ALTER TABLE dbo.Resource DROP CONSTRAINT [DF_Resource_ResourceId];
21ALTER TABLE dbo.UptimeCalendar DROP CONSTRAINT [DF_UptimeCalendar_UptimeCalendarId];
22ALTER TABLE dbo.HiveExperiment DROP CONSTRAINT [DF_HiveExperiment_HiveExperimentId];
23*/
24
25ALTER TABLE dbo.AssignedResources ALTER COLUMN AssignedRessourcesId ADD ROWGUIDCOL;
26ALTER TABLE dbo.AssignedResources WITH NOCHECK ADD CONSTRAINT [DF_AssignedResources_AssignedRessourcesId] DEFAULT (newid()) FOR AssignedRessourcesId;
27ALTER TABLE [dbo].[AssignedResources]  DROP  CONSTRAINT [Job_AssignedResource]
28ALTER TABLE [dbo].[AssignedResources]  WITH CHECK ADD  CONSTRAINT [Job_AssignedResource] FOREIGN KEY([JobId])
29REFERENCES [dbo].[Job] ([JobId])
30ON UPDATE CASCADE
31ON DELETE CASCADE
32GO
33ALTER TABLE [dbo].[AssignedResources]  DROP  CONSTRAINT [Resource_AssignedResource]
34ALTER TABLE [dbo].[AssignedResources]  WITH CHECK ADD  CONSTRAINT [Resource_AssignedResource] FOREIGN KEY([ResourceId])
35REFERENCES [dbo].[Resource] ([ResourceId])
36ON UPDATE CASCADE
37ON DELETE CASCADE
38GO
39
40ALTER TABLE dbo.Job ALTER COLUMN JobId ADD ROWGUIDCOL;
41ALTER TABLE dbo.Job WITH NOCHECK ADD CONSTRAINT [DF_Job_JobId] DEFAULT (newid()) FOR JobId;
42
43--ALTER TABLE [dbo].[Job]  DROP  CONSTRAINT [Slave_Job]
44--ALTER TABLE [dbo].[Job]  WITH CHECK ADD  CONSTRAINT [Slave_Job] FOREIGN KEY([ResourceId])
45--REFERENCES [dbo].[Resource] ([ResourceId])
46--ON UPDATE CASCADE
47--ON DELETE SET NULL
48--GO
49
50ALTER TABLE dbo.Plugin ALTER COLUMN PluginId ADD ROWGUIDCOL;
51ALTER TABLE dbo.Plugin WITH NOCHECK ADD CONSTRAINT [DF_Plugin_PluginId] DEFAULT (newid()) FOR PluginId;
52
53ALTER TABLE dbo.PluginData ALTER COLUMN PluginDataId ADD ROWGUIDCOL;
54ALTER TABLE dbo.PluginData WITH NOCHECK ADD CONSTRAINT [DF_PluginData_PluginDataId] DEFAULT (newid()) FOR PluginDataId;
55
56ALTER TABLE dbo.RequiredPlugins ALTER COLUMN RequiredPluginId ADD ROWGUIDCOL;
57ALTER TABLE dbo.RequiredPlugins WITH NOCHECK ADD CONSTRAINT [DF_RequiredPlugins_RequiredPluginId] DEFAULT (newid()) FOR RequiredPluginId;
58
59ALTER TABLE [dbo].[RequiredPlugins]  DROP  CONSTRAINT [Job_RequiredPlugin]
60ALTER TABLE [dbo].[RequiredPlugins]  WITH CHECK ADD  CONSTRAINT [Job_RequiredPlugin] FOREIGN KEY([JobId])
61REFERENCES [dbo].[Job] ([JobId])
62ON UPDATE CASCADE
63ON DELETE CASCADE
64GO
65
66ALTER TABLE [dbo].[RequiredPlugins]  DROP  CONSTRAINT [Plugin_RequiredPlugin]
67ALTER TABLE [dbo].[RequiredPlugins]  WITH CHECK ADD  CONSTRAINT [Plugin_RequiredPlugin] FOREIGN KEY([PluginId])
68REFERENCES [dbo].[Plugin] ([PluginId])
69ON UPDATE CASCADE
70ON DELETE CASCADE
71GO
72
73ALTER TABLE dbo.Resource ALTER COLUMN ResourceId ADD ROWGUIDCOL;
74ALTER TABLE dbo.Resource WITH NOCHECK ADD CONSTRAINT [DF_Resource_ResourceId] DEFAULT (newid()) FOR ResourceId;
75
76ALTER TABLE dbo.UptimeCalendar ALTER COLUMN UptimeCalendarId ADD ROWGUIDCOL;
77ALTER TABLE dbo.UptimeCalendar WITH NOCHECK ADD CONSTRAINT [DF_UptimeCalendar_UptimeCalendarId] DEFAULT (newid()) FOR UptimeCalendarId;
78
79ALTER TABLE dbo.HiveExperiment ALTER COLUMN HiveExperimentId ADD ROWGUIDCOL;
80ALTER TABLE dbo.HiveExperiment WITH NOCHECK ADD CONSTRAINT [DF_HiveExperiment_HiveExperimentId] DEFAULT (newid()) FOR HiveExperimentId;
81
82/* create indices */
83CREATE INDEX Index_RequiredPlugins_JobId ON RequiredPlugins(JobId);
84
85/* triggers */
86SET ANSI_NULLS ON
87GO
88SET QUOTED_IDENTIFIER ON
89GO
90-- =============================================
91-- Author:    cneumuel
92-- Create date: 11.11.2010
93-- Description: Deletes the root-job of the experiment when experiment is deleted
94-- =============================================
95CREATE TRIGGER [dbo].[tr_HiveExperimentDeleteCascade] ON [dbo].[HiveExperiment] FOR DELETE AS
96SET NOCOUNT ON
97DELETE Job FROM deleted, Job WHERE Job.JobId = deleted.RootJobId
98GO
99
100SET ANSI_NULLS ON
101GO
102SET QUOTED_IDENTIFIER ON
103GO
104-- =============================================
105-- Author:    cneumuel
106-- Create date: 11.11.2010
107-- Description: Recursively deletes all child-jobs of a job when it is deleted. (Source: http://devio.wordpress.com/2008/05/23/recursive-delete-in-sql-server/)
108-- =============================================
109CREATE TRIGGER [dbo].[tr_JobDeleteCascade] ON [dbo].[Job] INSTEAD OF DELETE AS
110BEGIN
111  CREATE TABLE #Table(
112    JobId uniqueidentifier
113  )
114  INSERT INTO #Table (JobId)
115  SELECT JobId FROM deleted
116 
117  DECLARE @c INT
118  SET @c = 0
119 
120  WHILE @c <> (SELECT COUNT(JobId) FROM #Table) BEGIN
121    SELECT @c = COUNT(JobId) FROM #Table
122   
123    INSERT INTO #Table (JobId)
124      SELECT Job.JobId
125      FROM Job
126      LEFT OUTER JOIN #Table ON Job.JobId = #Table.JobId
127      WHERE Job.ParentJobId IN (SELECT JobId FROM #Table)
128        AND #Table.JobId IS NULL
129  END
130 
131  DELETE JobData FROM JobData INNER JOIN #Table ON JobData.JobId = #Table.JobId
132  DELETE Job FROM Job INNER JOIN #Table ON Job.JobId = #Table.JobId
133END
Note: See TracBrowser for help on using the repository browser.