Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
SET default_storage_engine=INNODB;
--
-- Storage configuration
--
RENAME TABLE t_se TO t_se_old;
CREATE TABLE t_se (
`storage` VARCHAR(150) NOT NULL PRIMARY KEY,
`site` VARCHAR(45),
`metadata` TEXT NULL,
`ipv6` BOOL NULL,
`udt` BOOL NULL,
`debug_level` INT NULL,
`inbound_max_active` INT,
`inbound_max_throughput` FLOAT,
`outbound_max_active` INT,
`outbound_max_throughput` FLOAT
)
AS
SELECT o.source_se AS storage, NULL AS site, NULL AS metadata,
o.ipv6 = 'on' AS ipv6, o.udt = 'on' AS udt, d.debug_level AS debug_level,
NULL AS inbound_max_active, NULL AS inbound_max_throughput,
NULL AS outbound_max_active, NULL AS outbound_max_throughput
FROM t_optimize o LEFT JOIN t_debug d ON o.source_se = d.source_se
WHERE o.source_se IS NOT NULL
UNION
SELECT o.dest_se, NULL, NULL, o.ipv6 = 'on', o.udt = 'on', d.debug_level, NULL, NULL, NULL, NULL
FROM t_optimize o LEFT JOIN t_debug d ON o.dest_se = d.dest_se
WHERE o.dest_se IS NOT NULL
UNION
SELECT d.source_se, NULL, NULL, NULL, NULL, d.debug_level, NULL, NULL, NULL, NULL
FROM t_debug d
WHERE d.source_se IS NOT NULL AND d.source_se != ""
UNION
SELECT d.dest_se, NULL, NULL, NULL, NULL, d.debug_level, NULL, NULL, NULL, NULL
FROM t_debug d
WHERE d.dest_se IS NOT NULL AND d.dest_se != ""
UNION
(SELECT '*', NULL, NULL, NULL, NULL, NULL, max_per_se, NULL, max_per_se, NULL
FROM t_server_config
WHERE vo_name IN (NULL, '*', '')
LIMIT 1);
--
-- Link configuration
--
RENAME TABLE t_link_config TO t_link_config_old;
CREATE TABLE t_link_config (
source_se VARCHAR(150) NOT NULL,
dest_se VARCHAR(150) NOT NULL,
symbolic_name VARCHAR(150) NOT NULL UNIQUE,
min_active INT NULL,
max_active INT NULL,
optimizer_mode INT NULL,
tcp_buffer_size INT,
nostreams INT,
PRIMARY KEY(source_se, dest_se)
)
AS
SELECT o.source_se AS source_se, o.dest_se AS dest_se, CONCAT(source_se, "-", dest_se) AS symbolic_name,
o.min_active AS min_active, o.max_active AS max_active, om.mode_opt AS optimizer_mode,
l.tcp_buffer_size AS tcp_buffer_size, l.nostreams AS nostreams
FROM t_optimize_mode om, t_optimize_active o
LEFT JOIN t_link_config_old l ON l.source = o.source_se AND l.destination = o.dest_se
WHERE o.fixed='on'
UNION
(SELECT l.source, l.destination, l.symbolicName, NULL, NULL, NULL, l.tcp_buffer_size, l.nostreams
FROM t_link_config_old l
WHERE NOT EXISTS (SELECT 1 FROM t_optimize_active oa WHERE oa.source_se = l.source AND oa.dest_se = l.destination)
)
UNION
(SELECT '*', '*', '*', 2, s.max_per_link, om.mode_opt, NULL, s.global_tcp_stream
FROM t_optimize_mode om, t_server_config s
WHERE vo_name IN ('*', '') OR vo_name IS NULL
LIMIT 1);
--
-- Optimizer status
--
CREATE TABLE t_optimizer (
`source_se` VARCHAR(150) NOT NULL,
`dest_se` VARCHAR(150) NOT NULL,
`datetime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ema` DOUBLE DEFAULT 0,
`active` INT DEFAULT 2,
`nostreams` INT DEFAULT 1,
PRIMARY KEY(`source_se`, `dest_se`)
)
AS
SELECT
o.source_se, o.dest_se, o.datetime, o.ema, o.active, s.nostreams
FROM t_optimize_active o
LEFT JOIN t_optimize_streams s ON s.source_se = o.source_se and s.dest_se = o.dest_se;
--
-- Drop obsolete fields
--
ALTER TABLE t_server_config
DROP COLUMN max_per_link,
DROP COLUMN max_per_se,
DROP COLUMN global_tcp_stream;
--
-- Drop link between t_file and t_share_config
--
DROP TABLE t_file_share_config;
ALTER TABLE t_share_config
DROP FOREIGN KEY t_share_config_fk;
ALTER TABLE t_share_config
ADD CONSTRAINT t_share_config_fk FOREIGN KEY (source, destination) REFERENCES t_link_config (source_se, dest_se);
--
-- Cleanup
--
-- DROP TABLE t_group_members;
-- DROP TABLE t_se_old;
-- DROP TABLE t_link_config_old;
-- DROP TABLE t_debug;
-- DROP TABLE t_optimize_mode;
-- DROP TABLE t_optimize;
-- DROP TABLE t_optimize_streams;
-- DROP TABLE t_optimize_active;
INSERT INTO t_schema_vers (major, minor, patch, message)
VALUES (4, 0, 0, 'FTS-894 diff');