提交 a0b9fde8 编写于 作者: P Pengzhou Tang 提交者: Heikki Linnakangas

Make GDD tests deterministic

GDD tests framework now acquire the desired lock by updating the nth tuple
in a segment instead of a specified value, so even a hash algorithm changed,
the tests will not be affected. This method works fine except that a segment
has not enough tuples to provide the nth tuple. Fix is simple, enlarge the
test tables from 20 rows to 100 rows.

Authored-by: Ning Yu nyu@pivotal.io
上级 29e7f102
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t01;
DROP
CREATE TABLE t01 (id int, val int);
CREATE
INSERT INTO t01 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t01 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t04a;
DROP
CREATE TABLE t04a (id int, val int);
CREATE
INSERT INTO t04a (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t04a (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
DROP TABLE IF EXISTS t04b;
DROP
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t06;
DROP
CREATE TABLE t06 (id int, val int);
CREATE
INSERT INTO t06 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t06 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -6,10 +6,10 @@ CREATE TABLE t07a (c1 int, c2 int);
CREATE
CREATE TABLE t07b (c1 int, c2 int);
CREATE
INSERT INTO t07a (c1, c2) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t07b (c1, c2) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t07a (c1, c2) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
INSERT INTO t07b (c1, c2) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t102;
DROP
CREATE TABLE t102 (id int, val int);
CREATE
INSERT INTO t102 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t102 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t103;
DROP
CREATE TABLE t103 (id int, val int);
CREATE
INSERT INTO t103 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t103 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t104;
DROP
CREATE TABLE t104 (id int, val int);
CREATE
INSERT INTO t104 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t104 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t106;
DROP
CREATE TABLE t106 (id int, val int);
CREATE
INSERT INTO t106 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t106 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t03;
DROP
CREATE TABLE t03 (id int, val int);
CREATE
INSERT INTO t03 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t03 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t105;
DROP
CREATE TABLE t105 (id int, val int);
CREATE
INSERT INTO t105 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t105 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t107;
DROP
CREATE TABLE t107 (id int, val int);
CREATE
INSERT INTO t107 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t107 (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
10: BEGIN;
BEGIN
......
......@@ -4,15 +4,15 @@ DROP TABLE IF EXISTS t0p;
DROP
CREATE TABLE t0p (id int, val int);
CREATE
INSERT INTO t0p (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT 20
INSERT INTO t0p (id, val) SELECT i, i FROM generate_series(1, 100) i;
INSERT 100
DROP TABLE IF EXISTS t0r;
DROP
CREATE TABLE t0r (id int, val int, segid int) DISTRIBUTED REPLICATED;
CREATE
INSERT INTO t0r (id, val, segid) SELECT id, val, gp_segment_id from t0p;
INSERT 20
INSERT 100
-- GDD tests rely on the data distribution, but depends on the number of
-- the segments the distribution might be different.
......@@ -42,26 +42,22 @@ CREATE OR REPLACE FUNCTION barrier() RETURNS void AS $$ SELECT pg_sleep(4) $$ LA
CREATE
-- verify the function
-- Data distribution is sensitive to the underlying hash algorithm.
SELECT segid(0,1);
segid
-------
4
(1 row)
SELECT segid(0,2);
segid
-------
7
-- Data distribution is sensitive to the underlying hash algorithm, we need each
-- segment has enough tuples for test, 10 should be enough.
SELECT segid(0,10) is not null;
?column?
----------
t
(1 row)
SELECT segid(1,1);
segid
-------
2
SELECT segid(1,10) is not null;
?column?
----------
t
(1 row)
SELECT segid(1,2);
segid
-------
5
SELECT segid(2,10) is not null;
?column?
----------
t
(1 row)
-- start_ignore
......
DROP TABLE IF EXISTS t01;
CREATE TABLE t01 (id int, val int);
INSERT INTO t01 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t01 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
DROP TABLE IF EXISTS t04a;
CREATE TABLE t04a (id int, val int);
INSERT INTO t04a (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t04a (id, val) SELECT i, i FROM generate_series(1, 100) i;
DROP TABLE IF EXISTS t04b;
......
DROP TABLE IF EXISTS t06;
CREATE TABLE t06 (id int, val int);
INSERT INTO t06 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t06 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
......@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS t07a;
DROP TABLE IF EXISTS t07b;
CREATE TABLE t07a (c1 int, c2 int);
CREATE TABLE t07b (c1 int, c2 int);
INSERT INTO t07a (c1, c2) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t07b (c1, c2) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t07a (c1, c2) SELECT i, i FROM generate_series(1, 100) i;
INSERT INTO t07b (c1, c2) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
DROP TABLE IF EXISTS t102;
CREATE TABLE t102 (id int, val int);
INSERT INTO t102 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t102 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
DROP TABLE IF EXISTS t103;
CREATE TABLE t103 (id int, val int);
INSERT INTO t103 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t103 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
DROP TABLE IF EXISTS t104;
CREATE TABLE t104 (id int, val int);
INSERT INTO t104 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t104 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
DROP TABLE IF EXISTS t106;
CREATE TABLE t106 (id int, val int);
INSERT INTO t106 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t106 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
DROP TABLE IF EXISTS t03;
CREATE TABLE t03 (id int, val int);
INSERT INTO t03 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t03 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
DROP TABLE IF EXISTS t105;
CREATE TABLE t105 (id int, val int);
INSERT INTO t105 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t105 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
DROP TABLE IF EXISTS t107;
CREATE TABLE t107 (id int, val int);
INSERT INTO t107 (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t107 (id, val) SELECT i, i FROM generate_series(1, 100) i;
10: BEGIN;
20: BEGIN;
......
......@@ -6,7 +6,7 @@
-- t0r is the reference table to provide the data distribution info.
DROP TABLE IF EXISTS t0p;
CREATE TABLE t0p (id int, val int);
INSERT INTO t0p (id, val) SELECT i, i FROM generate_series(1, 20) i;
INSERT INTO t0p (id, val) SELECT i, i FROM generate_series(1, 100) i;
DROP TABLE IF EXISTS t0r;
CREATE TABLE t0r (id int, val int, segid int) DISTRIBUTED REPLICATED;
......@@ -46,11 +46,11 @@ RETURNS void AS $$
$$ LANGUAGE sql;
-- verify the function
-- Data distribution is sensitive to the underlying hash algorithm.
SELECT segid(0,1);
SELECT segid(0,2);
SELECT segid(1,1);
SELECT segid(1,2);
-- Data distribution is sensitive to the underlying hash algorithm, we need each
-- segment has enough tuples for test, 10 should be enough.
SELECT segid(0,10) is not null;
SELECT segid(1,10) is not null;
SELECT segid(2,10) is not null;
-- start_ignore
! gpconfig -c gp_global_deadlock_detector_period -v 10;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册