Add tests for concurrent INSERT and VACUUM behaviour

pull/1488/head
Burak Yucesoy 2017-07-10 15:46:48 +03:00
parent c8b9e4011b
commit a15b3c6df2
3 changed files with 85 additions and 0 deletions

View File

@ -0,0 +1,36 @@
Parsed test spec with 2 sessions
starting permutation: s1-begin s1-insert s2-vacuum-analyze s1-commit
create_distributed_table
step s1-begin:
BEGIN;
step s1-insert:
INSERT INTO test_insert_vacuum VALUES(1, 1);
step s2-vacuum-analyze:
VACUUM ANALYZE test_insert_vacuum;
step s1-commit:
COMMIT;
starting permutation: s1-begin s1-insert s2-vacuum-full s1-commit
create_distributed_table
step s1-begin:
BEGIN;
step s1-insert:
INSERT INTO test_insert_vacuum VALUES(1, 1);
step s2-vacuum-full:
VACUUM FULL test_insert_vacuum;
<waiting ...>
step s1-commit:
COMMIT;
step s2-vacuum-full: <... completed>

View File

@ -8,3 +8,5 @@ test: isolation_cluster_management
test: isolation_dml_vs_repair isolation_copy_placement_vs_copy_placement isolation_cancellation test: isolation_dml_vs_repair isolation_copy_placement_vs_copy_placement isolation_cancellation
test: isolation_concurrent_dml isolation_data_migration test: isolation_concurrent_dml isolation_data_migration
test: isolation_drop_shards isolation_copy_placement_vs_modification test: isolation_drop_shards isolation_copy_placement_vs_modification
test: isolation_insert_vs_vacuum

View File

@ -0,0 +1,47 @@
setup
{
SET citus.shard_replication_factor TO 1;
CREATE TABLE test_insert_vacuum(column1 int, column2 int);
SELECT create_distributed_table('test_insert_vacuum', 'column1');
}
teardown
{
DROP TABLE test_insert_vacuum;
}
session "s1"
step "s1-begin"
{
BEGIN;
}
step "s1-insert"
{
INSERT INTO test_insert_vacuum VALUES(1, 1);
}
step "s1-commit"
{
COMMIT;
}
session "s2"
step "s2-vacuum-analyze"
{
VACUUM ANALYZE test_insert_vacuum;
}
step "s2-vacuum-full"
{
VACUUM FULL test_insert_vacuum;
}
# INSERT and VACUUM ANALYZE should not block each other.
permutation "s1-begin" "s1-insert" "s2-vacuum-analyze" "s1-commit"
# INSERT and VACUUM FULL should block each other.
permutation "s1-begin" "s1-insert" "s2-vacuum-full" "s1-commit"