blob: 64c177e36d5b0e7dd5f4ac42f0948f5b54f525b0 [file]
--
-- @description Interconncet flow control test case: combination guc value
-- @created 2012-11-13
-- @modified 2012-11-13
-- @tags executor
-- @gpdb_version [4.2.3.0,main]
-- Create a table
CREATE TEMP TABLE small_table(dkey INT, jkey INT, rval REAL, tval TEXT default 'abcdefghijklmnopqrstuvwxyz') DISTRIBUTED BY (dkey);
-- Generate some data
INSERT INTO small_table VALUES(generate_series(1, 5000), generate_series(5001, 10000), sqrt(generate_series(5001, 10000)));
-- Functional tests
-- Skew with gather+redistribute
SET gp_interconnect_fc_method = "capacity";
SHOW gp_interconnect_fc_method;
gp_interconnect_fc_method
---------------------------
capacity
(1 row)
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 1;
SET gp_interconnect_queue_depth = 1;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 4096;
SET gp_interconnect_queue_depth = 4096;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 1;
SET gp_interconnect_queue_depth = 4096;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 4096;
SET gp_interconnect_queue_depth = 1;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 1024;
SET gp_interconnect_queue_depth = 1024;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Skew with gather+redistribute
SET gp_interconnect_fc_method = "loss_advance";
SHOW gp_interconnect_fc_method;
gp_interconnect_fc_method
---------------------------
loss_advance
(1 row)
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 1;
SET gp_interconnect_queue_depth = 1;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 4096;
SET gp_interconnect_queue_depth = 4096;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 1;
SET gp_interconnect_queue_depth = 4096;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 4096;
SET gp_interconnect_queue_depth = 1;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)
-- Set GUC values
SET gp_interconnect_snd_queue_depth = 1024;
SET gp_interconnect_queue_depth = 1024;
SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval
FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo
JOIN small_table USING(jkey)
GROUP BY rval2
ORDER BY rval2;
rval2 | count | sum_len_tval
-------+-------+--------------
0 | 100 | 2600
1 | 100 | 2600
2 | 100 | 2600
3 | 100 | 2600
4 | 100 | 2600
5 | 100 | 2600
6 | 100 | 2600
7 | 100 | 2600
8 | 100 | 2600
9 | 100 | 2600
10 | 100 | 2600
11 | 100 | 2600
12 | 100 | 2600
13 | 100 | 2600
14 | 100 | 2600
15 | 100 | 2600
16 | 100 | 2600
17 | 100 | 2600
18 | 100 | 2600
19 | 100 | 2600
20 | 100 | 2600
21 | 100 | 2600
22 | 100 | 2600
23 | 100 | 2600
24 | 100 | 2600
25 | 100 | 2600
26 | 100 | 2600
27 | 100 | 2600
28 | 100 | 2600
29 | 100 | 2600
(30 rows)